Persistent messaging for AI agents.
Across sessions. Across worktrees. Across machines.
go install github.com/leonletto/thrum@latest
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.
First-class CLI for humans and MCP server for AI agents. Claude Code agents use native tools — no shell-outs needed.
Messages stored as append-only JSONL on a git orphan branch. Sync via push/pull. No external database. Fully offline-first.
Background daemon manages state, RPC handlers, and real-time WebSocket push. Single port, embedded UI.
Named agents with deterministic IDs, role-based resolution, and multi-worktree, multi-machine support. No conflicts.
Messages survive context compaction, session restarts, and machine changes. Git is the source of truth.
Subscribe to message, thread, agent, and session events. Push notifications via WebSocket with scope and mention filters.
Agents self-manage continuation prompts across sessions. Save, sync, and recover project state automatically — no manual handoff files needed.
# Initialize in any git repo
$ thrum init
✓ Initialized .thrum/ in /my-project
# Start the daemon
$ thrum daemon start
✓ Daemon listening on :4100
# Register and send
$ thrum quickstart --role planner --module core
✓ Agent registered: planner_core
$ thrum send "Starting feature work" --to @implementer
✓ Message sent: msg_01KH...
// Claude Code agents use native MCP tools
// No shell needed — direct daemon RPC
mcp__thrum__send_message(
to: "@planner",
content: "Tests passing, PR ready",
priority: "high"
)
mcp__thrum__check_messages()
// → 2 unread from @planner
mcp__thrum__list_agents()
// → planner_core (online)
// → implementer_api (idle)
Thrum gives your AI agents the messaging layer they've been missing.