Docs
What it is
The idea behind uac — one shared context layer for Claude Code and Codex.
uac (Unified Agent Context) is a small local service that gives your coding
agents one shared memory and skills layer. Today it connects
Claude Code and Codex; it’s built to connect more.
The situation
You use more than one coding agent on the same projects. Out of the box, they share nothing:
- Each has its own instructions file (
CLAUDE.mdvsAGENTS.md). - Each has its own memory — nothing one learns is visible to another. Both Claude and Codex ship native per-tool memory now; neither reads the other’s.
- Skills don’t transfer — Codex has no Skills concept at all.
So every time you switch agents, you re-explain the project.
Why it can add more agents
uac doesn’t reach into any agent’s internals. It connects through surfaces the
agents already expose — the MCP protocol for tools, the AGENTS.md
convention for instructions, and session hooks for context injection. An
agent that speaks those can plug into the same shared store. Claude Code and
Codex are the two wired up today; each is a small adapter, not a fork.
What uac does
One store, both agents. When an agent learns something durable and non-obvious, it writes it to a shared SQLite file. Either agent can read it back in a later session — including the other one.
Claude Code ─┐ ┌─ .agents/memory.db this project
├─ MCP (stdio) ─ uac ────┼─ ~/.agents/global.db everywhere
Codex ───────┘ └─ .agents/skills/*.md
The rules it holds to
- No API keys. Every model call happens inside the official CLI under your
own subscription login.
uacnever calls a model API. - Never touches CLI credentials. It does not read, proxy, or forward either CLI’s auth tokens.
- Local-first. Everything stays on your machine — one SQLite file, some markdown. No cloud, no telemetry.
- Integrates only through documented surfaces: MCP, instructions files, hooks, CLI flags. It never patches the agents.
How the pieces fit
The core (uac) is the shared brain: an MCP server plus the memory and
skills store. Two independent front ends sit on top — a VS Code extension
and a terminal app (uac-chat) — and you pick whichever you like. They share
the core and nothing else.