How-To Guides
Last updated: 11 March 2026
Route by chat
Bind a Telegram chat to a project so messages in that chat automatically route to the right repo.
Bind a Telegram chat to a project so messages in that chat automatically route to the right repo.
Capture a chat id and save it to a project
Run:
untether chat-id --project happy-gadgets
Then send any message in the target chat. Untether captures the chat_id and updates your config:
=== “untether config”
```sh
untether config set projects.happy-gadgets.path "~/dev/happy-gadgets"
untether config set projects.happy-gadgets.chat_id -1001234567890
```
=== “toml”
```toml
[projects.happy-gadgets]
path = "~/dev/happy-gadgets"
chat_id = -1001234567890
```
Messages from that chat now default to the project.
You fix the failing tests
Untether done · codex · 8s · step 3
Fixed the two failing assertions in test_auth.py…
dir: happy-gadgets<br>
`codex resume abc123`
Rules for chat ids
- Each
projects.*.chat_idmust be unique. - A project
chat_idmust not matchtransports.telegram.chat_id. - Telegram uses positive IDs for private chats and negative IDs for groups/supergroups.
Capture a chat id without saving
untether chat-id
Related
Was this helpful?
Thanks for your feedback!
Related Articles
ReferenceContext resolutionThis page documents how Untether resolves run context (project, worktree/branch, engine) from messages. For step-by-step usage, see Projects and Worktrees.ReferenceRepo mapQuick pointers for navigating the Untether codebase.ReferenceTelegram TransportTelegramClient is the single transport for Telegram writes. It owns a TelegramOutbox that serializes send/edit/delete operations, applies coalescing, and enf...