Codex
The CreateOS plugin for Codex teaches the agent to drive the createos CLI. There are no custom tools to learn — the plugin ships a skill that tells Codex when a sandbox is the right answer and which commands to run, and Codex uses its ordinary shell access to do it.
At a glance
- Marketplace:
createos - Auth:
createos login, orCREATEOS_API_KEY - Shape of the integration: a skill plus the
cosdriver, no custom tools
Prerequisites
Install the createos CLI:
Bash1curl -sfL https://raw.githubusercontent.com/NodeOps-app/createos-cli/main/install.sh | sh -
The plugin installs it for you the first time it is needed, so this step is optional.
Then authenticate. At a terminal, sign in:
Bash1createos login
Browser sign-in needs a real terminal, so the agent cannot do it for you. For CI or headless use, set an API key instead:
Bash1export CREATEOS_API_KEY=<key>
Never paste an API key into the conversation — export it in your shell and let the CLI pick it up. cos auth reports which method is in effect.
Install
Bash1codex plugin marketplace add NodeOps-app/createos-claude-plugins2codex plugin add @createos/codex@createos
What the plugin adds
A skill. using-createos-sandbox triggers on sandbox-shaped requests — offloading a heavy build, running untrusted code, needing a disposable Linux box, setting up a multi-node cluster. It teaches the underlying CLI verbs directly: creating and removing sandboxes, running commands, moving files, opening tunnels, and managing networks and disks.
A session hook. At session start the plugin resolves the cos driver, checks it is usable, and puts its path into context along with guidance on which verb to reach for. If the driver is missing it says so rather than letting the agent improvise with raw CLI primitives and quietly lose auto-destroy and egress restriction.
The cos driver. The same execution engine the Claude Code plugin uses. It wraps the CLI with the things that are tedious to get right by hand: staging a directory, restricting egress, surviving a dropped connection on a long build, and destroying the box afterwards.
Bash1cos offload . "npm ci && npm test" # one-shot: stage, run, pull, destroy2cos up && cos run "cargo build" # reusable box, state persists3cos pause # park it at zero compute cost4cos down # destroy it
cos auth reports which authentication method is in effect.
Choosing a verb
Use cos offload when the work has a finish line — a build, a test run, a one-off script. The box exists for that command and is destroyed when it ends.
Use cos up and cos run when the session spans many commands and state needs to survive between them. That box persists until cos down destroys it or cos pause parks it.
Egress
Egress is unrestricted by default. Restrict it with a preset, and add individual hosts on top:
Bash1cos offload -p npm -e internal.example.com . "npm ci && npm test"
Presets cover python-uv, rust-cargo, npm, and github.
IP and CIDR rules apply immediately; domain rules take about 30 seconds. A domain allowlist is a strong control for HTTPS and a weak one for cleartext HTTP — when the point is to stop exfiltration, write IP or CIDR rules.
Limits
- Bandwidth — 5 GiB of outbound traffic per box by default, extendable.
- Clusters — up to 8 boxes.
- Environment variables — declared at box creation; 64 entries, 4 KiB per value, 64 KiB total.
- File transfer — 500 MiB per file.
- Templates — single-stage Dockerfiles only, no
COPYorADD, 64 KiB of source, 2 concurrent builds per account. - Concurrency — your account caps how many boxes run at once and how many you can create per day.
CreateOS Sandbox is in alpha and carries no SLA.
See also
- Claude Code — the same driver, with slash commands over it
- CLI reference — every command in full
- Concepts — sandboxes, networks, ingress, snapshots