Skip to content

Ferret Parity Matrix

Source baseline: research/ferret/SPEC.md and the upstream source-tree audit recorded under research/ferret/. Updated: 2026-04-30, after wave-5 ship (FF1–FF8). Legend: GREEN = shipped / at parity (or superset); YELLOW = partial; RED = deferred.

Trademark hygiene. Throughout this document the upstream project is referred to as “the upstream” or “the IDE-first OpenAI-flagship coding agent”. Live references to filesystem paths such as ~/.codex/config.toml are kept because they are facts (the directory chimera ferret reads from on disk), not brand claims. See security-and-trademarks.md.

The upstream CLI registers about a dozen top-level commands. Ferret’s surface focuses on the agent runtime + sandbox + IDE bridge; admin / install / account flows are reused from the rest of Chimera.

Upstream surfaceFerret statusFileNotes
One-shot exec / runGREENchimera/ferret/cli.py (-p/--print)Mirrors the one-shot run flow: prompt arg, --model, --cwd, --sandbox, --approval, --allowed-tools, --no-save.
Interactive code / TUIGREENchimera/ferret/repl.pyStreaming REPL with mid-turn steering and slash-command palette.
serve (default ACP)GREENchimera/ferret/ide.pyDefault serve transport is ACP over stdio.
serve --httpGREENshared chimera/otter/server.pyOpt-in HTTP server with the same surface as otter.
bridge (cloud)GREENchimera/ferret/cloud_bridge.pyHTTPS bridge with bearer auth.
sessions list / showGREENchimera/ferret/sessions.pyRead-only over the eventlog.
sessions deleteYELLOWcovered by rm -rf <eventlog-dir>CLI verb deferred.
agents list / showGREENshared chimera/cli/code.pyHonors ~/.codex/agent/*.md ingest.
agents createYELLOWmanual mkdir + editInteractive scaffolder deferred.
mcp list / add / authYELLOWshared MCP runtimemcp list shipped, add / auth covered by edit-config + restart.
modelsGREENchimera/ferret/providers.py--model provider/model everywhere, FERRET_MODEL env var pinned.
auth login (provider)YELLOWenv vars + chimera.authDevice-flow OAuth ridden via chimera.auth; per-provider login UX deferred.
upgrade / uninstallREDpip install -U chimera-runUse the upstream packaging story.
completionREDn/aShell-completion script generation deferred.

The upstream one-shot command exposes about twenty flags. Ferret mirrors the ones that affect agent semantics or sandbox / approval posture and skips the ones that are upstream-server-specific.

Upstream flagFerret statusFerret equivalentNotes
--model / -mGREEN--model, $FERRET_MODELIdentical syntax: provider/model.
--sandboxGREEN--sandbox read-only|workspace-write|workspace-write-networkFirst-class; default read-only.
--approvalGREEN--approval read-only|auto|fullSingle-flag preset; default read-only.
--cwd / --dirGREEN--cwdSame semantics.
--allowed-toolsGREEN--allowed-tools Read,Bash,...Tool allowlist (composes with sandbox).
--reasoning / --effortGREEN--thinking low|medium|high|maxMapped to Chimera’s ThinkingLevel.
--no-saveGREEN--no-saveSkip eventlog.
--output-formatGREEN--output-format text|json|stream-jsonAdds stream-json (one event per line).
--continue / -cYELLOWchimera ferret sessions show <id>Live one-shot resume deferred to wave-2.
--session / -sYELLOWchimera ferret sessions show <id>Same.
--max-stepsGREEN--max-stepsInherited from shared CLI.
--no-colorGREEN--no-color, $NO_COLORInherited.
--profileYELLOW~/.codex/config.tomlProfile-switch UX deferred; users edit the config file.
--imageYELLOWmanual context inclusionImage-attach plumbing deferred.
--audioREDn/aAudio input deferred.
--port (serve)GREENchimera ferret serve --http --portSame.
--remote-url (bridge)GREENchimera ferret bridge --remote-urlFirst-class.
--auth-token (bridge)GREENchimera ferret bridge --auth-tokenFirst-class.
--insecure (bridge)GREENchimera ferret bridge --insecureDev-only HTTP fallback.

The upstream TUI registers about twenty slash commands. Ferret ships the standard Chimera REPL palette plus three ferret-specific entries.

SlashFerret statusHandler
/helpGREENshared cmd_help
/exit (/quit)GREENshared cmd_exit, cmd_quit
/sessionsGREENchimera/ferret/slash.py cmd_sessions
/new (/clear)GREENshared
/model (/models)GREENshared
/agent (/agents)GREENshared
/initGREENshared
/costGREENshared
/toolsGREENshared
/yoloGREENshared
/compactGREENshared
/statusGREENshared
/configGREENshared
/mcp (/mcps)GREENshared
/sandboxGREENferret-only: print current sandbox mode.
/approvalGREENferret-only: print or change the preset.
/bridgeGREENferret-only: cloud-bridge status.
/edit, /undo, /redoYELLOWshared stubs (carry-over from otter)
/themesYELLOWshared stub
/workspacesREDn/a (single-cwd model)
terminal-title toggleREDn/a

Ferret’s ACP server is a strict superset of otter’s. See ide.md for the full notification list.

ACP methodFerret statusNotes
initializeGREENAdvertises sandbox, approval, bridge.
session/newGREEN
session/load / session/listGREEN
session/messageGREENStreams session/update.
session/cancelGREENCooperative cancel.
session/setMode / setModelGREEN
session/setApprovalGREENFerret extension.
session/setSandboxYELLOWRead-only (sandbox is fixed at process start).
session/bridgeStatusGREENFerret extension.
permission/respondGREENStandard ACP.
kindFerret status
agent_message_chunkGREEN
tool_call_start / _progress / _endGREEN
permission_requestGREEN
turn_endGREEN
cost_updateGREEN
file_editGREEN (ferret extension)
file_openGREEN (ferret extension)
sandbox_violationGREEN (ferret extension)
approval_changedGREEN (ferret extension)
noticeGREEN
ModeFerret statusNotes
read-onlyGREENDefault. Refuses writes + network.
workspace-writeGREENWrites inside cwd; no network.
workspace-write-networkGREENWrites inside cwd + network.
offGREENBypass; recommended only inside disposable container.
OS-level kernel sandbox (sandbox-exec / bubblewrap)YELLOWRealpath enforcement shipped; OS-syscall enforcement uses chimera.permissions heuristics; native kernel hooks deferred.
PresetFerret statusNotes
read-onlyGREENDefault.
autoGREENStandard “let it work” preset.
fullGREENSuppresses asks + hard-deny patterns.

The upstream config schema defines several dozen keys. Ferret ingests the subset that maps onto first-class Chimera primitives and ignores keys that drive upstream-only chrome.

Upstream keyFerret statusNotes
modelGREENRead by chimera/ferret/config.py.
providerYELLOWDefault-chain wiring lives in chimera/ferret/providers.py; per-provider overrides honored opportunistically.
sandbox.modeGREENPinned default for --sandbox.
approval.presetGREENPinned default for --approval.
mcp (servers)GREENForwarded to chimera.mcp.
agentsGREENCombined with ~/.codex/agent/*.md.
commandsGREENCombined with ~/.codex/command/*.md.
bridge.remote_urlGREENPinned default for chimera ferret bridge.
bridge.auth_tokenREDDeliberately not honored from config; env-var only.
themeREDTUI chrome only.
keybindsREDFerret is a CLI; no keybinds.
experimental.*REDDefer until upstream stabilizes.
  • Top-level CLI subcommands: 8 GREEN, 4 YELLOW, 2 RED of the 14 reviewed.
  • run flags: 12 GREEN, 5 YELLOW, 1 RED of the 18 reviewed.
  • Slash commands: 17 GREEN (3 ferret-only), 4 YELLOW, 2 RED of the 23 reviewed.
  • ACP methods: 9 GREEN (2 ferret extensions), 1 YELLOW.
  • Notification kinds: 10 GREEN (4 ferret extensions).
  • Sandbox modes: 4 GREEN, 1 YELLOW.
  • Approval presets: 3 GREEN.
  • Config keys: 7 GREEN, 1 YELLOW, 4 RED of the 12 reviewed.

Chimera-only capabilities (do not regress)

Section titled “Chimera-only capabilities (do not regress)”

Ferret inherits the same Chimera-only superset that mink and otter already advertise: cooperative CancellationToken, mid-turn MessageQueues steering, loop detection, ghost commits, instruction anchor, learning store, discipline guards, EventSourcedSession crash recovery, FileAwareCompaction, SessionTree in-place branching, RedactionMiddleware, CostTracker with cache / reasoning breakdown, the 26-event EventBus, and the multi-tier AgentConfig.from_markdown() registry.

The four pieces that are unique to ferret in this wave:

  1. Sandbox-first. Default read-only sandbox; mode pinned at process start via --sandbox.
  2. Single-flag approval. Three named presets via --approval instead of fine-grained tool allowlists.
  3. IDE-first ACP. ACP over stdio is the default serve transport, with four extension notification kinds for editor integration.
  4. Cloud bridge. chimera ferret bridge for driving a local session from a remote UI.

Follow-up issues to file (or already filed)

Section titled “Follow-up issues to file (or already filed)”
  1. chimera ferret --continue / --session <id> (one-shot resume).
  2. Native OS sandbox hooks (sandbox-exec on macOS, bubblewrap on Linux) replacing the heuristic enforcement.
  3. chimera ferret agents create (interactive agent scaffolder).
  4. chimera ferret session delete <id> (currently rm -rf the eventlog dir).
  5. Image / audio attachment flags for one-shot prompts.
  6. Profile switcher (--profile <name>) reading ~/.codex/config.toml [profiles.<name>] blocks.
  7. chimera ferret completion (shell-completion script).
  8. Per-provider auth login UX wiring chimera.auth device-flow.

When a user runs chimera ferret from a project that already contains ~/.codex/config.toml, every GREEN row above is expected to behave in lockstep with the upstream IDE-first OpenAI-flagship coding agent at the black-box level (one-shot prompt, slash command, MCP server discovery, agent / command ingest, sandbox + approval defaults). YELLOW rows degrade gracefully and emit a hint where the gap is user-visible. RED rows are not implemented and will return a “not yet wired” notice with a pointer to the issue tracker entry.