Give your CLI
assistant a phone number.
OpenDitto is a Telegram bridge for Claude Code. Text your terminal from anywhere — with persistent memory, your full MCP toolkit, and zero cloud.
One command. Fifteen minutes.
The installer handles dependencies, LaunchAgent setup, and the Telegram handshake. Uninstall is a single command too.
$ bash -c "$(curl -fsSL https://raw.githubusercontent.com/regreenjr/openditto/main/install.sh)"What you get.
A persistent second-self you can text. Not an abstraction — the full Claude Code runtime, reachable from your pocket.
Telegram, locked to you
A private bot pinned to your Telegram user ID. No one else can reach it — not even in DMs, not even in groups.
Memory in your Obsidian vault
Every fact the daemon learns is written to markdown files you can read, edit, and grep — in your own vault, on your own disk.
Your full Claude Code toolkit
Skills, subagents, MCP servers, hooks. Everything your desktop Claude Code does, it can do from a text message.
100% local
Runs as a LaunchAgent on your Mac. No hosted middleware, no vendor between you and Claude, no third-party storage.
Auto-restart, auto-update
A supervisor wrapper relaunches on crash and pulls brew upgrades on every fresh session. You don't babysit it.
/fresh and /ctx commands
Check context window usage at any time. Force a clean restart with one word. Memory on disk survives both.
How it works.
No cloud hop. Your phone talks to Telegram, Telegram talks to your Mac, your Mac talks to Claude.
You text your bot.
Over Telegram, from your phone, laptop, or any device logged into your account. Nothing else needs to be installed.
Your Mac hears it.
A daemon running locally receives the message, wraps it with a <channel> tag, and routes it into a live Claude Code session.
Claude replies with its toolkit.
File edits, shell commands, MCP calls, GitHub, Supabase — the full Claude Code surface area, delivered back as a Telegram reply.
Meet your +1
A company of one, with a second self that never sleeps.
OpenDitto is the solopreneur multiplier. Text it a half-formed thought on a walk and come home to a repo committed, an email drafted, a spreadsheet filled. It's not a clone of you. It's the part of you that keeps working while you don't.
OpenDitto is not affiliated with, endorsed by, or connected to The Pokémon Company International, Inc. or Nintendo. “Ditto” is their trademark.
Questions.
The answers most people want before they paste a curl command into their terminal.