One npm install. One umbrella command. Both MCPs (voice + coder) land in every supported AI host on your machine. Set your Twilio creds. Done. Your AI agent gets a phone line and a memory before your coffee's cold.
One global package. Includes the CLI, both MCP servers (crixin-voice + crixin-coder), all the Wrapped + Archetype engines, and a local SQLite at ~/.crixin/crixin.db.
npm i -g crixin
crixin --version # 0.5.0
crixin install writes BOTH MCP entries (crixin-voice and crixin-coder) into every supported host config: Claude Desktop, Claude Code, Cursor, Codex CLI. Idempotent. Atomic writes — never corrupts existing config.
crixin install
# ✓ claude code ~/.claude/settings.json (+ crixin-voice + crixin-coder)
# ✓ cursor ~/.cursor/mcp.json (+ crixin-voice + crixin-coder)
# ✓ codex cli ~/.codex/config.toml (+ crixin-voice + crixin-coder)
# ✓ claude desktop ~/Library/.../claude_desktop_config.json
Or do it manually per-host:
claude mcp add crixin-voice -- \ npx -y crixin voice mcp claude mcp add crixin-coder -- \ npx -y crixin coder mcp
// ~/.cursor/mcp.json
{
"mcpServers": {
"crixin-voice": {
"command": "npx",
"args": ["-y","crixin","voice","mcp"]
},
"crixin-coder": {
"command": "npx",
"args": ["-y","crixin","coder","mcp"]
}
}
}
# ~/.codex/config.toml [mcp_servers.crixin-voice] command = "npx" args = ["-y","crixin","voice","mcp"] [mcp_servers.crixin-coder] command = "npx" args = ["-y","crixin","coder","mcp"]
// ~/Library/.../claude_desktop_config.json
{
"mcpServers": {
"crixin-voice": { "command": "npx",
"args": ["-y","crixin","voice","mcp"] },
"crixin-coder": { "command": "npx",
"args": ["-y","crixin","coder","mcp"] }
}
}
Restart your AI host once after install. The new tools show up in the Tools menu (Cursor / Claude Desktop) or as available MCPs (Claude Code / Codex).
Voice MCP reads creds from the env your AI host launches from. Use whatever secrets manager you like — Doppler, 1Password, Vault, or a plain .env. Coder MCP needs no env — it reads files your AI host already wrote to disk.
export TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export TWILIO_AUTH_TOKEN=your_auth_token
export TWILIO_PHONE_NUMBER=+15555550100
# Optional — needed for transcribe_call + Voice Wrapped + Caller Archetype
export DEEPGRAM_API_KEY=...
crixin voice doctor
Doctor probes the live Twilio API once (zero charges) and surfaces stale-token errors before you try to dial a customer. If your token was rotated and your secrets manager hasn't caught up, this catches it instantly.
Reads JSONLs your AI host already wrote to disk — ~/.claude/projects/, ~/.codex/sessions/, Cursor app data. Drops everything into local SQLite. Takes ~15 seconds even on heavy users.
crixin coder ingest
# scanning ~/.claude/projects/ (387 sessions)
# scanning ~/.codex/sessions/ ( 42 sessions)
# scanning ~/Library/.../cursor-state ( 18 sessions)
# ingested 447 sessions, 312,841 messages → ~/.crixin/crixin.db
The whole point. Open your AI host. Type one of these.
# Voice MCP — phone use crixin-voice to call +14155550142 and confirm tomorrow's order. # Coder MCP — memory use crixin-coder to find when we last discussed the auth refactor. # Both at once use crixin-coder to find what we agreed about Tony's Pizza last week, then use crixin-voice to call them and confirm.
No campaign UI, no agent roster, no dashboard. Two MCP tool surfaces, one chat window, one phone ringing.
crixin voice wrapped --year 2026 # heatmap, archetype, top destinations crixin coder wrapped --year 2026 # heatmap, archetype, top projects
Each writes a self-contained HTML file you can open, screenshot, or share. Generated locally. PII auto-stripped.