Fable usage adds up very quickly: I usually hit the weekly limit about halfway through the week, and continuing with usage credits costs about A$500 a day, so running OpenCairn through Codex on a ChatGPT subscription is much cheaper.
OpenCairn was designed to be portable: the vault is Markdown, the scripts are Bash, and the skills are prose instructions. The Codex rendering uses the same canonical vault as Claude Code. I spent half a day porting it to Codex and adding it to the OpenCairn repo; the setup below uses that finished port and should take a few minutes.
What carries across
Claude Code and Codex keep separate chat histories, while durable state stays in the vault.
| Concern | Claude Code | Codex |
|---|---|---|
| Vault | The OpenCairn vault | The same vault |
| Global instructions | CLAUDE.md | ~/.codex/AGENTS.md |
| Skills | /pickup, /park | $pickup, $park |
| Vault writes | locked-edit.sh | locked-edit.sh |
| Session ID | CLAUDE_CODE_SESSION_ID | CODEX_THREAD_ID |
| Transcript export | Claude session store | Claude and Codex session stores |
The Codex skills live under codex/skills/ in the OpenCairn repo. OpenCairn maps CODEX_THREAD_ID to its session records, passes OPENCAIRN_SESSION_ID to writing sub-agents, and exports transcripts from both harnesses.
Install Codex
Install the CLI and sign in:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
codex login
codex login status
Set up OpenCairn through the main setup guide and export VAULT_PATH in your shell profile:
export VAULT_PATH="$HOME/Files"
"$VAULT_PATH/.claude/scripts/resolve-vault.sh"
The resolver must print the vault path before you continue.
Install OpenCairn for Codex
From the OpenCairn vault root:
cd "$VAULT_PATH"
mkdir -p "$HOME/.codex/skills"
cp -R codex/skills/. "$HOME/.codex/skills/"
If you do not have global Codex instructions yet:
mkdir -p "$HOME/.codex"
cp codex/AGENTS.md "$HOME/.codex/AGENTS.md"
If ~/.codex/AGENTS.md already exists, compare the files and merge the OpenCairn block once:
diff -u "$HOME/.codex/AGENTS.md" codex/AGENTS.md
Keep any personal instructions already in the live file. Restart Codex after editing it. If the OpenCairn rules do not load, check for ~/.codex/AGENTS.override.md, which replaces the ordinary global file when it is non-empty.
Add the codexyolo launcher
I use ~/.local/bin/codexyolo to run Codex without approval prompts or sandboxing, which gives it unrestricted access to the machine. Create ~/.local/bin if needed, then save this script as ~/.local/bin/codexyolo:
mkdir -p "$HOME/.local/bin"
#!/usr/bin/env bash
set -euo pipefail
if [[ "${1:-}" == "exec" || "${1:-}" == "e" ]]; then
sub="$1"
shift
exec codex "$sub" --skip-git-repo-check --dangerously-bypass-approvals-and-sandbox "$@"
fi
exec codex --dangerously-bypass-approvals-and-sandbox "$@"
Make it executable:
chmod +x "$HOME/.local/bin/codexyolo"
codexyolo starts the interactive TUI. codexyolo exec and codexyolo e run non-interactively and add --skip-git-repo-check, which allows codex exec to run outside a Git repository. The wrapper inherits the model and reasoning effort from ~/.codex/config.toml.
Check the install
Start Codex from the vault root:
cd "$VAULT_PATH"
codex
Give it a disposable write without naming the locking script:
Create a disposable note at
00 Inbox/Codex lock smoke test.mdcontaining the wordpass. Follow the loaded vault-write rules.
A correct run resolves the vault and invokes locked-edit.sh; a direct apply_patch, shell redirection, or editor write inside the vault means the global instructions did not load.
Then run:
$pickup
$park
$pickup should read the current project state, while $park should update the relevant vault records and export the transcript.
Keep it updated
Run /update in Claude Code. It includes the repository’s codex/ tree and can copy accepted skill changes into ~/.codex/skills/. Changes to codex/AGENTS.md remain a manual merge because the live file may contain personal instructions.
From Codex, compare the repository and live skill trees before copying changed files:
diff -qr -x .system -x '.*.lock' codex/skills "$HOME/.codex/skills"
Current gaps
- The shared transcript exporter supports both harnesses. Other Claude-specific session-forensics skills have not been ported.
- Hooks such as spelling normalisation and the file-size guard are beta.