Untether CLI
Untether bridges Claude Code, Codex and OpenCode with Telegram: voice or text tasks, live progress, approvals with buttons.
- 77 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- Agents in your code can be started remotely through Telegram, including modes without confirmations.
- The bot token sits in `~/.untether/untether.toml`, and schedules and webhooks start tasks unattended.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add cli/untetherDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Agents in your code can be started remotely through Telegram, including modes without confirmations.
- The bot token sits in `~/.untether/untether.toml`, and schedules and webhooks start tasks unattended.
This is third-party code. Review the repository files before installing.
What it does
Untether is a bridge between Telegram and coding agents. It runs on your machine or server and connects Claude Code, Codex, OpenCode and Pi to a bot chat. A task goes in as text or a voice note and progress streams into one message: tool calls, changed files, elapsed time. Claude Code gets the interactive features: buttons to approve tool calls and plans, four permission modes through `/planmode` and the `/steer` command to redirect mid-run. Projects and branches are addressed as `/myproject @feat/thing`, and parallel runs use separate worktrees. There are per-run and daily budgets, cron schedules, webhooks, one-shot `/at 30m` runs, and `/continue` resumes in Telegram a session started in the terminal.
Who it is for. Developers who start long agent tasks and want to follow and approve steps from a phone without sitting at a terminal.
Good fit when
- The agent has been refactoring a module for an hour, you stepped away but want to accept the plan with a button.
- You want to send a task by voice on the road and see the result in chat.
- A project lives in several branches and each task should run in its own worktree.
- A nightly test run should start on a cron schedule.
- Agent spend grows and you need a daily budget that stops at the limit.
Not a fit when
- The bot chat is open to others: without binding to your Telegram ID anyone in it could control the agent.
- You work on Python below 3.12.
- You need Gemini CLI or Amp: they are marked deprecated and unsupported.
Example request
fix the failing tests in src/auth: a message to the Telegram bot starts Claude Code in the selected project.Limitations
Python 3.12 or newer, `uv` or `pipx` and at least one agent CLI on `PATH` are required: `claude`, `codex`, `opencode` or `pi`. Interactive approvals, plan mode and `/steer` work only with Claude Code. OpenCode is supported only in 1.x and 2.x is refused before start. Version 0.36.0 has breaking changes: the `auto` mode became `plan-auto` and unattended cron jobs deny approvals. The `~/.untether/untether.toml` config holds the bot token, so do not commit it and lock the bot to your Telegram user ID.
How to disable. Stop the `untether` process and remove the package with `uv tool uninstall untether` or `pipx uninstall untether`. Delete the `~/.untether/untether.toml` config with the token by hand and revoke the bot at BotFather.
FAQ
How do I install Untether?
Run `uv tool install untether` or `pipx install untether`, then start `untether`. On first run the setup wizard creates a Telegram bot or takes an existing token.
Which agents are supported?
Claude Code, Codex, OpenCode and Pi. The engine switches per message, for example `/codex ...`, or per chat with `/agent set claude`.
Which features work only with Claude Code?
Approval buttons, plan and ask modes, diff preview, live sessions with background tasks and `/steer`. Other agents get progress, resume, voice input and model override.
How do I continue a terminal session?
Start work in the terminal, then send `/continue` in Telegram. The session picks up where it stopped, and `/continue` works for Claude Code, Codex, OpenCode and Pi.
Where does my data go?
Untether itself sends no telemetry and does not auto-update. Outbound calls go to the Telegram Bot API, the Anthropic subscription-usage endpoint for Claude and, if enabled, a voice transcription endpoint.
Discussion
No questions or reviews yet.
Related
CLI toolsA Telegram bot drives Claude Code on your computer: you message the chat and the agent edits the project and streams the reply.
Connects Claude Code, Cursor, Codex or OpenCode to Telegram, Slack and Discord: teammates message a bot, an agent replies
A CLI for driving a Telegram account from the terminal: a daemon, JSON output for agents, webhook events and a Claude Code skill.
Upgrade for the official Claude Code Telegram plugin: voice messages, live progress, buttons, memory and an agents board
A CLI that keeps Claude Code agents running around the clock in PTY sessions, steered from Telegram, a dashboard and cron.
A plugin that makes Claude Code a background assistant: scheduled tasks, Telegram, Discord and Slack replies, a web dashboard.
README in short
The program runs locally with no telemetry, analytics or auto-updates. Workflow modes are an ongoing chat, forum topics per project and reply-to-continue handoff.