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.3.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.3-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: maverick_channels-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 84dea45f3134a87f35437a478413a4b559a7b31f562275a7176e6aed369fd876
MD5 4565ee8430e54b3a6aa7a4069a049dca
BLAKE2b-256 a4c412fb9c33314ca5b75e6fad454ffe989bf4ef05e73f8bf4757d07c688dd66

See more details on using hashes here.

Provenance

The following attestation bundles were made for maverick_channels-0.1.3.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.3-py3-none-any.whl.

File metadata

File hashes

Hashes for maverick_channels-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9e88b012937c4ea136d37cc436b443d9624c03023750fb645bfc56e4143207dd
MD5 d88b2fbdde19b68c0462801a5f5a3ce8
BLAKE2b-256 8ea70ccf7a19e2f1dea40b780b81064b774eab6d862ddaa25cf8c6509154437c

See more details on using hashes here.

Provenance

The following attestation bundles were made for maverick_channels-0.1.3-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