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.4.tar.gz (27.4 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.4-py3-none-any.whl (31.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: maverick_channels-0.1.4.tar.gz
  • Upload date:
  • Size: 27.4 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.4.tar.gz
Algorithm Hash digest
SHA256 4a5a85c85462afbbf7ecb5c8b70fc0372cc29607a3d6acfe9e87f4798a99a99a
MD5 917bae89869e9e0f2820f3ddf9fabcc2
BLAKE2b-256 b5659870a913d203f51f3b229f5202e6788e04122a7f0d2ca149c30d534d5583

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for maverick_channels-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c41297dd68feb811c67311c69b1381cc5fbb5147b66c4ca51bc4b6d15b8a351e
MD5 df2e752e7512d3841c173e6f54bc9ef5
BLAKE2b-256 b05258e11a2eed0001b9878624f2c9c7e0ff96ef4009e1c29428f57aea82e267

See more details on using hashes here.

Provenance

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