crixin
MCP server, CLI, and local analytics for AI-placed phone calls. Lets Claude Code, Cursor, Codex CLI, and Claude Desktop agents make real outbound calls and send real SMS through your own Twilio account. Then mirrors the call data locally and runs Voice Wrapped, Caller Archetype, and Ducked-phrase analysis on the transcripts. No SaaS in the middle.


One install. Your AI agent places real calls and sends real SMS through your Twilio. Every meeting booked, every order taken, every dollar in Twilio — analyzed on your laptop. Bring your own Twilio.
Install
npm i -g crixin
crixin voice install
Set Twilio creds in the env your AI host launches from:
export TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export TWILIO_AUTH_TOKEN=your_auth_token
export TWILIO_PHONE_NUMBER=+15555550100
export DEEPGRAM_API_KEY=...
Verify before you dial a customer:
crixin voice doctor
Three use cases (one engine)
- AI receptionist — inbound. Restaurants, clinics, salons, trades. 24/7 in 30+ languages including Egyptian Arabic.
- AI sales team — outbound. Sixteen agents (4 voices × 4 personas). TCPA windows + DNC enforced by default in the hosted tier.
- AI confirmation line — transactional. Appointment reminders, order confirmations, payment retries.
Everyday commands
crixin voice install
crixin voice doctor
crixin voice call <to> [prompt]
crixin voice sms <to> <body>
crixin voice ingest
crixin voice wrapped --year 2026
crixin voice archetype
crixin voice ducked
crixin voice mcp
MCP tools (for AI hosts)
make_call | Outbound voice call. to + prompt (assistant speaks it; recipient response recorded by default), or raw TwiML. |
get_call | Status / duration / price / timestamps for one Call SID. |
list_calls | Recent calls — filter by to / from / status / start_time_after. |
list_recordings | Recordings + auth-protected media URLs for a Call SID. |
transcribe_call | Run a recording through Deepgram. 30+ languages including Arabic. Requires DEEPGRAM_API_KEY. |
send_sms | SMS / MMS through Twilio. Messaging Service support. |
Per-host install (manual)
| Claude Code | claude mcp add crixin-voice -- npx -y crixin voice mcp |
| Cursor | Append to ~/.cursor/mcp.json: { "mcpServers": { "crixin-voice": { "command": "npx", "args": ["-y","crixin","voice","mcp"] } } } |
| Codex CLI | Append to ~/.codex/config.toml: [mcp_servers.crixin-voice]\ncommand = "npx"\nargs = ["-y","crixin","voice","mcp"] |
Or just run crixin voice install and let it wire all three for you.
Voice Wrapped (the annual moment)
crixin voice wrapped
Generates ./crixin-voice-wrapped-2026.html — twelve numbers about what your AI did this year. Total calls, minutes on the line, top destination countries, busiest hour, longest call, top campaign, Caller Archetype reveal, top language, transcribed count, duck rate. PII-stripped, shareable as a screenshot, no upload.
Stack
- STT: Deepgram Nova-2 (optional —
DEEPGRAM_API_KEY).
- TTS: Twilio Polly + Google neural voices, in-call via TwiML
<Say>. (Polly.Joanna-Neural for en-US, Polly.Hala-Neural for ar-EG, Polly.Zeina for MSA Arabic, Polly.Lucia-Neural for es-ES, etc.)
- LLM: none in the open-source call path — your AI host decides what to say. The hosted plans add GPT-4o for in-call dynamic responses.
- Storage: local SQLite at
~/.crixin/crixin.db. Tables: voice_calls, voice_recordings.
Pricing
| Open Source | Free forever | The MCP server + CLI + Voice Wrapped + Caller Archetype + Ducked. MIT-licensed. You pay Twilio directly (~$0.014/min US, ~$0.135/min Egypt mobile). |
| Pro (hosted, waitlist) | $99/mo | 1,000 minutes · 3 numbers · AI Receptionist · GPT-4o + HD voice · advanced analytics |
| Business (hosted, waitlist) | $199/mo | 2,500 minutes · 5 numbers · cost optimizer · priority support |
See full pricing.
Privacy posture
- Zero servers between you and Twilio. Calls hit
api.twilio.com directly with your auth header.
- Transcripts and call recordings stay in your Twilio account and your local SQLite.
- No telemetry. No upload. No analytics pixels. The Voice Wrapped HTML is rendered entirely client-side.
Migrating from v0.0.x (session-analyzer)
v0.1.0 retired the AI-coding-session analyzer that earlier versions shipped. If you depend on the old crixin ingest reading ~/.claude/projects/ JSONLs and producing a coding-session Wrapped, pin to crixin@0.0.9. v0.1.0 has no path back to JSONL ingestion — same engines now read call data instead.
Docs
Install · Voice Wrapped · Caller Archetype · Voice product · Pricing · FAQ
License
MIT. Built by @Mrdopplereffekt.