Skip to main content

Multi-platform async chat SDK for Python — port of Vercel Chat

Project description

chat-sdk-python

Multi-platform async chat SDK for Python. Port of Vercel Chat.

Status: Alpha (0.0.1a4) — API may change. Not yet tested in production.

Why chat-sdk?

  • Write once, deploy to 8 platforms. One handler runs on Slack, Discord, Teams, Telegram, WhatsApp, Google Chat, GitHub, and Linear.
  • Built-in concurrency primitives. Deduplication, thread locking, and message queuing are handled for you.
  • Cross-platform cards. Author a Card once and it renders as Block Kit (Slack), Adaptive Cards (Teams), embeds (Discord), and more.
  • Not a replacement for platform SDKs. chat-sdk is built on top of them. You can always drop down to the native SDK when you need to.

Install

pip install chat-sdk                   # core only
pip install chat-sdk[slack]            # + Slack adapter
pip install chat-sdk[all]              # all adapters + state backends

Quick Start

from chat_sdk import Chat, Card, Button, Actions, MemoryStateAdapter
from chat_sdk.adapters.slack import create_slack_adapter

chat = Chat(
    adapters={"slack": create_slack_adapter()},
    state=MemoryStateAdapter(),
    user_name="my-bot",
)

@chat.on_mention
async def handle_mention(thread, message):
    await thread.post(
        Card(title="Hello!", children=[
            Actions([Button(id="hi", label="Say Hi")])
        ])
    )

Adapters

Platform Install Extra Status
Slack chat-sdk[slack] Alpha
Discord chat-sdk[discord] Alpha
Teams chat-sdk[teams] Alpha
Telegram chat-sdk[telegram] Alpha
WhatsApp chat-sdk[whatsapp] Alpha
Google Chat chat-sdk[google-chat] Alpha
GitHub chat-sdk[github] Alpha
Linear chat-sdk[linear] Alpha

State Backends

Backend Install Extra
In-Memory Built-in
Redis chat-sdk[redis]
PostgreSQL chat-sdk[postgres]

Compared to Alternatives

Feature chat-sdk Raw platform SDKs BotFramework SDK
Multi-platform from one codebase 8 platforms 1 per SDK Teams + limited
Async-native (Python 3.11+) Yes Varies No
Cross-platform cards Card model Platform-specific Adaptive Cards only
Thread locking / dedup Built-in DIY DIY
State abstraction (mem/redis/pg) Built-in DIY DIY
Drop down to native SDK Yes N/A Partially

Development

uv sync --group dev
uv run pytest tests/
uv run ruff check src/

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

chat_sdk-0.0.1a4.tar.gz (435.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chat_sdk-0.0.1a4-py3-none-any.whl (243.6 kB view details)

Uploaded Python 3

File details

Details for the file chat_sdk-0.0.1a4.tar.gz.

File metadata

  • Download URL: chat_sdk-0.0.1a4.tar.gz
  • Upload date:
  • Size: 435.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for chat_sdk-0.0.1a4.tar.gz
Algorithm Hash digest
SHA256 d7eb3b2b76bc3fe37181cf89b484c0c47c55b1bde13c47bf0795e3aff0a921d9
MD5 67b77c3a3e4448f6b414f23d2d52ec39
BLAKE2b-256 f4ca4c8a1e88ec6c78d9b3abd28723ec58b7d3780f59ada2f1aaa044dc40f587

See more details on using hashes here.

Provenance

The following attestation bundles were made for chat_sdk-0.0.1a4.tar.gz:

Publisher: publish.yml on Chinchill-AI/chat-sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chat_sdk-0.0.1a4-py3-none-any.whl.

File metadata

  • Download URL: chat_sdk-0.0.1a4-py3-none-any.whl
  • Upload date:
  • Size: 243.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for chat_sdk-0.0.1a4-py3-none-any.whl
Algorithm Hash digest
SHA256 54345fa10b30c6d9bedd7fd8e7b4b4bc4bd767e756b2aa02d8aae92663c2749a
MD5 b27b60ff53c9680602ceb8ce66957f23
BLAKE2b-256 a30087241433e3b4e8029cbcfdbcae12e023bcdd3a204214e9d7de16e3825240

See more details on using hashes here.

Provenance

The following attestation bundles were made for chat_sdk-0.0.1a4-py3-none-any.whl:

Publisher: publish.yml on Chinchill-AI/chat-sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page