Free Software
Small tools I built for myself and decided to share. Free, open source, no accounts, no telemetry.
Minos PR Inbox iOS 17+
One inbox for your pull requests — GitHub and every Gitea, Forgejo, or Codeberg server you use, including self-hosted instances on your own network. Review the diff, read the conversation, check CI, comment, approve, request changes, and merge — from your phone, in seconds.
What it does
- Every host, one queue — GitHub and Gitea-family servers side by side, split into needs your review / yours / open.
- Real reviews — full diffs with per-file paging, line-level comments, CI check results with failure detail, and merge / squash / rebase.
- Private by design — tokens live in your phone's Keychain and go only to the server they belong to. No account, no analytics, no middleman.
- Push notifications, your infrastructure — a new-PR buzz via a webhook relay you run yourself (Cloudflare Worker, AWS Lambda, and Azure Functions templates included).
Get it
Free on the App Store, or build from source:
brew install xcodegen
git clone https://github.com/botelle/minos && cd minos/ios
xcodegen generate && open Minos.xcodeproj
AGPL-3.0 licensed at github.com/botelle/minos — use it freely, but derivatives (including hosted versions) must stay open source. The repo also has an optional self-hosted proxy for reaching a git server that isn't on the internet.
eunomia Python · macOS source-only
The control layer for running a fleet of AI coding agents at once. It came out of a day with thirteen sessions running in parallel, where every failure happened between the agents, not inside any one of them. eunomia is the set of controls that closed those gaps.
What it does
- A plan is the unit of work — a written plan says what to build and what not to touch. Merging the plan is the go signal.
- Claims on shared work — leases on repos and files, so two agents never edit the same thing.
- An append-only record — who did what, when, and on whose authority, in a log an auditor can read.
- Earned review — a different model reviews the code than the one that wrote it, and a human merges every change (from Minos, above).
Status
This is the engine that runs my own fleet, cut for publication. It is shaped by that fleet — macOS hosts, a self-hosted Forgejo, launchd services — and it is not yet a thirty-minute install. Read the spec and the decision records first. Python standard library only, no dependencies. How it works, drawn out: Plan dispatch, drawn and Merge is ignition.
Source
Apache-2.0 licensed at github.com/botelle/eunomia.
LightsOut macOS 13+
A tiny menubar app: turn the display off now — or on a timer — while the Mac keeps running. For when your laptop is your always-on workstation: too much running on it to let it sleep, but no reason to keep the screen lit.
What it does
- Display Off Now — screen goes dark immediately; every job, server, and download keeps running.
- Lights out in N minutes — type a number, get a countdown in the menubar. Your last three durations are saved as one-click buttons.
- Keep Mac Awake — blocks system sleep while still allowing the display to sleep, using a native macOS power assertion.
- Launch at Login — optional, one checkbox.
No dock icon, no windows, no admin password required.
Install with Homebrew (recommended)
brew install --cask botelle/tap/lightsout
Then launch it once from Applications — the crossed-out lightbulb appears in your
menubar. Updates: brew upgrade --cask lightsout.
Install by download
- Download the latest
LightsOut-x.y.z.zipfrom the releases page. - Unzip it and drag
LightsOut.appinto your Applications folder. - Open it. The app is signed with a Developer ID certificate and notarized by Apple, so it opens without security warnings.
Source
MIT licensed, single Swift file, built with swiftc — no Xcode project.
Read it in five minutes at
github.com/botelle/lightsout.
Nauti Husky iOS · macOS · watchOS source-only
A swim-conditions app for people who swim with their dogs: nearby swim spots, water temperature, tides, forecast, lightning risk, and a best-time score — rendered as one glanceable verdict per spot, with dog-cooling bands for the water temp.
The interesting part is the architecture: zero-backend. The app ships with a static catalog of free public endpoints (NOAA, NWS, OpenStreetMap) and every install checks them itself. No server, no API key, no account, no bill. The write-up: The app checks itself.
Get it
Source-only for now — build it with Xcode in two commands:
brew install xcodegen
git clone https://github.com/botelle/nauti-husky && cd nauti-husky
xcodegen generate && open NautiHuskyTemp.xcodeproj
MIT licensed at github.com/botelle/nauti-husky. Curated spots are seeded for coastal Connecticut; adding your own region is one entry in a Swift file.
Everything else
All my public repositories live at github.com/botelle.
Questions or ideas?
Open an issue on the project's GitHub repo or email justin@botelle.net.