Messaging
PwrAgent’s messaging surface lets you drive Codex threads from the
chat platforms you already use — Telegram, Discord, Slack,
Mattermost, Feishu / Lark, LINE. Everything below is operator-facing;
the contributor / architecture content lives in the main repo under
docs/messaging-*.md.
Where to start
If you’re new to PwrAgent’s messaging story, the recommended path is Using Codex via Messaging → Providers:
- Using Codex via Messaging — the end-to-end usage guide. Bound threads, slash commands, the resume browser, the start card, debounce / queue / steer, monitor cards, detach. Same across every provider; per-provider quirks called out inline.
- Providers — per-platform setup walkthroughs. “What you need to get started” → “Step by step” → “Settings reference” for each of the six platforms.
Setting up providers
Pick your platform. Setup pages each follow the same structure (credentials needed → exact paste/save/test/pair flow → field-by- field Settings reference). Click the platform name to jump straight to its setup page.
| Platform | Inbound transport | Public port? | Setup |
|---|---|---|---|
| Telegram | Long polling | ✅ No | telegram |
| Discord | Gateway WebSocket | ✅ No | discord |
| Slack | Socket Mode | ✅ No | slack |
| Feishu / Lark | Persistent SDK WebSocket | ✅ No | feishu |
| Mattermost | HTTP callback (your host) | ❌ Yes | mattermost |
| LINE | HTTP webhook (your host) | ❌ Yes | line |
✅ No = PwrAgent dials out to the platform; nothing on your machine accepts incoming public traffic. ✅ is the safer default.
❌ Yes = the platform dials into a callback URL you host, usually fronted by Cloudflare Tunnel or Tailscale Funnel. Read Webhooks — a security note before standing one up.
Pairing
The Pairing flow is how you populate every platform’s authorized-user list (and shared-space allowlists) without having to find a numeric platform ID anywhere. Same mechanic across all six providers; the captured walkthrough plus the Messaging Activity troubleshooting screen for blocked inbound messages live at Messaging → Pairing.
Watching messaging from the desktop
Two desktop surfaces keep messaging observable while you work:
- The MSG titlebar control — a status popover in the desktop’s titlebar with a master on/off switch, a per-platform status row for every enabled provider, and degradation details when something’s wrong (rate limiting, auth failures, disconnects). Status cards carry real backend metadata — account, usage, and rate-limit state — so “why is Telegram slow right now” is one hover away.
- The Messaging Activity window — a dense, resizable log of inbound and outbound messaging traffic, including rejected inbound attempts with the sender’s platform ID. It’s both the security audit trail and the discovery fallback for populating allowlists (see Pairing).
Read before you toggle
A handful of cross-cutting reference pages worth reading once before configuring anything:
- Streaming responses — why the toggle is off by default and why turning it on usually makes things worse, not better.
- Webhooks — a security note — what’s at stake for the two HTTP-callback platforms (Mattermost, LINE), what you need to do at the tunnel layer, and when Mattermost can stay on a private network.
- Rate limits and budgets — per-platform write budgets from May 2026 PwrAgent probes, Slow Mode and Cool Off priority order, per-platform label caps.