Skip to content

Reference: `runtimes/*.yaml`

Each YAML file under runtimes/ defines one runtime adapter. File stem = runtime id used in agent runtime: fields.

Fields

FieldTypeRequiredNotes
binarystringyesCLI binary name (resolved on $PATH) or absolute path.
supports_mcpboolno, default falseMust be true for participation in the mailbox. All shipped runtimes set this.
session_resumestringnoParsed-but-inert metadata, kept for back-compat. The actual resume strategy is hard-coded per runtime in agent-wrapper.sh: claude-code spawns with a deterministic UUIDv5 derived from teamctl:<project>:<agent> (--session-id to create, --resume to attach existing); codex reopens its newest session via resume --last scoped to the per-agent CODEX_HOME; opencode continues via -c scoped to the per-agent OPENCODE_DB; gemini has no equivalent. Setting this in a custom adapter is a no-op today.
default_modelstringnoUsed when an agent doesn’t set its own model:.
envmap<string,string>noMerged into the agent’s environment on launch.

Shipped adapters

  • claude-code.yaml: Anthropic’s Claude Code CLI.
  • codex.yaml: OpenAI’s Codex CLI.
  • gemini.yaml: Google’s Gemini CLI.
  • opencode.yaml: OpenCode, the provider-agnostic terminal agent.

Example

# runtimes/aider.yaml: hypothetical adapter for aider
binary: aider
supports_mcp: true
default_model: sonnet
env:
AIDER_CHAT_HISTORY_FILE: ""

session_resume was an early field for declaring resume strategy. It’s still parsed (back-compat) but inert: leave it out of new adapters. claude-code agents now auto-resume via deterministic UUIDv5 session ids; other runtimes either resume natively or don’t.

You’d also need an aider) case in bin/agent-wrapper.sh that knows how to pass aider’s own MCP-config and system-instruction flags. The shipped cases show the range: claude-code and gemini take the rendered JSON via --mcp-config, while codex and opencode have no such flag — codex’s MCP servers are rendered as [mcp_servers.*] tables into a per-agent CODEX_HOME/config.toml, and opencode’s ride the mcp block of a per-agent OPENCODE_CONFIG json.