Two coding-CLI templates mirroring claude's shape: a box.env + verbatim cloud-init, inheriting the box-net placement contract structurally, no new design. - codex: OpenAI Codex CLI via 'npm i -g @openai/codex' (the SCOPED package; needs Node 22), symlinked onto the non-interactive exec PATH via 'npm prefix -g' — the same PATH fix the claude template needed. - grok: xAI Grok Build via the official 'curl x.ai/cli/install.sh', run AS the grok user (the installer drops into $HOME); the binary is found and symlinked to /usr/local/bin. Install commands verified upstream at implementation time, per the issue's rule (npmjs.com/package/@openai/codex, x.ai/cli). Each gets an AGENTS.md-style context file telling the agent it lives in a disposable, isolated, creds-free box. Drill: templates listing now expects four; a compact per-template smoke (mint, '<cli> --version' via box exec, remove) validates each payload installs and lands on the exec PATH — the generic mechanic is already proven by blank+claude and not repeated. Closes #54
11 lines
498 B
Bash
11 lines
498 B
Bash
# The codex template — Debian 13 + OpenAI Codex CLI, creds-free.
|
|
# KEY="value" only. Parsed against an allowlist, never sourced; there is no
|
|
# key for a network or a security flag, on purpose — the shared box-net
|
|
# profile is the placement contract and no template can weaken it.
|
|
# BOX_USER must match the user user-data.yaml creates.
|
|
BOX_DESCRIPTION="OpenAI Codex CLI on Debian 13, creds-free"
|
|
BOX_IMAGE="images:debian/13/cloud"
|
|
BOX_USER="codex"
|
|
BOX_CPU="4"
|
|
BOX_MEMORY="8GiB"
|
|
BOX_DISK="60GiB"
|