GitHub - leonletto/thrum: Thrum is the sound of agents working.

4 min read Original article ↗

Persistent messaging for AI agents.

License Go Report Card CI Release Go Version

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.8.2 highlights:

  • Cursor Agent plugin — Full plugin with hooks, skills, commands, MCP config. Install via cursor-plugin/local-install.sh.
  • Reusable test infrastructurescripts/test-setup.sh and scripts/test-teardown.sh for isolated plugin testing across all runtimes.
  • Monitor delivery fix — Monitor jobs now register synthetic agent+session so matched lines actually deliver messages.
  • CLI audit cleanup — Removed groups as user-facing concept, simplified messaging to agent IDs + @everyone, -2400 lines across 24 files.
  • Tmux session titles — Terminal tabs show @agent_name instead of generic "thrum" for all sessions (iTerm2, Terminal.app).

Quick Start

# 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 inbox

How It Works

Thrum is a single binary: CLI, daemon, web UI, and optional MCP server.

Thrum architecture

  • 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.

What You Can Do

  • Send and receive messagesthrum send, thrum inbox, thrum reply
  • See what everyone is working onthrum 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

Installation

Install Script (recommended)

curl -fsSL https://raw.githubusercontent.com/leonletto/thrum/main/scripts/install.sh | sh

Downloads the prebuilt binary for your platform with SHA-256 checksum verification.

Homebrew

brew install leonletto/tap/thrum

From Source

git clone https://github.com/leonletto/thrum.git
cd thrum
make install    # Builds UI + Go binary → ~/.local/bin/thrum

Daily Commands

You 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.

Agent Setup

Install the Thrum Skill (All Agents)

Auto-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.

Claude Code Plugin (Full Integration)

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 thrum

See Claude Code Plugin. If the plugin is already installed, thrum init --skills will detect it and skip the install.

Any Agent via CLI

Any agent that can run shell commands works with Thrum. No plugin or skill required — just call thrum from the command line.

Documentation

Full documentation: leonletto.github.io/thrum

License

MIT