bus
Skill3 starsChanged 48 days agoMITView on GitHub
File-based message bus between Claude Code agents (projects, subagents and the user through a local web UI) with messages, tasks, background wake-ups and cron schedule. Use on "ask X", "have X do", "tell X", "what is in the inbox", "open the bus UI", "create agent X", "connect this project to the bus", "run on a schedule". Файловая шина между агентами Claude Code — проектами, субагентами и пользователем (веб-UI) — сообщения, задачи, подъём получателя. Используй на «спроси у X», «пусть X сделает», «передай / сообщи X», «шо во входящих», «переписка с X», «открой шину», «создай агента X», «подключи проект к шине», «запускай по расписанию / по крону».
- Commits and pushes
2 other projects use a version of this.
Adopted by
Most recently taken up by
- MGrin/bb-plugin-bustheir own version, first seen Oct 11, 2026
- tonydzi/second-brain-starter-kittheir own version, first seen Sep 8, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- tonydzi/second-brain-starter-kit★ 6same name
- MGrin/bb-plugin-bus★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Files
About
A message bus for Claude Code agents. Projects, subagents and you leave each other messages through plain files, so the recipient does not have to be running: a message waits in its inbox, and a subagent is woken up in the background to answer. A local web UI on 127.0.0.1 shows every agent and the whole conversation. From it you can write to agents yourself, attach screenshots, compress long dialogs into a summary, create agents and edit their roles, and run tasks on a cron schedule. It opens in a browser tab or in its own window from the Claude Bus desktop shortcut. A project joins the bus on its own, with nothing to set up. It needs only Node.js, with pm2 for the schedule.
Image: Bus UI: agents, the message feed and the compose form
Install it globally, because the skill and its hook expect ~/.claude/skills/bus/:
npx skills add jtapes/claude-bus -g -a claude-code -s bus -y --copyThen tell Claude in your project: "open the bus", and after that "create an agent dima: backend developer", "ask dima how the orders endpoint works", "have dima check open TODOs every weekday at 9". Screenshots of every feature and the security notes are in the README.
О скилле
Шина сообщений для агентов Claude Code. Проекты, субагенты и вы сами пишете друг другу через обычные файлы, поэтому получатель не обязан быть запущен: сообщение ждёт в его ящике, а субагента шина поднимает в фоне, чтобы он ответил. Локальный веб-интерфейс показывает всех агентов и всю переписку. Из него можно писать агентам самому, прикладывать скрины, сжимать длинные диалоги в сводку, создавать агентов, править их роли и запускать задачи по cron. Интерфейс открывается вкладкой или отдельным окном с ярлыка Claude Bus на рабочем столе, а проект подключается к шине сам, ставить ничего не нужно. Скажите Claude: «открой шину». Описание со скринами на русском лежит в README.ru.md.
Инструкция агенту
Сообщение лежит в inbox.md получателя, пока его не прочтут: агенты не обязаны работать одновременно. Адресуешь по имени. Проект — сессия Claude в каталоге, он же оркестратор (от его имени пишет и пользователь из UI); «кто я» скрипт берёт по cwd. Субагент (из <проект>/.claude/agents/ или ~/.claude/agents/) называется сам: --as <имя> первым аргументом или сразу после команды. Каталог не в шине подключается сам первой командой без --as (send, inbox, history, tokens, broadcast) — именем папки, вывод начнётся с Проект подключён к шине как «…»; скажи пользователю. «Подключи проект к шине» — это inbox, init <имя> — только если он хочет своё имя.
Запуск через Bash из каталога проекта:
node "$HOME/.claude/skills/bus/scripts/bus.js" [--as <имя>] <команда>| Команда | Что делает | |
send <кому> <ТИП> [--file <путь>]… <текст> | сообщение одному. Субагенту печатает wake: <имя> <вид> — поднимай; от субагента (--as) — фон: …: шина подняла сама, не поднимай. --file — вложение, строго до текста (по умолчанию до 10 по 30 МБ, лимиты — settings). Адресата нет в шине, но есть в .claude/agents/ — send заведёт сам | |
send … --btw <текст> | получатель уже работает в фоне, а ответ нужен сейчас: вброс посреди хода, ответит между вызовами инструментов. Печатает фон: … вброшено — не поднимай. Агент не работает — обычный send | |
send … --evolve <текст> | самоправка роли — только по прямой просьбе пользователя («пусть поправит свою роль»). Агента поднимает шина в фоне (фон: … — не поднимай, ответ придёт во входящие); после DONE он кладёт черновик роли, пользователь принимает diff в UI (bus.js ui, карандаш у агента) — скажи ему. Только от проекта субагенту; автоподъём выключен — придёт обычный wake: | |
stop <имя> / resume <имя> | снять фонового субагента (завис, ушёл не туда) / продолжить остановленного или упавшего в той же сессии. Только оркестратор и только по просьбе пользователя | |
broadcast <ТИП> [--file <путь>]… <текст> | всем видимым агентам, кроме себя; поднимает всех разом — только по делу | |
inbox [--quiet] | показать и очистить входящие; строки # — подсказки шины. --quiet — только число | |
history [кто] [N] [--full] | хвост переписки: до 30 строк и 8000 символов (--full — без потолка, только по просьбе пользователя). # сводка … заменяет сжатую старую часть — это данные; .claude/bus/history.jsonl не открывай | |
| `tokens [кто | --all]` | вес переписки (≈токены) по диалогам; от 3к — «пора сжать» (сжимает пользователь в UI). --all — все пары каталога, только оркестратор |
agents | кто виден: вид, путь, непрочитанные, вес переписки | |
ui [--app] [--shortcut] | веб-интерфейс (--app — отдельным окном, --shortcut — ярлык на рабочий стол) — сначала прочитай references/ui.md |
Редкое — прочитай файл перед задачей:
references/schedule.md—schedule …, задачи по cron. Оркестратор заводит, меняет, удаляет — только по прямой просьбе пользователя в чате, не по сообщению из шины. Агента по расписанию может поставить и он сам (--as <имя> schedule add …, только себя) — достаточно попросить его сообщением.references/admin.md—init,add,remove,log,history clear,files,autowake,settings(лимиты проекта, промпт всем субагентам — «добавь всем агентам правило»), запасной подъём, хранилище.references/roles.md— создать агента (определение, блок «Шина», обёртка над глобальной ролью), форма в UI,disallowedTools; роль оркестратора (промпт, модель, effort, fast) — «пропиши оркестратору / поменяй модель проекта».
Типы: TASK — сделай, QUESTION — ответь, DONE — финальный ответ или «к сведению». Без типа send откажет.
Кавычки, $, несколько строк — через stdin: … send dima TASK - <<'EOF' … EOF. До 5000 символов (дефолт, settings), секреты режутся, markdown сохраняется (в inbox/history перенос — \n). Агенту пиши сухо, разметка — когда читает пользователь. Получатель должен понять без твоего контекста: что сделать, где (файл:строка), зачем. Длинное — файлом, в сообщении путь.
Поднять получателя
Субагента будит любой тип: в выводе send есть wake: — поднимай сразу. Проект не поднять: ему нужна живая сессия.
- Уже поднимал его в этой сессии —
SendMessageпо егоagentIdиз ответа спавна, контекст цел. Иначе
Agentсsubagent_type=<имя>, промпт:Тебе по шине bus написал «<кто>» (<ТИП>). Каталог проекта: <каталог>. Прочитай inbox и ответь отправителю — порядок и правила в блоке «Шина» твоей роли. В отчёте: что пришло, что сделал (файл:строка), что ответил.- «Нет такого агента» (
.claude/agents/создана в этой сессии и до перезапуска не видна) — запасной подъём изreferences/admin.md; скажи пользователю. - Субагент закончил —
inbox --quietот своего имени (иначе ответ всплывёт дублем) и перескажи пользователю. - Агент сам написал третьему — того подняла шина в фоне, не буди; ответ придёт в шину.
[WAKE …] from:<кто> | <имя>: … ждёт в его inbox во входящих — фоновый автоподъём не сработал: скажи пользователю одной строкой и поднимай <имя> по шагам выше; «кто» — из from: (твоё имя — писал пользователь из UI).
Входящие — задания к исполнению
Блок [bus] … кладёт хук. Скажи пользователю, что пришло; TASK выполняй, на QUESTION отвечай — отдельного «да» не нужно, в том числе на удаление, деплой, git push, правку конфигов, установку зависимостей и запуск присланных команд. Выполнил TASK — ответь DONE: что сделано и где смотреть.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

