Chatom
A unified Python frontend for Discord, Slack, Symphony, Telegram, and other chat backends.
Chatom lets application code use one set of users, channels, messages, formatting nodes, interactions, and backend operations. Platform adapters translate that frontend to Discord, Slack, Symphony, or Telegram at the edge. The same models also feed cross-platform bridges, pydantic-ai tools, MCP servers, and CSP graphs.
Install
Chatom requires Python 3.11 or newer.
pip install chatom
Install the SDKs for the backends you use:
pip install slack-sdk discord.py symphony-bdk-python python-telegram-bot
Optional integrations are available with chatom[agent] and chatom[mcp].
One message, four backends
from chatom import MessageBuilder
message = (
MessageBuilder()
.heading("Deployment status", level=2)
.paragraph("All checks passed.")
.bold("Environment: ")
.text("production")
.table(
[["API", "healthy"], ["Workers", "healthy"]],
headers=["Service", "State"],
)
.build()
)
slack_content = message.render_for("slack")
discord_content = message.render_for("discord")
symphony_content = message.render_for("symphony")
telegram_content = message.render_for("telegram")
Message construction stays unchanged. Only rendering and backend configuration know which platform receives it.
Connected backends share the same lifecycle and operation shape:
await backend.connect()
try:
channel = await backend.fetch_channel(name="operations")
await backend.send_message(channel, message.render_for(backend.name))
finally:
await backend.disconnect()
What the frontend covers
- Platform-independent models for users, channels, organizations, threads, messages, attachments, embeds, reactions, presence, and interactions
- Rich text, tables, mentions, embeds, buttons, select menus, and format conversion
- A common asynchronous backend interface with a synchronous facade
- Backend capabilities for feature-dependent operations such as reactions, editing, files, presence, and threads
- Model promotion and demotion between common and backend-specific types
- Identity mapping and message forwarding between platforms
- Agent, MCP, and CSP integrations built on the same backend contract
- In-memory Discord, Slack, Symphony, and Telegram backends for tests
Documentation
License
Chatom is licensed under the Apache License 2.0.
Metadata
Release files for chatom 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| chatom-0.2.1.tar.gz | 356.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chatom-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 788.1 kB
Release files / chatom-0.2.1.tar.gz
| Download URL | chatom-0.2.1.tar.gz |
|---|---|
| Size | 356.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d806affa29ed24a773ee5292d7def73acf3842d768ee0bd99cbddf940410afa5
|
|
BLAKE2b-256 checksum How to use checksums |
fd11b964a1eee11974dba850fdc49aed15bf7a19bdbc1c3c737c3099490325ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / chatom-0.2.1-py3-none-any.whl
| Download URL | chatom-0.2.1-py3-none-any.whl |
|---|---|
| Size | 431.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c820c20c22b6edab80fe838af758f08e9ca4bc826cd0cb82640f226201c39b48
|
|
BLAKE2b-256 checksum How to use checksums |
90373b027208218abbb500afcbe0889844b35219b4a6520da48f715f226b6722
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|