Stop copy-pasting CLAUDE.md and .cursorrules into every repo. Author your stack, taste, and rules once — Ctrl serves them to Cursor, Claude Code, and any MCP client: the files they already read, or live over an API key. Scoped per tool, revocable, yours.
npx @ctrlai/cli seed .one source → CLAUDE.md · .cursorrules · MCP · API, in syncSeed your context from a repo, get a key, use it anywhere. No blank page — Ctrl proposes from what you’ve already written; nothing becomes yours until you ratify it.
# 1 · seed your context from a repo — it proposes, you ratify
npx @ctrlai/cli seed .
# 2 · get a key for a face, then fetch your context anywhere
curl https://api.ctrlai.com/v1/context \
-H "Authorization: Bearer ck_live_…"
# …or one line inside your own agent
const ctx = await ctrl.context({ key: process.env.CTRL_KEY, task })
messages.unshift({ role: "system", content: ctx.systemBlock })
# …or emit the files your tools already read
npx @ctrlai/cli emit # → CLAUDE.md · .cursorrules · AGENTS.mdThe Context Key is the door. Behind it is the whole of Ctrl AI — one owned self, many faces, every agent — for you, your team, your company.
The whole of you — your stack, taste, constraints — authored, never scraped. Held in one place, mostly dark.
Masks of the self. Each face releases only the slice a context deserves — pseudonymous by default, under a ceiling.
Every tool you delegate to gets only what its task needs — and you get a receipt for exactly what crossed.