Open-source conversational AI, in Python and Rust

Build agents for
real conversations.

Voice, messaging and AI agents, in one framework.
Keep the conversation together as people and channels change.

Python 3.12+ Rust (early) MIT licensed Runs in your infrastructure

One room. People, agents and channels.Illustrative flow
SMS

“Can we talk about my order?”

A conversation begins.

One room Shared context
Voice

Same person. Same conversation.

AI, in the loop
Make the connection.
  • Voice
  • SMS
  • WhatsApp
  • Email
  • WebSocket
  • AI agents

A little code. A first conversation.

Your first room.
Starts here.

Run a complete Python example. No API key required.

01 Install RoomKit

pip install roomkit

02 Download the example

Save it in your working folder, then run:

python first_conversation.py
first_conversation.pyExcerpt
async with RoomKit() as kit:
    ai = AIChannel(
        "assistant",
        provider=MockAIProvider(
            responses=["Hello from your first room."]
        ),
    )
    kit.register_channel(WebSocketChannel("chat"))
    kit.register_channel(ai)
    room = await kit.create_room()
    await kit.attach_channel(room.id, "chat")
    await kit.attach_channel(room.id, "assistant")

Scripted reply · output from the full example

chat: Hello, RoomKit!
assistant: Hello from your first room.

From idea to something you can run

What will you
build first?

The room keeps it together

One conversation.
Your moving parts.

01 / Agents

Specialists.
One team.

Route work, hand off context and bring a human into the loop.

Explore orchestration

02 / Channels

Your channels.
One room.

Connect voice, messaging and AI agents around a shared room.

Explore the channels

03 / Models & tools

Your models.
Your tools.

Choose cloud or local providers. Give your agents the tools to act.

Find your setup

04 / Control

Your app.
Your rules.

Set routing and guardrails. Keep the event history and deployment in your hands.

Explore the architecture

Built with RoomKit. Open for you.

See where it can go.

All projects

Applications

Building blocks

Before you start

Questions we
get asked.

What does RoomKit do?

It gives your application one abstraction, the room, that connects people, AI agents and channels such as SMS, WhatsApp, email, Teams, Telegram, voice and WebSocket. A message from one channel passes through your hooks, is stored, then reaches the other channels in the room, converted to what each one can show.

How is it different from Pipecat or LiveKit Agents?

Those frameworks start from the voice call: Pipecat as a pipeline of frames, LiveKit Agents as a participant in a WebRTC room. RoomKit starts from the conversation, and voice is one channel in the room, so the same conversation can continue over SMS, email or WhatsApp. For a voice-only agent, either of them may suit you better. Read the full comparison.

Which models and providers can I use?

In the cloud: Anthropic, OpenAI, Gemini, Mistral and others. Locally: Ollama, llama.cpp and vLLM. For voice, speech providers such as Deepgram and ElevenLabs, or speech-to-speech with OpenAI Realtime and Gemini Live. Changing provider leaves the rest of your application as it is. The RoomKit model catalogue compares models by capability, context and list price.

Where does it run?

In your own application, on your own infrastructure: RoomKit is a library, not a hosted service. Conversations stay in the store you choose, such as SQLite or PostgreSQL. The models and messaging providers you connect bill you directly and receive what you send them.

Is it ready for production?

It is in beta, at version 0.x, so pin the version you deploy. It includes retries, circuit breakers, rate limiting and a PostgreSQL store.

Does it work in Python and Rust?

Python is the reference implementation, with voice, messaging and orchestration. roomkit-rs is an early Rust implementation written from the same RFC: rooms, hooks, permissions, an AI agent with tools, skills and MCP, and a SQLite store that shares the Python schema. Voice comes later on its roadmap, and its API will change before 1.0.

Open source grows through use

Build something.
Build with us.

Try an example. Tell us what broke. Contribute a provider, a test or a guide someone else can use.