Kits¶
Each kit is copied into your project and owned by you. Install with copit, server and UI halves in one command.
By feature¶
| Feature | Install |
|---|---|
| Notifications Push to a user's open tabs from a signal, a worker or another service |
copit add @chanx-kit/notification @chanx-kit-ui/notification |
| Chat room History replayed on join, a composer and who is here |
copit add @chanx-kit/room-chat @chanx-kit-ui/chat |
| Presence Who is in a room, document or tenant |
copit add @chanx-kit/presence @chanx-kit-ui/presence |
| AI agent A Pydantic AI agent streaming over AG-UI, approvals included |
copit add @chanx-kit/pydantic-ai-ag-ui @chanx-kit-ui/ag-ui |
| Live captions Microphone to text while you speak |
copit add @chanx-kit/deepgram @chanx-kit-ui/transcriber --only sttOther providers: elevenlabs, openai, fake-voice |
| Text to speech Text spoken to every listener |
copit add @chanx-kit/elevenlabs @chanx-kit-ui/player --only ttsOther providers: deepgram, openai, fake-voice |
| Voice agent Talk to an AG-UI agent, hear it answer, interrupt it by speaking |
copit add @chanx-kit/voice-agent @chanx-kit/deepgram @chanx-kit-ui/voice-agentOther providers: elevenlabs, openai, fake-voice |
Catalog¶
Every server and UI kit. Foundations are installed for you by the kits that need them; providers plug a vendor into a contract.
| Kit | Side | Area | Role | Description |
|---|---|---|---|---|
ag-ui |
Server | Agents | Feature | Serve the AG-UI agent-user interaction protocol over a websocket, so any AG-UI frontend works unchanged. Provider-agnostic: yield events from any agent. Optionally broadcasts a run to every connection on its thread, replaying it to one that joins part-way through. |
audio-stream-in |
Server | Voice | Foundation | Stream microphone audio in over the socket and get transcripts back, from any speech-to-text provider. Defines the transcriber contract; provider kits plug in a stream. Bounded streams, per-user limits, gap detection and watcher fan-out. |
audio-stream-out |
Server | Voice | Foundation | Speak text to a session's listeners from any text-to-speech provider. Defines the synthesizer contract; provider kits plug in audio. Utterances queue in order, an interruption clears them, late joiners are replayed, and playback marks record what was actually heard. |
chanx-testing |
Server | Tooling | Tooling | Backend-agnostic test harness for kit components: one suite runs against both Django Channels and FastAPI / fast-channels. Installed automatically by kits whose copied tests use it. |
conversation-store |
Server | Agents | Foundation | Persistence for an agent conversation, held as an opaque blob per thread so one backend serves every agent framework. Ships an in-memory default for demos and tests. |
deepgram |
Server | Voice | Provider | Deepgram behind the voice contracts: live speech-to-text (Nova) and streaming text-to-speech (Aura). Install both, or one part with --only stt or --only tts. The API key stays on the server. |
django-message-store |
Server | Messaging | Store | Durable chat history in your Django database, with an admin and a read-only REST endpoint. Drop-in replacement for the room-chat kit's in-memory default. |
elevenlabs |
Server | Voice | Provider | ElevenLabs behind the voice contracts: realtime speech-to-text (Scribe) and streaming text-to-speech. Install both, or one part with --only stt or --only tts. The API key stays on the server. |
fake-voice |
Server | Voice | Provider | A transcriber and a synthesizer that need no provider and no key: speech is transcribed as a scripted sentence, text is spoken as a tone per word. For demos, UI work and CI. Install both, or one part with --only stt or --only tts. |
media-stream-in |
Server | Voice | Foundation | The plumbing for media a client streams in: bytes that travel as base64, chunks put back in order with gaps reported, and a bounded real-time intake with keepalive and idle handling. The base the audio kits build on. |
media-stream-out |
Server | Voice | Foundation | The plumbing for media the server streams out: producers run one at a time per session and can be cut off as a whole, and what was sent is kept so a connection joining part-way is replayed. The base the speech output kits build on. |
notification |
Server | Messaging | Feature | Fan out notifications to a user's live connections from anywhere in your app: a signal, a background worker, or another service. |
openai |
Server | Voice | Provider | OpenAI behind the voice contracts: realtime transcription and text-to-speech. Install both, or one part with --only stt or --only tts. The API key stays on the server. |
pipecat-bridge |
Server | Voice | Provider | Run a Pipecat pipeline behind a chanx transcriber topic, so any of Pipecat's speech-to-text services speaks the transcriber contract. chanx keeps the socket; Pipecat never sees a transport. |
presence |
Server | Presence | Feature | Track who is present in a room, document or tenant, and tell everyone when that changes. Pluggable store; ships with an in-process default. |
pydantic-ai-ag-ui |
Server | Agents | Provider | Run a Pydantic AI agent over the AG-UI protocol on a chanx websocket: streamed text, tool calls and human-in-the-loop approvals, with the conversation kept server-side and replayed to a reconnecting client as MESSAGES_SNAPSHOT. |
redis-presence-store |
Server | Presence | Store | Shared presence roster backed by Redis, so presence stays correct across multiple workers. Drop-in replacement for the presence kit's in-memory default. |
room-chat |
Server | Messaging | Feature | A chat room: history replayed on connect, plus a live roster from the presence kit. Pluggable store, with an in-process default for demos and tests. |
voice-agent |
Server | Voice | Feature | Talk to any AG-UI agent: speech is transcribed, each utterance starts a run, the reply is spoken sentence by sentence as it streams, and speaking over it interrupts, keeping only what was heard. Provider-agnostic on all three sides. |
ag-ui |
UI | Agents | Feature | Headless state for one AG-UI conversation: messages folded from streamed events, the run in flight, run and cancel. Replay-safe when several tabs share a thread. |
audio |
UI | Voice | Foundation | The pure audio helpers the voice UI kits share: resampling, PCM16 conversion, fixed-duration chunking, levels and base64. No browser APIs, so they run and test anywhere. |
chat |
UI | Messaging | Feature | A chat log with history on join and a composer, for any server speaking the chat contract. Shows the room's roster through the presence UI kit. |
notification |
UI | Messaging | Feature | A live notification feed with per-topic acknowledgement, for any server speaking the notification contract. |
player |
UI | Voice | Feature | Play what a server speaks, for any server speaking the synthesizer contract. Headless playback with a jitter buffer, instant interruption and playback marks back to the server, plus a React player. |
presence |
UI | Presence | Feature | Who is here, kept current from joins and leaves, for any server speaking the presence contract. |
transcriber |
UI | Voice | Feature | Record from the microphone and show live captions, for any server speaking the transcriber contract. Headless capture (resampled PCM16 in numbered chunks), a transcript store, and React recorder and caption components. |
voice-agent |
UI | Voice | Feature | Talk to an agent: an open microphone, live captions, the reply spoken as it streams, and interrupting by speaking. Composes the transcriber, player and ag-ui UI kits over one session. |