Repository navigation
v1.3.0
The Claude Code bird, installed the way Claude Code installs things.
As a plugin
/plugin marketplace add thousandflowers/canary
/plugin install canary@canary
That is the whole install for anyone who only ever wanted the status line
bird. The next session start finds the binary, or builds it from source when
Go is around and fetches the release binary otherwise, and wires the status
line. The shell rc is never touched.
A plugin cannot declare a status line: Claude Code's plugin manifest has no
field for one. So the plugin is one SessionStart hook that runs canary settings install, which refuses to wire itself twice, and every session after
the first is a no-op that says nothing. The hook adds nothing to the model's
context. canary is the marketplace and canary is the plugin, hence
canary@canary.
/plugin uninstall canary@canary and canary settings remove take it back out.
Why this exists
Run the one-liner a second time without CANARY_CLAUDE_ONLY=1 and the shell
bird comes back, because the installer does what it is told. The plugin is the
install that cannot make that mistake: there is no shell half to wire.
Also
Release CI now refuses a tag whose version the plugin manifest does not agree
with. The plugin installs straight from the repository, so a manifest left
behind is what its users would see.