kelam

Voice AI agents
from the terminal

Kelam is a CLI for building voice AI agents that make and answer real phone calls — describe an agent in a few files, push it, and call a number. Or talk in the browser, no number needed.

$ curl -fsSL https://kelam.sh | sh
Installs the kelam command via uv / pipx / pip. Prefer to read first? view install.sh.

What it does

A small, scriptable surface over a real voice pipeline (Deepgram → Claude → ElevenLabs over Twilio).

📞 Phone calls

Outbound and inbound over a real number, with live transcript and recording.

🌐 Browser calls

Talk to an agent over WebRTC with no phone number at all.

💬 Texting

Send SMS/MMS from the agent's number; threads are stored and replyable.

🧩 Agents as files

agent.yaml + scenarios + tools, pushed git-style — every push is a new version.

📊 Call data

kelam export / stats give transcripts plus derived metrics, ready to chart.

⚡ One client

Thin CLI — no heavy deps. Talks to your Kelam server over HTTP.

The CLI

After installing, point it at your server and go.

# point the CLI at your Kelam server
export KELAM_API_URL=https://your-kelam-host
export KELAM_PASSWORD=…        # only if the server uses shared-password auth

kelam create  my-bot              # scaffold an agent (+ provision a number)
kelam deploy  my-bot              # assemble + cache the runtime, ready for calls
kelam call    my-bot +12065550123  # place a real outbound call
kelam web     my-bot              # …or talk in the browser, no phone number
kelam export  --since 7d          # call logs + derived metrics (jsonl/json/csv)
kelam createCreate an agent and pull it into a local folder (provisions a number unless --no-number).
kelam push / deployPush a new version, then assemble + cache the runtime.
kelam callPlace an outbound call; -p seeds per-call instructions, --wait streams the transcript live.
kelam webOpen a browser test page and talk over WebRTC — no phone number.
kelam text / textsSend SMS/MMS from the agent's number; list message threads.
kelam calls / transcriptList recent calls; fetch one call's status + transcript + recording.
kelam export / statsExport call logs with metrics; aggregate counts, durations, turns.

Use it in Claude Code

The NousData marketplace ships a kelam plugin — Claude installs and drives the CLI for you.

/plugin marketplace add samsadsam/nousdata
/plugin install kelam@nousdata

Then just tell Claude:

please setup kelam.sh for me

The plugin bundles two skills:

kelam-setup

Installs and configures the CLI end-to-end (also /kelam:setup). view SKILL.md →

kelam-viz

Turns kelam export / stats output into self-contained HTML dashboards. view SKILL.md →

One thing to know

The CLI is a thin client — it talks to a Kelam server (the control plane + voice worker) that you run. Bring your own deployment, or ask the maintainers for access. Set KELAM_API_URL (and KELAM_PASSWORD if it uses shared-password auth) and you're connected.