Channels
A channel lets you reach your Coffer agents from a messaging app — Telegram or SeaTalk. Pair the channel to your own account, then chat with an agent and receive notifications Coffer pushes you, all from inside the IM chat.
Register a channel
Store the bot secret in the credential store first, then register the channel with references to it (never the secret itself):
bash
coffer credentials set tg-bot-token # paste the token at the prompt
coffer channel register mybot --type telegram --bot-token-ref tg-bot-token
coffer channel pair mybot # → an 8-char, single-use pairing code
coffer channel status mybot # adapter state + paired peer- Telegram needs
--bot-token-ref; SeaTalk needs--app-id --app-secret-ref --signing-secret-ref.--agent(defaultbuiltin) chooses which agent answers. - Pairing is the security boundary. Coffer is single-user: send the code to the bot from your own account to become its sole owner. Anyone else is ignored.
Telegram vs SeaTalk
- Telegram uses long polling — no public ingress, nothing to expose.
- SeaTalk is webhook-only. Coffer runs a local callback listener (loopback
127.0.0.1:8787by default) only while a SeaTalk channel is enabled. Point a tunnel (cloudflared / ngrok) at it and register<public-url>/seatalk/<channel>. Coffer never exposes the daemon itself and does not manage the tunnel. SeaTalk also needs an org-approved Open Platform app with the Bot capability.
Use it
bash
coffer channel notify mybot "deploy finished" # push a message to your paired accountIn a paired chat, the in-chat commands /new, /stop, /status, and /help control the conversation. Channel conversations also appear on the app's Chat page.
The Channels page in the app does the same without the terminal: add a channel (store its secret and register in one step), pair, toggle it on or off, and send a test message from the channel detail page.