install
One command downloads galley, verifies its checksum, and puts it on your PATH. It runs on macOS and Linux, on both Apple silicon and x86-64.
# downloads galley, verifies its checksum, and installs it onto your PATH $ curl -fsSL https://galley.tools/install.sh | sh
Run the same command again to upgrade to the latest release. Check what you have with galley version.
the channel
Most tools an agent talks to only answer when the agent calls them. The channel is the other way around: it delivers a Revise or an Approve into a running session on its own, so the agent picks the round up and answers without you prompting it. Because the round lands in the session the agent already has open, there is nothing to start between rounds and nothing to re-arm — a smoother loop the more you review, and the more documents you have open at once. It works in Claude Code and in pi; how you turn it on depends on which.
Channels are a Claude Code research preview, and galley is not on Anthropic's approved-channel list. On a personal plan you load galley's channel with the development flag. Put a .mcp.json in the repository you review in:
{ "mcpServers": { "galley": { "command": "galley", "args": ["channel"] } } }
Then launch claude, naming it every time:
$ claude --dangerously-load-development-channels server:galley
The --dangerously- prefix is important: a channel pushes instructions and tool calls into your session, so Claude Code makes you opt in by name at every launch rather than through a setting. A session started without the flag hears nothing.
On a Team or Enterprise plan, channels are off until an Owner turns them on — at claude.ai → Admin settings → Claude Code → Channels, or with channelsEnabled: true in managed settings. Once on, your developers skip the dangerous flag: approve galley in managed settings, naming its marketplace.
{
"channelsEnabled": true,
"allowedChannelPlugins": [
{ "marketplace": "galley", "plugin": "galley" }
]
}
Add galley's marketplace once, then developers launch with the plain flag — no --dangerously-, and no project .mcp.json:
$ claude plugin marketplace add schuettc/galley $ claude --channels plugin:galley@galley
Note that allowedChannelPlugins replaces Anthropic's default list, so re-add any channels your org already uses. The plugin only wires up the channel — galley itself still installs on PATH separately.
Either path needs Anthropic authentication — a claude.ai plan or a Console API key — channels do not work on Amazon Bedrock, Vertex, or Foundry.
A pi session gets channels from a pi extension — the one we built at channels.tools. Install it, and galley's Revises arrive with nothing to wire and no flag to remember.
galley works fully without the channel. Any agent that can run a command can review over a blocking wait: you tell the agent to review the document, and it runs galley wait <doc>, which holds until you press Revise or Approve and then prints the round for the agent to answer; it answers and waits again. It is the same round the channel delivers, reached with no plugin and no launch flag — the difference is that something (you, or a message to the agent) has to point it at each document, where the channel would have delivered it into a session already open.
New to galley? The guide walks one round from your first edit to approval.