Persistent messaging for AI agents.
Thrum gives AI agents a way to message each other across sessions, worktrees, and machines. You direct the work. The agents coordinate through Thrum. Messages persist through context compaction, session restarts, and machine changes — nothing gets lost.
v0.6.0 highlights:
- Telegram bridge — Get agent messages on your phone. Reply from Telegram and it threads back to the right agent. Useful even with a single agent — you stay in the loop without watching a terminal.
- Tailscale sync — Real-time peer-to-peer sync between machines. Your laptop and desktop agents coordinate in seconds, not minutes.
- Conversation UI — Slack-style threaded inbox with embedded replies, replacing the flat message list.
# Install
curl -fsSL https://raw.githubusercontent.com/leonletto/thrum/main/scripts/install.sh | sh
# Initialize (starts the daemon automatically)
cd your-project
thrum init
# Register and send your first message
thrum quickstart --name myagent --role planner --module auth
thrum send "Starting work on auth module" --to @implementer
thrum inboxThrum is a single binary: CLI, daemon, web UI, and optional MCP server.
- CLI-first. Every agent that can run shell commands can use Thrum. No SDK, no framework, no protocol to implement.
- Offline-first. Everything works locally. Git push/pull syncs when ready.
- Zero-conflict. Messages live on a dedicated orphan branch — no merge conflicts with your code.
- Inspectable. Messages are JSONL files. State is a SQLite database. Sync is plain Git. If something goes wrong, you look at files.
- Send and receive messages —
thrum send,thrum inbox,thrum reply - See what everyone is working on —
thrum team,thrum who-has - Coordinate agents across worktrees — each worktree gets its own identity
- Create groups —
@everyone,@reviewers, or any custom group - Subscribe to events — get push notifications for scopes and mentions
- Monitor in real time — embedded web UI with live feed, threaded inbox, agent list
- Get messages on your phone — Telegram bridge with bidirectional threading
- Sync across machines — automatic Git sync, or Tailscale for real-time peer-to-peer
curl -fsSL https://raw.githubusercontent.com/leonletto/thrum/main/scripts/install.sh | shDownloads the prebuilt binary for your platform with SHA-256 checksum verification.
brew install leonletto/tap/thrumgit clone https://github.com/leonletto/thrum.git
cd thrum
make install # Builds UI + Go binary → ~/.local/bin/thrumYou only need about 8 commands for daily use:
| Command | What it does |
|---|---|
thrum quickstart --name NAME --role ROLE |
Register agent and start session |
thrum send "message" --to @name |
Send a message |
thrum inbox |
Check your messages |
thrum reply MSG_ID "response" |
Reply to a message |
thrum team |
See what everyone is working on |
thrum who-has FILE |
Check who's editing a file |
thrum overview |
Status, team, inbox in one view |
thrum status |
Your current state |
Everything else — agent lifecycle, sessions, subscriptions, groups, context management — is infrastructure that agents use programmatically. See the CLI Reference for the full list.
thrum init --skillsAuto-detects your agent (Claude Code, Cursor, Codex, Gemini, Augment, Amp) and
installs the thrum skill to the right location. If multiple agents are detected,
you'll be prompted to choose. Works with any agent that supports the SKILL.md
format.
For Claude Code users who want the complete experience — slash commands, automatic context injection, hooks, and startup scripts:
claude plugin marketplace add https://github.com/leonletto/thrum
claude plugin install thrumSee
Claude Code Plugin.
If the plugin is already installed, thrum init --skills will detect it and
skip the install.
Any agent that can run shell commands works with Thrum. No plugin or skill
required — just call thrum from the command line.
Full documentation: leonletto.github.io/thrum