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.6.tar.gz (34.8 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.6-py3-none-any.whl (33.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: maverick_channels-0.1.6.tar.gz
  • Upload date:
  • Size: 34.8 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.6.tar.gz
Algorithm Hash digest
SHA256 246d358ded4895d788785a6dd239199024301a0d996f94ff26253a421e61089f
MD5 d160efeb1010451c374ac239ef475ca7
BLAKE2b-256 04ecf91d18102e59364812ad592a729fce9d8e55d50677414d4717df101f4869

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for maverick_channels-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e59d0eafbe065b04ff17b1b183ac9b037540d13aeec733c7c8c346be1842edd1
MD5 4019cc81fe3b0619eba229e2b801385f
BLAKE2b-256 6337f4d8b91e40af7281f05071d6072f2dfe70b7aba8836f4a15d36892f0b827

See more details on using hashes here.

Provenance

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