Skip to content

Stoat Parity Matrix

Stoat mirrors a real-world coding-agent harness in the shell-mode- toggle tradition — the upstream lets users press a chord to flip the prompt buffer between an LLM agent and a direct shell, with both modes driven by the same context. We never name the upstream brand here (see security-and-trademarks.md); this page documents which surface ports we ship, which we skip, and why.

The “Status” column uses the same vocabulary as the other parity matrices in this repo:

  • Tier 1 (live-driven) — implemented, exercised by tests against the live framework, surface-stable.
  • Tier 2 (scaffolded) — surface present and dispatched, body still comes from a follow-up agent.
  • Skipped — out of scope for stoat (or covered by a sibling CLI).
SurfaceStatusNotes
Shell-mode toggle (/shell)Tier 1Slash command + --shell-mode flag flip the REPL between agent mode (stoat>) and shell mode (stoat$).
Ctrl-X chordTier 2Documented, but the slash form is the default — chord binding is per-terminal config.
Mode-tagged historyTier 1/history renders > for agent lines, $ for shell lines.
Persistent cwd across shell turnsSkippedEach shell command runs in its own bash -c subprocess; cd is intentionally not honored. Use --cwd to pin the working directory.
SurfaceStatusNotes
chimera stoat --versionTier 1Prints chimera stoat 0.5.0.
chimera stoat -p PROMPTTier 1One-shot agent turn. Honors --allowed-tools, --max-steps, --cwd, --json.
chimera stoat --mode rpcTier 1Delegates to chimera.cli.code in JSON-RPC mode.
chimera stoat --mode print (without -p)Tier 1Usage error, exit 2.
chimera stoat sessions listTier 1Walks ~/.chimera/eventlog/stoat-*/.
chimera stoat sessions show <id>Tier 1Loads summary.json + every event-*.json.
chimera stoat sessions costTier 1Re-uses chimera.mink.cost.compute_summary.
chimera stoat share <id>Tier 1JSON / Markdown render to file or stdout.
chimera stoat agents list/showTier 2Handler stub; eventual integration with shared agent registry.
chimera stoat bench <suite>Tier 2Handler stub; HumanEval / tau-bench wiring follows shrew/ferret.
chimera stoat serveTier 2ACP / IDE-extension server is a follow-up. Use chimera ferret serve --http for the cross-CLI HTTP transport.
SurfaceStatusNotes
Kimi-first via $MOONSHOT_API_KEYTier 1Default model kimi-k2.6, OpenAI-compatible against api.moonshot.ai/v1.
$STOAT_MODEL env overrideTier 1Pin a model id without setting any provider key.
Anthropic / OpenAI fallbackTier 1Per chimera.providers.factory.create_provider prefix inference.
OpenRouter via vendor/name idsTier 1$OPENROUTER_API_KEY + slash-shaped id.
Ollama via name:tag idsTier 1$OLLAMA_HOST / OLLAMA_API_KEY.
Auto-resolved model probe (no key)Tier 1Friendly ValueError listing every supported env var.

See providers.md for the full chain table.

Stoat ships a deliberately small palette to keep the toggle the focus.

SlashStatusNotes
/helpTier 1Renders the palette.
/exit / /quitTier 1Break the loop.
/clearTier 1Drops conversation history.
/modelTier 1Show or set the active model id.
/shellTier 1The headline toggle.
/costTier 1Running USD rollup.
/historyTier 1Mode-tagged review.
/init, /agent, /checkpoint, /yolo, /branch, /switchSkippedAvailable via chimera code for users who want the full 19-slash palette.
SurfaceStatusNotes
Eventlog at ~/.chimera/eventlog/stoat-*/Tier 1Mirrors weasel/shrew/otter.
Cost rollup parity (text/JSON/CSV)Tier 1Same body as mink/weasel/shrew.
Share to ~/.chimera/shares/stoat-*.*Tier 1JSON + Markdown.
Share via HTTP / HTMLSkippedmink/otter ship the full sink palette; stoat stays minimal.
  • VS Code extension parity — stoat does not bundle an editor extension. The cross-CLI ACP / HTTP transports live under ferret / otter; users who want IDE integration can drive ferret’s ACP server pointed at a stoat-flavored agent factory.
  • Zsh shell plugin — stoat does not ship a shell plugin. The toggle is internal to the stoat REPL.
  • MCP mcp sub-command group — MCP integration is reachable via the cross-CLI plugin loader (see chimera plugins). Stoat’s per-CLI surface stays small.
  • OAuth login flow — stoat reads $MOONSHOT_API_KEY from the env (filesystem path ~/.kimi/config.json is referenced in upstream docs as a fact about the host CLI’s config layout, not something stoat reads). Operators wanting OAuth-issued tokens can use the shared chimera.auth flow.