{ "id": "codex", "role": "runtime", "version": "1.12.0", "title": "OpenAI Codex CLI", "description": "OpenAI Codex CLI — shell-var command style; per-agent sandbox tiers; config.toml + hooks.json hook surface; tier-1 support.", "tier": "core", "requires": [], "engines": { "gsd": ">=1.6.0" }, "runtime": { "configHome": { "kind": "dot-home", "name": ".codex", "env": [ "CODEX_HOME" ] }, "localConfigDir": ".codex", "configFormat": "toml", "artifactLayout": { "global": [ { "kind": "skills", "destSubpath": "skills", "prefix": "gsd-", "nesting": "flat", "recursive": false, "converter": "convertClaudeCommandToCodexSkill", "home": ".agents" }, { "kind": "agents", "destSubpath": "agents", "prefix": "gsd-", "nesting": "flat", "recursive": false, "converter": "convertClaudeAgentToCodexAgent" } ], "local": [ { "kind": "skills", "destSubpath": "skills", "prefix": "gsd-", "nesting": "flat", "recursive": false, "converter": "convertClaudeCommandToCodexSkill" }, { "kind": "agents", "destSubpath": "agents", "prefix": "gsd-", "nesting": "flat", "recursive": false, "converter": "convertClaudeAgentToCodexAgent" } ] }, "triggerPrecedence": [ "skills", "commands" ], "commandStyle": "shell-var", "hooksSurface": "codex-hooks-json", "hookEvents": "claude", "sandboxTier": "codex-agent-sandbox", "supportTier": 1, "installSurface": "codex-toml", "writesSharedSettings": false, "permissionWriter": null, "extendedHookEvents": [ "SubagentStop", "Stop", "PreCompact" ], "hostIntegration": { "embeddingMode": "declarative", "commandSurface": "slash-file", "dispatch": { "namedDispatch": true, "nested": true, "maxDepth": 1, "background": true, "subagentToolkit": "full", "backgroundDispatch": true, "isolation": "orchestrator-worktree" }, "modelMode": "passive", "hookBus": "host", "stateIO": "filesystem", "transport": "mcp", "runtime": "node", "effortSurface": "argv" }, "orchestratorExec": { "command": "codex", "args": [ "exec" ], "cwdFlag": "--cd", "promptFlag": null, "modelFlag": "--model" }, "hostBehaviors": { "reapplyCommand": "$gsd-update --reapply", "tomlConfigInstall": true, "cleanupSkillSidecars": true, "agentTomlFiles": true, "frontmatterDialect": "codex" } }, "reviewer": { "slug": "codex", "flags": [ "--codex" ], "transport": "spawn", "probe": { "kind": "command-exists", "binary": "codex" }, "invoke": { "binary": "codex", "args": [ "exec", "--ephemeral", "{{model}}", "{{effort}}", "--skip-git-repo-check", "{{output}}", "-" ], "promptChannel": "stdin", "outputChannel": "file-arg", "outputArg": "-o", "modelArg": "--model", "effortChannel": "argv" }, "timeoutFloorMs": 1200000, "emptyOutput": "stub-with-stderr", "reviewsSection": "Codex", "evidenceClass": "source-grounded", "requiresBinaries": [], "promptBudgetKey": "review.max_prompt_tokens_per_reviewer.codex", "modelConfigKey": "review.models.codex", "handler": null }, "config": { "review.models.codex": { "type": "string", "default": "", "description": "Model passed to the Codex reviewer lane." }, "review.max_prompt_tokens_per_reviewer.codex": { "type": "number", "default": -1, "description": "Prompt-token budget for the Codex reviewer lane. Unset is -1, a sentinel: 0 is a legitimate value meaning \"do not trim this lane\", so it cannot double as \"not configured\"." } } }