Ship one binary to every channel.
Hand it a binary you already built — it ships to Homebrew, Scoop, apt/rpm and containers, in any language, and always knows where each version landed.
Built to be driven by your AI agent. The whole tool describes itself in its output, so an agent reads one command and runs the release.
A release, top to bottom — one run. Every command takes --json and ends with a next: block, so you (or your agent) just follow the output. Nothing prompts and every credential comes from the environment, so the same commands run on your laptop and in GitHub Actions.
Hand it to your AI. One read returns every command, channel, and order — then it drives, no docs to hunt.
Build here, or bring your own. For Go it cross-builds every os/arch in one command. Binaries from any other language go in prebuilt: — wharfy ships those exact bytes and never builds at all.
Verify before anyone can see it. The real artifacts go up and download from their public URLs, but latest still serves the previous version — so you install what CI just built, on a real machine, before a single user gets it.
Non-destructive by default. It prints the plan and writes nothing until --yes. Owned channels publish, gated ones get a tracked PR — and a version still in prerelease is refused outright.
Always know where each version landed. "How did I ship last time?" stops being a question.
Stop hand-writing a different manifest for every channel.
Push a tag. Your agent and your CI take it from there.