Open Source -- MIT Licensed

Give your AI agent the ability to make phone calls

Open-source outbound call-control runtime. The browser-use for phones.

$ pip install call-use
main.py
from call_use import CallAgent

outcome = await CallAgent(
    phone="+18001234567",
    instructions="Cancel my subscription"
).call()

print(outcome.disposition)  # "completed"

Everything you need for AI phone calls

A complete runtime for outbound call control -- from simple calls to complex multi-step workflows.

3 Lines of Code

Make a phone call with just 3 lines of Python. No boilerplate, no complex setup.

IVR Navigation

Navigate phone menus, press DTMF buttons, and handle hold music automatically.

Human Takeover

Pause the agent, join the call yourself, then hand control back when ready.

Approval Flow

Agent asks for permission before taking sensitive actions. You stay in control.

Works Everywhere

Python SDK, CLI, MCP Server, REST API -- pick the interface that fits your stack.

Open Source

MIT licensed, fully self-hostable, no vendor lock-in. Own your infrastructure.

Four interfaces, one runtime

Use call-use however it fits your workflow. Every interface shares the same powerful engine.

agent.py
from call_use import CallAgent

async def cancel_subscription():
    agent = CallAgent(
        phone="+18001234567",
        instructions="Cancel my subscription",
        on_event=lambda e: print(e)
    )
    outcome = await agent.call()
    print(outcome.transcript)
    print(outcome.disposition)  # "completed"

Works with your stack

Integrates with any AI framework or agent runtime through four flexible interfaces.

C

Claude Code

via MCP Server

L

LangChain

via Python SDK

O

OpenAI Agents SDK

via Python SDK

C

CrewAI

via Python SDK

A

Any Bash Agent

via CLI

A

Any HTTP Client

via REST API

How it works

A two-process architecture that keeps your agent code separate from the real-time voice pipeline.

Your Code

SDK / CLI / MCP / REST

LiveKit Cloud

Real-time voice

Twilio SIP

Phone connectivity

PSTN

Phone network

Two-process model

The call-use worker runs alongside LiveKit, handling real-time voice interaction, IVR navigation, and DTMF tones. Your application code connects through any of the four interfaces and receives structured events and outcomes.

Why call-use

Stop rebuilding phone infrastructure. Get to production in minutes, not months.

call-use Build from scratch Pine AI
Make a phone call 3 lines months sign up + $$$
IVR navigation built-in weeks built-in
Human takeover built-in weeks --
Approval flow built-in weeks --
Open source Yes -- --
Self-hostable Yes -- --
Multiple interfaces 4 DIY 1

Get started in 4 steps

From zero to your first AI phone call in under 5 minutes.

01 Install call-use
$ pip install call-use
02 Configure credentials
# .env
LIVEKIT_URL=wss://your-project.livekit.cloud
LIVEKIT_API_KEY=your_api_key
LIVEKIT_API_SECRET=your_api_secret
TWILIO_ACCOUNT_SID=your_sid
TWILIO_AUTH_TOKEN=your_token
03 Start the worker
$ call-use worker start
04 Make a call
from call_use import CallAgent

outcome = await CallAgent(
    phone="+18001234567",
    instructions="Cancel my subscription"
).call()