1つのバイナリを、あらゆるチャネルへ。
ビルド済みのバイナリを渡すだけで、Homebrew / Scoop / apt・rpm / コンテナへ配れる。どの言語で書いても、どのバージョンがどこまで通ったかが常に分かる。
あなたの AI エージェントが動かす前提。ツール自身が出力で自分を説明するから、エージェントは一度コマンドを読めばリリースを回せる。
始める →
$ brew install shirodoromoto/wharfy/wharfy
$ scoop bucket add wharfy https://github.com/ShiroDoromoto/scoop-wharfy
$ scoop install wharfy
$ curl -fsSL https://wharfy.io/install.sh | sh
リリースを上から下まで、ひと続きで。どのコマンドも --json を取り、最後に next: ブロックで終わるので、あなたも AI も出力をたどるだけでいい。対話を求めず、鍵は環境変数から読む ── 同じコマンドが手元でも GitHub Actions でも動く。
AI に渡す。一度読めばコマンド・チャネル・順番が返り、あとは自走する ── ドキュメントを探す往復は要らない。
$ wharfy agent
wharfy — ship one binary to every channel. Read this once, then drive.
commands agent · status · build · sign · release · promote · publish · verify
channels homebrew cask scoop apt rpm container aur goinstall script · winget, homebrew-core (gated)
every command takes --json and ends with a next: block.
next: wharfy status
ここでビルドしても、持ち込んでもいい。Go なら1コマンドで全 os/arch。ほかの言語でビルド済みなら prebuilt: に置くだけで、wharfy はそのバイト列をそのまま配る。
$ wharfy build
✓ built 6 artifacts → .wharfy/dist
next: wharfy sign · wharfy release
誰の目にも触れる前に、実物を検証する。成果物は本当に上がり、公開 URL から落とせる。それでも latest はまだ旧版を指す ── CI が作ったそのバイト列を実機で入れて確かめてから、promote で切り替える。
$ wharfy release --yes --prerelease
✓ release 0.22.0 uploaded · prerelease (users stay on 0.21.0)
✓ build provenance attested
next: wharfy verify --version 0.22.0 · wharfy promote --yes
既定で非破壊。まず計画を表示し、--yes を付けるまで何も書かない。owned は発行、gated は追跡用の PR。まだ prerelease の版は、そもそも受け付けない。
$ wharfy publish
✓ plan: 8 channel(s)
next: wharfy publish --yes # apply all channels, one release
どのバージョンがどこまで届いているか、いつでも分かる。「前回どう配ったか」を思い出す作業が消える。
$ wharfy status
wharfy v0.22.0 · build: ok (6 artifacts)
homebrew
probed
published
0.22.0
scoop
probed
published
0.22.0
releases
recorded
published
0.22.0
script
probed
published
0.22.0
goinstall
probed
published
v0.22.0
apt
probed
published
0.22.0
rpm
probed
published
0.22.0
winget
probed
pending
next: wharfy verify
チャネルごとに違う形式のファイルを手書きするのは、もうやめる。
タグを打つ。あとはエージェントと CI が運ぶ。