{"id":44492930,"url":"https://github.com/leonletto/thrum","last_synced_at":"2026-05-19T09:01:25.755Z","repository":{"id":337606270,"uuid":"1149120040","full_name":"leonletto/thrum","owner":"leonletto","description":"Persistent Git-backed messaging for AI coding agents — coordinate Claude Code, Codex, and others across sessions, worktrees, and machines.","archived":false,"fork":false,"pushed_at":"2026-05-16T01:05:41.000Z","size":20978,"stargazers_count":24,"open_issues_count":0,"forks_count":5,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-16T02:34:03.950Z","etag":null,"topics":["agent-coordination","ai-agents","claude-code","cli","codex","git","golang","llm-tools","messaging","multi-agent","sqlite","tmux"],"latest_commit_sha":null,"homepage":"https://leonletto.github.io/thrum/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leonletto.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security-cicd.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-03T18:39:30.000Z","updated_at":"2026-05-14T09:27:43.000Z","dependencies_parsed_at":"2026-03-17T11:09:43.388Z","dependency_job_id":"a54bf99d-cf78-4443-894c-9f92b36fc67b","html_url":"https://github.com/leonletto/thrum","commit_stats":null,"previous_names":["leonletto/thrum"],"tags_count":54,"template":false,"template_full_name":null,"purl":"pkg:github/leonletto/thrum","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leonletto%2Fthrum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leonletto%2Fthrum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leonletto%2Fthrum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leonletto%2Fthrum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leonletto","download_url":"https://codeload.github.com/leonletto/thrum/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leonletto%2Fthrum/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33209392,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-19T07:54:09.561Z","status":"ssl_error","status_checked_at":"2026-05-19T07:54:08.508Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-coordination","ai-agents","claude-code","cli","codex","git","golang","llm-tools","messaging","multi-agent","sqlite","tmux"],"created_at":"2026-02-13T04:21:23.730Z","updated_at":"2026-05-19T09:01:25.748Z","avatar_url":"https://github.com/leonletto.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Thrum\n\n**Persistent messaging for AI agents.**\n\n[![License](https://img.shields.io/github/license/leonletto/thrum)](LICENSE)\n[![Go Report Card](https://goreportcard.com/badge/github.com/leonletto/thrum?v=2)](https://goreportcard.com/report/github.com/leonletto/thrum)\n[![CI](https://github.com/leonletto/thrum/actions/workflows/ci.yml/badge.svg)](https://github.com/leonletto/thrum/actions/workflows/ci.yml)\n[![Release](https://img.shields.io/github/v/release/leonletto/thrum)](https://github.com/leonletto/thrum/releases)\n[![Go Version](https://img.shields.io/github/go-mod/go-version/leonletto/thrum)](go.mod)\n\nThrum gives AI agents a way to message each other across sessions, worktrees,\nand machines. You direct the work. The agents coordinate through Thrum. Messages\npersist through context compaction, session restarts, and machine changes —\nnothing gets lost.\n\n## Quick Start\n\n```bash\n# Install\ncurl -fsSL https://raw.githubusercontent.com/leonletto/thrum/main/scripts/install.sh | sh\n\n# Initialize. On a TTY this launches an opinionated wizard that walks you\n# through identity, worktrees root, role templates, and starts the daemon.\ncd your-project\nthrum init\n\n# Send your first message (the wizard already registered your agent)\nthrum send \"Starting work on auth module\" --to @implementer\nthrum inbox\n```\n\nNeed a non-interactive flow for CI? Pass `--non-interactive` for the legacy\nsilent init, or pre-fill every wizard prompt:\n\n```bash\nthrum init --name myagent --role planner --module auth \\\n           --worktrees-root ~/.thrum/worktrees/myproj \\\n           --roles=enhanced --no-daemon\n```\n\n## How It Works\n\nThrum is a single binary: CLI, daemon, web UI, and optional MCP server.\n\n![Thrum architecture](website/img/architecture.svg)\n\n- **CLI-first.** Every agent that can run shell commands can use Thrum. No SDK,\n  no framework, no protocol to implement.\n- **Offline-first.** Everything works locally. Git push/pull syncs when ready.\n- **Zero-conflict.** Messages live on a dedicated orphan branch — no merge\n  conflicts with your code.\n- **Inspectable.** Messages are JSONL files. State is a SQLite database. Sync is\n  plain Git. If something goes wrong, you look at files.\n\n## What You Can Do\n\n- **Send and receive messages** — `thrum send`, `thrum inbox`, `thrum reply`\n- **See what everyone is working on** — `thrum team`, `thrum who-has`\n- **Coordinate agents across worktrees** — each worktree gets its own identity\n- **Broadcast critical alerts** — escalations reach every active agent\n- **Monitor in real time** — embedded web UI with live feed, threaded inbox,\n  agent list\n- **Get messages on your phone** — Telegram bridge with bidirectional threading\n- **Sync across machines** — automatic Git sync, or Tailscale for real-time\n  peer-to-peer\n\n## Installation\n\n### Install Script (recommended)\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/leonletto/thrum/main/scripts/install.sh | sh\n```\n\nDownloads the prebuilt binary for your platform with SHA-256 checksum\nverification.\n\n### Homebrew\n\n```bash\nbrew install leonletto/tap/thrum\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/leonletto/thrum.git\ncd thrum\nmake install    # Builds UI + Go binary → ~/.local/bin/thrum\n```\n\n### Try beta releases\n\nEvery release soaks for 48h+ as `-rc.N` before going stable. To help test\nreleases before they're promoted, see\n[Beta channel](https://leonletto.github.io/thrum/docs/beta-channel.html).\n\n## Daily Commands\n\nYou only need about 8 commands for daily use:\n\n| Command                                    | What it does                     |\n| ------------------------------------------ | -------------------------------- |\n| `thrum quickstart --name NAME --role ROLE` | Register agent and start session |\n| `thrum send \"message\" --to @name`          | Send a message                   |\n| `thrum inbox`                              | Check your messages              |\n| `thrum reply MSG_ID \"response\"`            | Reply to a message               |\n| `thrum team`                               | See what everyone is working on  |\n| `thrum who-has FILE`                       | Check who's editing a file       |\n| `thrum overview`                           | Status, team, inbox in one view  |\n| `thrum status`                             | Your current state               |\n\nEverything else — agent lifecycle, sessions, context management — is\ninfrastructure that agents use programmatically. See the\n[CLI Reference](https://leonletto.github.io/thrum/docs/cli.html) for the full\nlist.\n\n## Agent Setup\n\n### Install the Thrum Skill (All Agents)\n\n```bash\nthrum init --skills\n```\n\nAuto-detects your agent (Claude Code, Cursor, Codex, Gemini, Augment, Amp) and\ninstalls the thrum skill to the right location. If multiple agents are detected,\nyou'll be prompted to choose. Works with any agent that supports the `SKILL.md`\nformat.\n\n### Claude Code Plugin (Full Integration)\n\nFor Claude Code users who want the complete experience — slash commands,\nautomatic context injection, hooks, and startup scripts:\n\n```bash\nclaude plugin marketplace add https://github.com/leonletto/thrum\nclaude plugin install thrum\n```\n\nSee\n[Claude Code Plugin](https://leonletto.github.io/thrum/docs/claude-code-plugin.html).\nIf the plugin is already installed, `thrum init --skills` will detect it and\nskip the install.\n\n### Any Agent via CLI\n\nAny agent that can run shell commands works with Thrum. No plugin or skill\nrequired — just call `thrum` from the command line.\n\n## Documentation\n\nFull documentation:\n**[leonletto.github.io/thrum](https://leonletto.github.io/thrum)**\n\n- [Overview](https://leonletto.github.io/thrum/docs/overview.html) |\n  [Quickstart](https://leonletto.github.io/thrum/docs/quickstart.html) |\n  [CLI Reference](https://leonletto.github.io/thrum/docs/cli.html) |\n  [Architecture](https://leonletto.github.io/thrum/docs/architecture.html)\n- [Messaging](https://leonletto.github.io/thrum/docs/messaging.html) |\n  [Agent Coordination](https://leonletto.github.io/thrum/docs/agent-coordination.html)\n  | [Multi-Agent](https://leonletto.github.io/thrum/docs/multi-agent.html) |\n  [Sync](https://leonletto.github.io/thrum/docs/sync.html)\n- [Telegram Bridge](https://leonletto.github.io/thrum/docs/telegram-bridge.html)\n  | [Tailscale Sync](https://leonletto.github.io/thrum/docs/tailscale-sync.html)\n  | [Web UI](https://leonletto.github.io/thrum/docs/web-ui.html)\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleonletto%2Fthrum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleonletto%2Fthrum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleonletto%2Fthrum/lists"}