One identity for your AI agent across every channel — email, Slack, Discord, WhatsApp, SMS, X, Telegram, iMessage — behind a single on_message handler.
Project description
caspian-sdk
Give your AI agent one identity that reaches any human, on whatever app they already use — email, Slack, Discord, WhatsApp, SMS, X, Telegram, iMessage — all behind a single on_message handler.
You write the handler once. Caspian handles the provider quirks, threading, delivery, and dedup for every channel.
pip install caspian-sdk
Quickstart
from caspian_sdk import CommClient
client = CommClient(api_key="YOUR_KEY")
# Connect any channel — email needs nothing; others take a token or one-click OAuth.
inbox = client.connect_email()
print("Agent address:", inbox["address"])
@client.on_message
def handle(message):
# The same handler answers every channel you connect.
message.reply(f"Thanks! You said: {message.text}")
client.listen() # one loop, every channel
Channels
| Connect | |
|---|---|
connect_email() — default domain or your own |
|
| Slack | install_slack() (one-click) or connect_slack(...) |
| Discord | install_discord() (one-click) or connect_discord(...) |
| X / Twitter | install_x() (one-click) or connect_x(...) |
connect_whatsapp(...) (Twilio or Meta) |
|
| SMS / phone | connect_phone(...) — bring your own Twilio/Telnyx number |
| Telegram | connect_telegram(bot_token=...) |
| iMessage | connect_imessage() |
How it works
- One handler, every channel. Adding a channel is another
connect_*()call — never new handler code. message.reply()answers in the right thread on the right channel automatically.message.typing()shows a "typing…" indicator while your agent thinks (where the platform supports it).client.listen()is resilient — a handler error or a dropped poll won't stop the loop.
Docs
Point your coding agent at the setup guide and it does the whole integration for you. Full docs and your API key: trycaspianai.com.
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file caspian_sdk-0.1.0.tar.gz.
File metadata
- Download URL: caspian_sdk-0.1.0.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f001d03dc3d058f8a6ebf0db3af40a645dc8007f4123e0127ddc813c58e221f8
|
|
| MD5 |
30c2c0239a156aaa8f875ca8b3823c39
|
|
| BLAKE2b-256 |
5ab1be5e59be82f13b54c1b5f6409de86ad996678653077ce794c063d26eb1c7
|
File details
Details for the file caspian_sdk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: caspian_sdk-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
427dc6ad2147a97af90b37f9f00e9f26ff9599dfdbb8d996efbd70aa0e385bbb
|
|
| MD5 |
c77d94efbfd184768255c53f0ac5f52a
|
|
| BLAKE2b-256 |
2dbcc238fa9aa12a9d13f183d8b6e581c7d8d9342b02f4a39cfbce161e34871f
|