Agent compatibility¶
This reference lists the agent CLI integrations Ralph Workflow supports and the important operational constraints for each one. It is a compatibility guide, not a guarantee that every third-party CLI works in every environment.
Model and provider syntax reference¶
Dynamic aliases select a model where the corresponding CLI integration supports one. The emitted flags below are Ralph Workflow behaviour; third-party model availability remains the CLI provider’s responsibility.
Alias family |
Ralph Workflow emits |
Constraint and example |
|---|---|---|
|
|
A non-empty single model segment is required. |
|
|
Effort is |
|
|
All model path segments must be non-empty. |
|
|
The provider is required. |
|
|
Example: |
|
|
A bare model ID or slash-delimited provider/model path is accepted; empty path segments and ambiguous thinking suffixes are rejected. |
|
|
|
|
The configured CCS alias command |
Define the alias under |
Supported agents¶
Claude Code¶
CLI:
claudeInstall / auth: https://docs.claude.com/claude-code
Transport:
claude-interactiveFlags:
--dangerously-skip-permissions,--verbose, and--resume {}Constraint: Use
claude-headlesswhen a non-interactive streaming command is required.
Claude headless¶
CLI:
claude -pInstall / auth: https://docs.claude.com/claude-code
Transport:
claudeFlags:
--print,--output-format=stream-json,--include-partial-messages,--permission-mode auto,--verbose, and--resume {}Constraint: This is the built-in non-interactive Claude transport.
Codex (OpenAI)¶
CLI:
codex execInstall / auth: https://github.com/openai/codex
Transport:
codexFlags:
--jsonand--dangerously-bypass-approvals-and-sandboxConstraint: Codex has no Ralph-managed session-resume flag.
OpenCode¶
CLI:
opencode runInstall / auth: https://opencode.ai
Transport:
opencodeFlags:
--format jsonand--session {}Constraint: Dynamic aliases emit
-m <model>.
Nanocoder¶
CLI:
nanocoder --mode yolo --no-plain runInstall / auth: https://docs.nanocollective.org/nanocoder/docs
Transport:
nanocoderFlags:
--mode yoloand--no-plainConstraint: Dynamic aliases require a provider and may select a model.
AGY¶
CLI:
agyInstall / auth: https://github.com/google-antigravity/antigravity-cli
Transport:
agyFlags:
print_flag = "--print",yolo_flag = "--dangerously-skip-permissions"; v1.1.8 publishes model IDs and--effort low|medium|high. Live probes accepted bothgemini-3.6-flash-lowandgemini-3.6-flash-high --effort high.Parser:
generic(native AGY parser; plain-text, not NDJSON)Caveats:
PTY-based runtime injection into the global
~/.gemini/antigravity-cli/mcp_config.json, not manual pre-configuration. The injection writes only the Ralph Workflow entry and is restored on exit.With
autonomy_mode = "dangerously-skip-permissions", the argv includes--dangerously-skip-permissions(AGY reuses the Claude flag; the earlier docs incorrectly attributed Codex’s--dangerously-bypass-approvals-and-sandboxto AGY).Completion contract: AGY normally supplies the durable
declare_completesentinel; when its observed--printfallback produces a valid required artifact but misses the MCP completion call, Ralph Workflow writes the same host-owned durable sentinel after canonical promotion. Required-artifact phases still need the run-scoped receipt.Multimodal delivery uses the Gemini provider profile.
The
RALPH_AGY_BINARYenv var is a general binary override. When it points at the deterministic mock attests/_support/mock_agy.sh(basename starts withmock_agy) the harness takes the mock diagnostic path; any other executable override (a real wrapper, alternate live binary, oragyonPATH) takes the live diagnostic path and surfaces the upstream~/.gemini/antigravity-cli/cli.logquota or model-id diagnostic on empty stdout.Session continuation remains unavailable in Ralph Workflow. The v1.1.8 continuation and conversation-id probes accepted one-word
--printprompts, but neither exposed the resumed-session identity; the integration therefore does not claim or reuse AGY sessions.agy agentsreported no available agents on the measured stock v1.1.8 install. This is an install observation, not a universal capability claim; withagent_subagentsand two or more work units, routing fails explicitly rather than falling back to sequential dispatch.The latest v1.1.8 manual live smoke exited 0 after creating its requested file, showing parser/tool activity without a permission prompt, and producing a valid fallback
smoke_test_result. Ralph Workflow validated and canonically promoted it, recorded the receipt and host completion sentinel. Its plain-text parser reports observed output; stream-json separately emittedinit,step_update, and successfulresultevents.AGY is a supported integration, not a replacement for Ralph Workflow.
[agents.agy]
cmd = "agy"
print_flag = "--print"
yolo_flag = "--dangerously-skip-permissions"
can_commit = true
json_parser = "generic"
Pi (Pi.dev)¶
CLI:
piInstall / auth: https://pi.dev/docs/latest/usage
Transport:
piFlags:
--mode json,--approve, and--session {}Constraint: Ralph Workflow adds
--no-builtin-tools --extension <path>when it configures Pi’s MCP extension.
Cursor (Cursor)¶
CLI:
agentInstall / auth: https://docs.cursor.com/agent
Transport:
cursorFlags:
--print,--output-format stream-json,--stream-partial-output,--trust,--yolo,--approve-mcps, and--resume {}Constraint: The emitted
--trustand--approve-mcpsflags cover headless workspace-trust and MCP approval.
Claude Code Switch (CCS)¶
CLI: a configured
ccs/<alias>commandTransport:
claudeFlags:
--print,--output-format=stream-json,--include-partial-messages,--permission-mode auto,--verbose, and--resume {}Constraint: CCS aliases are explicitly headless Claude commands configured under
[ccs_aliases].
Built-in configuration examples¶
These examples are validated against the current agent configuration schema.
[agents.claude]
cmd = "claude"
yolo_flag = "--dangerously-skip-permissions"
verbose_flag = "--verbose"
can_commit = true
session_flag = "--resume {}"
json_parser = "claude"
[agents.claude-headless]
cmd = "claude -p"
print_flag = "--print"
output_flag = "--output-format=stream-json"
streaming_flag = "--include-partial-messages"
yolo_flag = "--permission-mode auto"
verbose_flag = "--verbose"
can_commit = true
session_flag = "--resume {}"
json_parser = "claude"
[agents.codex]
cmd = "codex exec"
output_flag = "--json"
yolo_flag = "--dangerously-bypass-approvals-and-sandbox"
can_commit = true
json_parser = "codex"
[agents.opencode]
cmd = "opencode"
output_flag = "--json-stream"
session_flag = "--session {}"
can_commit = false
json_parser = "opencode"
[agents.pi]
cmd = "pi"
output_flag = "--mode json"
yolo_flag = "--approve"
session_flag = "--session {}"
can_commit = true
display_name = "Pi"
json_parser = "pi"
[agents.nanocoder]
cmd = "nanocoder"
can_commit = false
json_parser = "generic"
[agents.cursor]
cmd = "agent"
yolo_flag = "--yolo"
print_flag = "--print"
output_flag = "--output-format stream-json"
streaming_flag = "--stream-partial-output"
session_flag = "--resume {}"
can_commit = true
display_name = "Cursor"
json_parser = "generic"
[ccs]
print_flag = "--print"
output_flag = "--output-format=stream-json"
streaming_flag = "--include-partial-messages"
yolo_flag = "--permission-mode auto"
verbose_flag = "--verbose"
session_flag = "--resume {}"
json_parser = "claude"
can_commit = true
[ccs_aliases]
glm = "ccs glm"