watchfire telegram
watchfire telegram pairs a Telegram chat with the daemon and inspects the bridge — the CLI side of the Telegram bridge introduced in Torch (v10.0.0).
Pair and inspect the Telegram bridge from the CLI.
Usage
watchfire telegram <subcommand>
Set up the bot first: create one with @BotFather (/newbot, copy the token), then store the token with watchfire integrations add telegram — or through GUI Settings → Integrations → Telegram, or the TUI overlay on Ctrl+I. The token lives in the OS keyring, never in a config file. See the setup walkthrough for the full flow.
Subcommands
telegram pair
Mint a one-time pairing code and wait for a chat to redeem it.
watchfire telegram pair
Prints the 8-character code and the deep link:
Pairing code: WK7DRM2P (expires in 10:00)
Open on your phone:
https://t.me/my_watchfire_bot?start=WK7DRM2P
or send /pair WK7DRM2P to the bot.
Waiting for pairing… (Ctrl+C to stop waiting)
The command polls the daemon every 2 seconds and exits when the chat is paired or the code expires. Ctrl+C stops the wait without invalidating the code — the printed link keeps working until its 10-minute TTL runs out.
Codes are single-use, generated from crypto/rand over an alphabet with no ambiguous characters (0/O/1/I/l), and case-insensitive on redeem. Beginning a new pairing invalidates any previous outstanding code — at most one code is ever active.
telegram status
Show the bridge's current state.
watchfire telegram status
Reports whether the integration is enabled, whether a token is stored (token_set — the CLI can never show the token itself), the pairing state (NONE | PENDING | PAIRED | EXPIRED), and the paired chats with their default project, mute, and watch flags.
Notes
- Pairing is the bridge's security boundary — the paired-chats list is the allowlist, and a code is the only way onto it. Unpaired chats get pairing instructions and nothing else.
- Revoking a chat is done from the GUI or TUI paired-chats list (confirm-gated); the chat is dropped from the live bridge immediately.
- The QR code for the deep link is a GUI affordance — the CLI and TUI print the code and link only.
Common pitfalls
telegram pairreports the bridge isn't running — the integration is disabled or no token is stored. Fix: runwatchfire integrations add telegramand make sure the integration is enabled; the bridge starts nothing without both.- The code expired before you opened the link — codes live 10 minutes and are single-use. Fix: run
watchfire telegram pairagain; the fresh code replaces the old one. - The bot doesn't respond to a paired chat's commands — check
watchfire telegram status: if the chat is missing, it was revoked; a revoked chat gets silence by design. Re-pair it.
watchfire integrations
watchfire integrations configures outbound webhooks, Slack, Discord, Telegram, GitHub auto-PR adapters, and the inbound HTTP server that drives the daemon back.
watchfire status
watchfire status prints a snapshot of the current project — active agent sessions, task queue counts, and the last few lines of every running PTY.