Amon Hen CLI
Amon Hen is a native Rust command center for Codex, Claude, Gemini, and Linear delivery loops.
Install
From crates.io:
From this checkout:
Amon Hen shells out to provider CLIs that are already authenticated on your machine:
codexclaudegemini
Override binary paths when your CLIs are not on PATH:
AMON_HEN_CODEX_BIN=/path/to/codex \
AMON_HEN_CLAUDE_BIN=/path/to/claude \
AMON_HEN_GEMINI_BIN=/path/to/gemini \
Studio
Open the native interactive Studio:
Studio gives you selectable panes for settings, agents, auth, Linear, files, tools, provider capabilities, token usage, command logs, updates, and help. It supports role changes after launch, single-model planner/executor/reviewer handshakes, manual provider auth method selection, browser-tab social login handoff, file tagging, command tagging, per-provider capability overrides, readable provider stream decoding, startup update notices with changelog excerpts, in-dashboard terminal self-update, stable Results scrolling with sticky live-tail mode, and double-Ctrl+C exit.
Updates
Interactive terminal runs check crates.io for newer releases at startup and print a changelog excerpt only when an update exists. The check is cached briefly so normal startup stays snappy.
--update runs cargo install amon-hen --force by default. Set AMON_HEN_UPDATE_COMMAND when a host needs a pinned mirror, internal registry, or git install command. Use --no-update-check in CI, scripts, or any run that must stay silent.
Basic Runs
Ask all providers and synthesize once:
Pick roles and let providers hand work to each other:
Keep the lead/planner in a serial review chain with executors:
Planner modes:
--planner-mode blockingwaits for the planner output before executor prompts are built. This is the default and is best when you want a true planner handoff first.--planner-mode parallelstarts the planner/lead in the same iteration as the executors. This is best when Claude leads/plans but Codex and Gemini should not sit queued.--planner-mode review-chainruns members serially in planner/lead order. Each provider reviews the previous provider's handoff and the current repo state before making deliberate deltas, which is the safer mode for production VPS work.--planner-mode handshakeor--handshakecreates explicit planner -> executor -> reviewer agent slots. Those slots can all use the same provider/model, or you can declare each role yourself.
Run a full three-way handshake with one model:
Declare the handshake yourself when the roles need different providers or sub-agent counts. Use repeated --handshake-agent flags or one comma-list via --handshake-agents:
Keep iterative runs under provider prompt limits:
--max-member-chars limits how much of each provider answer is reused in handoffs and synthesis. --max-prompt-chars is the final launch-time provider prompt ceiling, so later iterations and same-provider team handoffs cannot grow into provider "prompt too long" failures.
Fan out real same-provider sub-agents:
Provider Controls
Set model and effort per provider:
Model values are passed through to the provider CLI. If Claude, Codex, or Gemini rejects a model value, replace it with a model name your installed CLI/account supports.
Set permissions and execution policy:
Gemini approval defaults to plan, which is intentionally read-only. Use --gemini-approval-mode auto_edit for executor runs that need tool/edit access, and reserve --gemini-approval-mode yolo for deliberately permissive sessions.
Inherit or override provider-native capability surfaces:
Auth
Check local provider status:
Launch social login flows for provider CLIs:
The auth flow can open browser tabs and return through code paste or provider deeplink, depending on what the underlying CLI supports.
Prompt Context
Attach local files:
Attach command output and show the commands as tool usage:
Linear Delivery
Run a long-lived Linear loop against a project:
Target epics, teams, states, assignees, labels, or explicit issues when you need a tighter queue. The delivery worker creates isolated issue workspaces, runs planner/executor/verification phases with bounded issue concurrency, persists retry and reconciliation state, comments progress back to Linear, attaches generated media or command output, and stops only at the configured human-review or CI gate.
Output And Telemetry
Emit JSON for automation:
Emit live NDJSON progress while providers are still running:
Use verbose output when you want to see provider commands and telemetry in a plain terminal run:
Provider stream decoding:
- Claude nested
stream_eventmessages are decoded into readable assistant text and tool starts. - Claude
input_json_delta.partial_json, hook/session events, hidden thinking/signatures, and provider plumbing are suppressed in Studio logs. - Codex command events and Gemini text/function-call events are summarized into readable tool or assistant lines.
Recorded Studio Runs
Use script when you want an audit trail of an interactive Studio session:
The terminal recording is written to $AMON_HEN_RUN_DIR/studio.typescript. Studio also writes native diagnostics into the same directory, or .amon-hen/runs/<run-id>/ inside the working repo when AMON_HEN_RUN_DIR is not set:
state.jsonis the resumable Studio snapshot: prompt, workflow, provider status, token/tool counts, sub-agent state, and the latest result when present.agents.jsonkeeps the per-provider and per-sub-agent state in a compact machine-readable file.planning-artifacts.mdpreserves the prompt, tagged files, commands, workflow, handoff context, summary context, and live planning tail.studio.logkeeps the readable Studio run log outside the alternate screen.events.ndjsonkeeps structured provider progress, token, tool, and status events.result.jsonandsummary.txtare written when a run reaches a final result.last-error.txtis written when Studio detects a crash, cancellation, disconnected worker, failed prompt context, or failed external action.resume.shcontains a secret-free reopen command.
Resume a saved Studio session:
Consensus mode makes review fail-closed:
Each consensus round runs the configured reviewers in sequence. Reviewers receive the current agent outputs, failed-agent context, prior reviewer handoffs, and required evidence checks. A required consensus run only succeeds when every reviewer returns CONSENSUS: approve, required checks pass, and failed agents have explicit takeover under --failure-policy takeover.
Development Checks