Give Codex long-term memory that survives context resets, session restarts, and fresh conversations. Codex remembers what you’re working on, your preferences, and the decisions you’ve made — across every project. Lifecycle hooks capture each session to Honcho and inject the relevant context back at session start, so you never have to repeat yourself.
Your key lives in ~/.honcho/config.json — the single config file every Honcho integration reads. codex-honcho takes the key straight from there.
Already have your key in ~/.honcho/config.json? If another Honcho integration already wrote it there, there’s nothing to do — skip to Step 3 and install picks it up automatically.
First time? Create it with the Honcho CLI:
honcho init # prompts for your key, writes ~/.honcho/config.json # no CLI yet? uv tool install honcho-cli && honcho init
install copies your resolved key into ~/.codex/config.toml so the Honcho MCP server authenticates with no environment variable to set. If you ever rotate your key, re-run codex-honcho install to refresh it.
Restart Codex (or start a new session) to load the hooks and the [features].hooks flag. On your next session start you’ll see Honcho memory load into context.
The bundled honcho-memory skill already nudges Codex to recall and save actively. To reinforce it, add a short directive to your global Codex instructions (~/.codex/AGENTS.md):
# Honcho MemoryYou have persistent memory via Honcho. Context about me is loaded at the startof every session — trust it and act on it; don't ask me what you already know.Use the Honcho MCP tools (`search`, `chat`) to recall more mid-task, and`create_conclusions` to save new preferences, decisions, and patterns as you learn them.
Persistent Memory — Codex remembers your preferences, projects, and context across sessions
Survives Context Resets — Memory persists through /clear, compaction, and restarts
Active Recall — Codex can search your history and query what Honcho knows about you mid-task, not just at startup
Git Awareness — Optionally scope memory per branch, so feature work keeps its own context
Flexible Sessions — Map memory per directory, per git branch, or per chat instance
Local-First Capture — Conversations are queued to disk instantly and uploaded in the background — capture never blocks your turn or hits the network mid-conversation
Cross-Tool Context — Shares ~/.honcho/config.json with other Honcho integrations (Claude Code, Cursor, …), so context can follow you between tools
All settings live in ~/.honcho/config.json (shared with other Honcho integrations). Codex-specific settings go under hosts.codex, falling back to the root fields. The hooks only ever read this file; install is the only writer.
{ "apiKey": "hch-…", "peerName": "alice", // your identity (default: $USER) "hosts": { "codex": { "workspace": "codex", // Honcho workspace for Codex memory "sessionStrategy": "per-directory", "injectPerPrompt": false, // re-inject context every turn (off by default) "saveMessages": true // false = read memory but never write } }}
Because ~/.honcho/config.json is shared across Honcho hosts, teammates can collaborate by pointing at the same workspace while keeping their own identities. Each person uses their own peerName, so their contributions are attributed to distinct peers even when they work in the same repo.Alice (~/.honcho/config.json):
Both Alice and Bob write to the team-acme workspace. Working in the same repo, they share a session (named by directory, e.g. my-app) but appear in it as separate peers — so Honcho’s dialectic reasoning can draw on context from both.
No memory loading / MCP not registered. Confirm your key is in ~/.honcho/config.json (codex-honcho status shows honcho config: found). If it’s missing, run honcho init (or add { "apiKey": "hch-…" } to the file yourself), then re-run codex-honcho install — without a key, install registers the hooks and skill but skips the MCP server.Hooks aren’t firing. Restart Codex after installing so it loads hooks.json and the [features].hooks flag. Check codex-honcho status for installed components and pending queue depth.Memory not persisting. Make sure saveMessages isn’t set to false under hosts.codex.
git clone https://github.com/plastic-labs/codex-honchocd codex-honcho./install.sh # bun install + bun run bin/codex-honcho.ts install
The clone path runs the TypeScript source directly and so requires bun; it wires the hooks to bun run <this dir>/bin/codex-honcho.ts, so keep the clone in place. The npm install instead stages the bundled dist/codex-honcho.mjs to ~/.codex/honcho/ and wires hooks to node — node-only, and stable across npm update, npx cache eviction, or removing the package.