codex-host — Codex skill: what it does and how to install
Runs the full great_cto pipeline through a controller that owns writes and approval gates. Use it when you need the whole workflow, not a single skill.
npx skills add avelikiy/great_cto --skill codex-host -a claude-codeWhat codex-host does
The skill hands a great_cto run to a controller. It reads shared/pipeline.toml, tracks run state and limits writes to paths explicitly allowed at startup. Before starting, doctor checks readiness and list shows the project’s runs.
Start with an absolute project path and operator-owned policy files stored outside that project. The controller may pause for human approval before continuing or releasing artifacts; pass back its issued token only after approval. A blocked doctor state means the run must not start, and exit code 2 is not a successful result.
The local and GitHub Release adapters publish immutable artifacts, but do not activate them in production. A separate adapter and approval contract are needed to activate production traffic. That boundary matters if your goal is deployment rather than a release artifact.
What it helps with
- run the full great_cto pipeline for a project
- check controller readiness and inspect project runs
- restrict controller writes to approved paths
- approve a gated continuation or artifact release
- resume a run after reviewing its recorded reason
Example prompts for the agent
- Run the full great_cto pipeline for this project and allow changes in
src,testsanddocs. - Check great_cto readiness and list runs for
/absolute/project. - Show me the release approval summary and wait for my explicit approval.
How to install codex-host
1Skills CLI (Vercel)
npx skills add avelikiy/great_cto --skill codex-host -a claude-code2Manually: put the files in place
~/.claude/skills/codex-host/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/codex-host/
1Skills CLI (Vercel)
npx skills add avelikiy/great_cto --skill codex-host -a codex2Manually: put the files in place
.agents/skills/codex-host/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add avelikiy/great_cto --skill codex-host -a cursor2Manually: put the files in place
.cursor/skills/codex-host/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install avelikiy/great_cto codex-host2Manually: put the files in place
.github/skills/codex-host/SKILL.md1Skills CLI (Vercel)
npx skills add avelikiy/great_cto --skill codex-host -a gemini-cli2Platform CLI
gemini skills install https://github.com/avelikiy/great_cto --path skills/codex-hostManually: put the files in place
.devin/skills/codex-host/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add avelikiy/great_cto --skill codex-host -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about codex-host
How do I install codex-host in Codex?
Run npx skills add avelikiy/great_cto --skill codex-host -a codex. The skill file is placed at .agents/skills/codex-host/SKILL.md.
What does codex-host do?
It runs the full great_cto workflow through a controller that manages run state, permitted writes and approval gates.
Does codex-host add great-cto to PATH?
No. It invokes the pinned npm package with npx --yes [email protected]; installing a Codex plugin does not put the great-cto binary on PATH.
Source text
SKILL.md · MIT
--- name: codex-host description: Run the great_cto controlled Codex lifecycle with controller-owned writes, verifier evidence, human gates and optional artifact release. when_to_use: Use when the user asks Codex to run or inspect a full great_cto pipeline rather than only use an individual skill. effort: high allowed-tools: Read, Bash --- # Controlled Codex host Use the version-pinned npm entrypoint below. A Codex plugin install loads skills and MCP configuration, but it does not add the `great-cto` npm binary to `PATH`. Do not imitate Claude Code hooks or manually chain roles: the controller reads `shared/pipeline.toml`, persists the cursor and owns every write and gate transition. ## Preflight ```sh npx --yes [email protected] codex-host doctor npx --yes [email protected] codex-host list --dir /absolute/project ``` `doctor.state=blocked` means do not start. Docker may be unavailable when no checks/release policy is requested; GitHub CLI may be unavailable when the local adapter is used. The run store must not be group/world accessible. For mixed-host runs, also require `doctor.checks.claude.state=available`. ## Start Policies must be operator-owned absolute files outside the worker project. Allowed paths are explicit controller write boundaries. ```sh npx --yes [email protected] codex-host start \ --dir /absolute/project \ --prompt "the requested outcome" \ --allow src,tests,docs \ --checks-policy /absolute/operator/checks.json \ --release-policy /absolute/operator/release.json ``` Read the returned `status`, `pending` and `release` object. Never treat exit 2 as success: it means a gate, manual action or blocked evidence requires attention. Since 3.47.0, independent graph roles can run on both hosts with `--routes qa-engineer=claude-code,security-officer=codex` on `start`. The controller dispatches only a symmetric join pair concurrently, checks both proposals for overlap, serializes writes and runs the existing verifier and human gates. The route map is fixed for the run. An interrupted wave must be inspected; never start replacement workers against an uncertain wave. ## Gates and recovery Show the operator the exact gate/release summary and wait for explicit approval. Then pass back the controller-issued token; never synthesize or persist one in a project file. ```sh npx --yes [email protected] codex-host approve RUN_UUID --token GATE_TOKEN npx --yes [email protected] codex-host approve-release RUN_UUID --token RELEASE_TOKEN npx --yes [email protected] codex-host resume RUN_UUID ``` Use `recover` only after inspecting the recorded reason. Recovery reuses the same candidate and refuses unknown partial writes. `cancel` revokes unexecuted approval but does not delete external audit evidence. ## Release boundary The local and GitHub Release adapters publish immutable artifacts and declare `activation: none`. They do not deploy traffic. Local rollback means selecting a previous directory; GitHub rollback is a newly gated superseding release. Production activation needs a separate adapter and approval contract. Detailed policy schemas and limitations are in `docs/HOST-CODEX.md`.
© avelikiy · MIT · avelikiy/great_cto