ByteBulletin

[launches] · · 2 min read

Caspian 1.0: One SDK to Put Your Agent on Every Channel

The open-source SDK rewrites agent-to-human communication with a single handler, declarative rules, and offline fakes for Slack, Discord, Telegram, and more.

By ByteBulletin Editors · Editorial Team


Every agent team eventually hits the same wall: your agent's reasoning is brilliant, but getting it to talk to humans on Slack, Discord, Telegram, or email means writing and maintaining a separate bot for each channel. The largest open-source agent frameworks each ship 25+ channel adapters and still spend 8–15% of their issue trackers on channel plumbing. Caspian, a new open-source SDK, aims to make that a solved problem with a single channels.add() call per platform.

Caspian 1.0 is a full rewrite of the project (formerly known as the CommClient SDK). The core idea is that communication should be a capability your agent can reason about, not hardcoded infrastructure. Instead of per-channel bots with separate identities, your agent is one program with a unified Thread/Message model. Messages arrive as kernel events regardless of transport, and declarative rules like @cx.on_message({"channel": "telegram", "command": "help"}) filter for channel, chat kind, command, and overlap policy. This means your agent can decide, "this deserves a quick Telegram ping now, and an email summary afterwards" — without you rebuilding the plumbing for each channel.

One of the standout features is the offline fakes for every channel. The SDK consumes each platform's real payload shapes, and with 650+ tests across Python and TypeScript running with zero network in CI, you can test your agent's communication logic without hitting live APIs. That's a huge DX win.

Caspian supports both hosted and self-hosted modes. The default via="hosted" uses Caspian's gateway, which owns inbound webhooks and lets your process poll for events. With via="self-host", your process runs adapters directly with your own platform tokens — useful if you need to keep everything in your infrastructure. Switch between modes without rewriting handlers.

Webhook verification is built in for Slack signing secrets, Meta X-Hub-Signature-256, Telegram secret headers, X CRC, and signed email webhooks — mismatches are rejected automatically. For Discord and Slack, you can even receive over a held-open socket (cx.listen("discord")) if you don't have a public URL.

If you're building a coding agent like Claude Code, Codex, or Cursor, there's a SKILL.md file in the repo that the agent can read to do the entire integration for you — a nice touch that dogfoods the ecosystem it's targeting.

Caspian doesn't aim to replace agent-to-agent protocols like A2A or ACP. It's explicitly about agent-to-human communication — the messier, higher-stakes side of deployment. If your agent needs to reach people where they already work, this is the layer under it.

Getting Started

Install the SDK and get an API key from the dashboard, then add a channel:

from caspian_sdk import Caspian

cx = Caspian(api_key="...")

cx.add_channel("slack", token="...")

The same contract exists in TypeScript. Once you've added a channel, your handler rules stay the same — adding a second channel is just another channels.add() call.

Ready-to-run templates are available for each channel, so you can click "Use this template", add a token, and have your agent live on a channel in minutes.

SHARE

← All stories