Skip to main content

Channel adapters for Maverick (Telegram, Discord, Slack, Signal, ...)

Project description

maverick-channels

Channel adapters for Maverick. A channel normalizes incoming messages from any platform into a shared {user_id, text, attachments} shape, hands it to the orchestrator, and routes the response back.

This is how phone-companion mode works: Maverick itself runs on your Desktop or VPS (maverick serve), and any of these channels gives your phone (or any other client) a frontend.

Channels

Channel Status Install Notes
CLI ready bundled stdin/stdout, used by maverick start
Telegram ready pip install '.[telegram]' Long-poll, no public endpoint needed
Discord ready pip install '.[discord]' Gateway WebSocket
Slack ready pip install '.[slack]' Socket Mode
Signal ready bundled (needs signal-cli on PATH) JSON-RPC over subprocess
Email ready bundled IMAP poll + SMTP send (stdlib)
Matrix ready pip install '.[matrix]' Federated, end-to-end encryptable
WhatsApp scaffold pip install '.[whatsapp]' Twilio webhook — needs public HTTPS
SMS scaffold pip install '.[sms]' Twilio webhook — needs public HTTPS
iMessage scaffold bundled macOS only, needs Full Disk Access

or everything at once:

pip install 'maverick-channels[all]'

The interface

Every channel implements:

class Channel:
    async def start(self) -> None: ...
    async def send(self, user_id: str, text: str) -> None: ...
    async def stop(self) -> None: ...

And dispatches IncomingMessage(user_id, text, attachments) to a single handler the wizard wires up.

Wiring channels

In ~/.maverick/config.toml:

[channels.telegram]
enabled = true
bot_token = "${TELEGRAM_BOT_TOKEN}"
allowed_user_ids = ["123456789"]
# optional alternative: allowed_chat_ids = ["-1001234567890"]

[channels.discord]
enabled = true
bot_token = "${DISCORD_BOT_TOKEN}"

[channels.slack]
enabled = false
app_token = "${SLACK_APP_TOKEN}"
bot_token = "${SLACK_BOT_TOKEN}"

[channels.signal]
enabled = false
phone_number = "+12345550199"

[channels.email]
enabled = false
imap_host = "imap.gmail.com"
imap_user = "${EMAIL_USER}"
imap_password = "${EMAIL_APP_PASSWORD}"
smtp_host = "smtp.gmail.com"
smtp_port = 465
smtp_user = "${EMAIL_USER}"
smtp_password = "${EMAIL_APP_PASSWORD}"

Then run:

maverick serve

Multiple channels can be enabled simultaneously — each runs in its own async task.

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

maverick_channels-0.1.2.tar.gz (24.9 kB view details)

Uploaded Source

Built Distribution

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

maverick_channels-0.1.2-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

Details for the file maverick_channels-0.1.2.tar.gz.

File metadata

  • Download URL: maverick_channels-0.1.2.tar.gz
  • Upload date:
  • Size: 24.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for maverick_channels-0.1.2.tar.gz
Algorithm Hash digest
SHA256 a45c553cf9034051e1ba499024944fbdd84612fc91923372568ac1e3e1da58a2
MD5 0ffd60b2c273d73bff571b638a2beb03
BLAKE2b-256 89548f6f6ed7034d68c6c1c2256a97f11d04d3c3682475821b320855885306a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for maverick_channels-0.1.2.tar.gz:

Publisher: publish.yml on cdayAI/Maverick

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

File details

Details for the file maverick_channels-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for maverick_channels-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a5082dbeb0c23f8185295bac72f41fbfa674b8e3b049ad5304554b984c7cd40b
MD5 17a73d92aead6f6ed0dc366f11f35870
BLAKE2b-256 d044057f55ae7a5604029de968503fa5dfdb984e32705fb997ee5349efae04b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for maverick_channels-0.1.2-py3-none-any.whl:

Publisher: publish.yml on cdayAI/Maverick

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