Installs the OpenAI Codex CLI from the official packaged GitHub release assets and persists ~/.codex in shared state across devcontainers.
The feature installs:
codex- a bundled
rgbinary that matches the upstream Codex package layout
"features": {
"ghcr.io/sliekens/devcontainer-features/codex:1": {}
}Pin a specific Codex version when you need deterministic builds:
"features": {
"ghcr.io/sliekens/devcontainer-features/codex:1": {
"version": "0.114.0"
}
}Copy the block below into a chat with your coding agent:
Add
ghcr.io/sliekens/devcontainer-features/codex:1to this project's Dev Container. Follow https://github.com/sliekens/devcontainer-features/blob/main/src/codex/README.md. Use the collection's sharedinitializeCommandpipeline (devcontainer + jq + xargs overcustomizations.sliekens[].initializeCommand) for host bind pre-create; Unix/WSL2 only. Prefer that over hand-writtenmkdirunless asked.
| Option | Type | Default | Description |
|---|---|---|---|
version |
string | latest |
Version to install. Accepts latest, 0.114.0, v0.114.0, or rust-v0.114.0. |
| Host path | Container path | Purpose |
|---|---|---|
~/.codex |
/var/lib/codex |
Auth and configuration |
This directory is bind-mounted from the host so that auth and configuration are preserved across container rebuilds.
Docker cannot bind-mount host paths that do not yet exist. Each feature in this collection that needs host paths declares a host init command under customizations.sliekens.initializeCommand. Wire a single initializeCommand in your devcontainer.json to run all of them (works for any number of features):
"initializeCommand": "devcontainer read-configuration --workspace-folder . --include-merged-configuration | jq -r '(.mergedConfiguration.customizations.sliekens // []) | .[] | .initializeCommand' | xargs -I{} bash -c {}"Requires devcontainer and jq on the host PATH.
Note: This host init pipeline runs only on Unix-like systems (Linux, macOS, and source code inside WSL2 on Windows). Native Windows (
cmd.exe) is not supported — the Dev Containers CLI runsinitializeCommandvia/bin/sh -con Unix andcmd.exe /con native Windows.
If you prefer not to automate with the Dev Containers CLI, jq, and xargs, pre-create the host paths yourself in initializeCommand:
"initializeCommand": "mkdir -p \"$HOME/.codex\""This feature is released under the MIT License.
The installed tool is subject to its own license: Codex CLI license.
- Declare
customizations.sliekens.initializeCommandfor composable host path pre-create; document automated and manualinitializeCommandwiring.
- Fix compatibility with new tarball layout
- Add trailing slash to bind mount source path to mark it explicitly as a directory.
- Use bind mount from host
~/.codexinstead of a Docker volume for persistent state.
- Initial release.