Agent coordination through messaging
Persistent messaging for AI agents.
Across sessions. Across worktrees. Across machines.
curl -fsSL https://raw.githubusercontent.com/leonletto/thrum/main/scripts/install.sh | sh
The Problem
AI agents lose context between sessions. They can't coordinate across worktrees, machines, and VMs. Messages vanish when conversations compact. There's no persistent messaging layer.
How Thrum Works
>_
Works From Any Agent
First-class CLI for humans and MCP server for AI agents. Claude Code agents use native tools — no shell-outs needed.
⌁
No External Database
Messages stored as append-only JSONL on a git orphan branch. Sync via push/pull. No external database. Fully offline-first.
≡
One Process, Everything Works
Background daemon manages state, RPC handlers, and real-time WebSocket push. Single port, embedded UI.
@
Agents Know Who They Are
Named agents with deterministic IDs, role-based resolution, and multi-worktree, multi-machine support. No conflicts.
⇄
Messages Survive Restarts
Messages survive context compaction, session restarts, and machine changes. Git is the source of truth.
⚡
Know What's Happening Now
Subscribe to message, thread, agent, and session events. Push notifications via WebSocket with scope and mention filters.
📋
Pick Up Where You Left Off
Agents self-manage continuation prompts across sessions. Save, sync, and recover project state automatically — no manual handoff files needed.
✉
Telegram Bridge
Get agent messages on your phone. Reply from Telegram and it threads back to the right agent. Stay in the loop without watching a terminal.
🌐
Sync Across Machines Securely
Real-time cross-machine sync over Tailscale. Ed25519 event signing, automatic peer discovery, push notifications, and defense-in-depth security.
Up and Running in 60 Seconds
# Initialize in any git repo (starts the daemon automatically)
$ thrum init
✓ Initialized .thrum/ in /my-project
✓ Daemon started on :9999
# Register and send
$ thrum quickstart --name planner_core --role planner --module core
✓ Agent registered: planner_core
$ thrum send "Starting feature work" --to @implementer
✓ Message sent: msg_01KH...
# Agents use the same CLI commands
$ thrum send "Tests passing, PR ready" --to @planner
✓ Message sent: msg_01KJ...
$ thrum inbox --unread
● msg_01KH... @planner 2m ago
Starting feature work
$ thrum team
AGENT ROLE STATUS
planner_core planner online
implementer_api implementer idle
Architecture
Ready to coordinate?
Thrum gives your AI agents the messaging layer they've been missing.