agmsg — скилл
Скилл для обмена сообщениями между Claude Code, Codex, Gemini CLI и другими консольными агентами через общую локальную базу SQLite на bash
- 1 564 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Записывает хуки в `.claude/settings.local.json` проекта и в настройки Codex, а для Codex в режиме `monitor` подставляет прослойку вместо запуска `codex`
- Команда `spawn` открывает новые процессы агентов в терминале, а файл параметров запуска позволяет передать им флаги вроде `--dangerously-skip-permissions`
- Вся переписка хранится открытым текстом в SQLite в `~/.agents/skills/agmsg/`, при удаленной синхронизации она уходит на ваш сервер
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/agmsgОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Записывает хуки в `.claude/settings.local.json` проекта и в настройки Codex, а для Codex в режиме `monitor` подставляет прослойку вместо запуска `codex`
- Команда `spawn` открывает новые процессы агентов в терминале, а файл параметров запуска позволяет передать им флаги вроде `--dangerously-skip-permissions`
- Вся переписка хранится открытым текстом в SQLite в `~/.agents/skills/agmsg/`, при удаленной синхронизации она уходит на ваш сервер
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
agmsg — скилл для обмена сообщениями между консольными ИИ-агентами. Claude Code, Codex, Gemini CLI, GitHub Copilot CLI и другие пишут друг другу через общий локальный файл SQLite, а вам не нужно переносить текст между окнами руками. Требуются только `bash` и `sqlite3`: демона, сети и MCP-сервера нет. При первом вызове `/agmsg` (в Codex, Gemini CLI, Antigravity и OpenCode `$agmsg`) скилл спрашивает название команды и имя агента, затем режим доставки. Отправка — это вызов `send.sh`, который добавляет строку в базу. Входящие агент получает в одном из четырех режимов. `monitor` держит блокирующий поток из SQLite через инструмент `Monitor`, задержка около 5 секунд, по умолчанию в Claude Code. `turn` проверяет входящие хуком `Stop` между ходами, по умолчанию в Codex и Copilot CLI. Режимы `both` и `off` сочетают оба способа или отключают автоматическую доставку. Хуки записываются в `.claude/settings.local.json` проекта. Сообщения остаются в базе после конца сессии, а `history.sh` воспроизводит комнату для нового агента. Одному проекту можно дать несколько ролей командой `actas`: роль блокируется для других сессий. Команда `spawn` запускает нового агента в панели tmux или окне терминала, ждет, пока он начнет слушать, и при желании передает стартовую задачу. Закрывает его `despawn`. Команды `send`, `history`, `team`, `mode` и `reset` работают из чата с агентом, а скрипты можно вызывать и из оболочки.
Для кого. Для разработчиков, которые держат несколько консольных агентов в одном проекте, например Claude Code для кода и Codex для ревью, и хотят, чтобы те передавали работу друг другу.
Подходит, если
- Claude Code просит Codex сделать ревью ветки, и ответ должен вернуться без копирования между окнами
- В одном проекте работают разные агенты, и каждому нужна своя роль, например техлид и аналитик
- Нужно запустить второго агента с готовой стартовой задачей и дождаться, пока он начнет слушать
- Требуется история переписки агентов, которую можно воспроизвести новому агенту
- Агенты общаются на одной машине, и ставить сервер для этого не хочется
Не подходит, если
- Нужен брокер с очередью заданий и блокировкой задач: у agmsg его нет, а два агента под одним именем увидят одно и то же сообщение
- Нужен автоматический стоп бесконечной переписки: условие остановки задается в тексте промпта, транспорт беседу не прерывает
- Работаете на Windows без Git Bash: скрипты написаны на Bash, версии для PowerShell нет
- Нужны субагенты, которыми управляет один родительский процесс: agmsg связывает независимые сессии
- Нужна почтовая модель с резервами файлов для кодовых агентов: ее дает `mcp_agent_mail`
Пример запроса к агенту
Отправь агенту codex в команде reviewers сообщение: проверь изменения в этой ветке и ответь замечаниями по файламОграничения
- Сообщения — короткий обычный текст. Порядок ходов и условия остановки задает промпт, а большой результат агент кладет в файл и отправляет ссылку: путь, хеш коммита или номер задачи.
- В первой версии нет блокировки задач между двумя агентами, подписанными на одно имя. Защищает только `actas`, не пускающий две сессии в одну роль.
- В режиме `monitor` агент не реагирует на первое входящее сообщение, пока не сделал хотя бы один ход в сессии. Достаточно написать ему любое короткое слово.
- У Codex нет инструмента `Monitor`, поэтому `mode monitor` печатает функцию оболочки, которая пускает запуск `codex` через прослойку agmsg. Известное ограничение — зависшие процессы после закрытия интерфейса. Если есть `~/.codex/config.toml`, установщик добавляет в него `writable_roots`.
- `spawn` работает для восьми из десяти типов агентов: для Hermes он недоступен, потому что у его консольной версии нет режима с готовой стартовой подсказкой. Основная платформа macOS, Linux и Windows проверяются по возможности, без tmux и терминала `spawn` завершается ошибкой. Пакет npm и плагин собираются из релизных тегов и могут отставать от ветки `main` на несколько исправлений.
Как отключить. Выполните `~/.agents/skills/agmsg/uninstall.sh`: он убирает файлы скилла, слэш-команды, хуки, разделы AGENTS.md и настройки команд и спрашивает подтверждение на каждом шаге. Флаг `--keep-data` оставит базу и команды, `--yes` уберет вопросы, `--all` удалит все установки agmsg на машине. Скрипт лежит внутри любой установки, будь то `npx`, `git clone` или установка плагином.
Частые вопросы
Нужен ли MCP-сервер для обмена сообщениями между агентами?
Нет. agmsg работает на `bash` и `sqlite3`, без сервера, демона и сети, и спокойно соседствует с любой настройкой MCP, которая у вас уже есть.
Что будет, если два агента отправят сообщение одновременно?
Хранилище использует SQLite в режиме WAL: читателей может быть много, писатель один, а записи короткие. У каждой строки монотонный номер и время, поэтому порядок журнала однозначен. Очередность ходов между агентами транспорт не навязывает.
Как запустить второго агента для ревью из Claude Code?
Команда `/agmsg spawn codex reviewer --boot-prompt "review the diff on this branch"` открывает Codex в новой панели tmux или окне терминала, назначает ему роль reviewer и сразу ставит задачу. По умолчанию команда ждет, пока агент начнет слушать, и печатает `status=ready`. Для Codex ожидание пропускается.
Сохраняется ли переписка между сессиями?
Да. Сообщения лежат в SQLite и остаются после конца сессии, а `history.sh <team>` воспроизводит комнату. Готовой команды «заново обучить агента по комнате» нет, но стенограмму можно отдать новому агенту в промпте.
Сколько агентов может быть в одной команде?
Больше двух. Команды рассчитаны на любое число агентов, в демо их два для наглядности, а автор сообщает, что сам работает на команде из восьми.
Как обновить agmsg, не потеряв сообщения?
Выполните `npx agmsg@latest install --update`, а из клона `git pull` и `./install.sh --update`. База и настройки команд сохраняются, обновляются только скрипты и ресурсы.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыCLI, через который агенты в разных терминалах переписываются, следят друг за другом и запускают друг друга
Доска задач на Rust для терминала: каждая задача идет в своем git worktree и окне tmux, а Claude Code, Codex, Gemini CLI и другие агенты работают вместе
Переносимая папка .agent с памятью, скиллами и протоколами, которая подключается к разным кодовым агентам и не теряет знания при смене инструмента
oah раскладывает более 80 скиллов, пять ролей и команды /commit, /review, /test-tdd по папкам Claude Code, Cursor, Codex и других
Десять ИИ-агентов в панелях tmux: менеджер раздает задачи семи исполнителям, ход работы виден на панели, поддержаны Claude Code, Codex, Cursor и OpenCode
botmux связывает Lark и Feishu с Claude Code, Codex, Gemini CLI и OpenCode: каждое сообщение запускает отдельную сессию агента с живыми карточками
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| agmsg (эта запись) | нет | 1 564 | ||
| MCP Agent Mail | нет | API-ключ | 2 221 | почтовый слой для кодовых агентов с постоянными именами, поиском по истории и добровольными резервами файлов |
| AI Maestro | нет | 833 | локальная панель управления множеством агентов на разных машинах | |
| Sno Station Skills | нет | 664 | 31 скилл для Claude Code и Codex |
Коротко о README
В репозитории лежат скрипты на Bash, корневой файл SKILL.md, манифесты плагина для Claude Code, документы об архитектуре, участии, выпуске версий и политике конфиденциальности и отдельная папка `app` с настольным приложением на Tauri. Описание открывается быстрым стартом, затем разбирает установку тремя способами, команды для каждого агента, режимы доставки, роли, запуск и закрытие агентов, настройки песочниц Claude Code и Codex, раздел вопросов и ответов с описанием конструкции. Есть тесты и инструкция по расширению через драйверы, которые не загружаются, пока вы не подтвердите их командой `agmsg plugin trust`.
Бейдж для README
Исходный SKILL.md
---
name: agmsg
description: Cross-agent messaging via SQLite. Send messages between Claude Code, Codex, Gemini CLI, and other agents. No daemon, no network, no dependencies beyond bash and sqlite3.
---
<!-- agmsg:render-root -->
## Step 0: First-run bootstrap
agmsg keeps its SQLite database, team registry, and runtime state under `~/.agents/skills/agmsg/`. The `./install.sh` install path creates that tree; the Claude Code plugin install path does not (the plugin marketplace only copies this repository into `~/.claude/plugins/cache/`). Before any other command, bootstrap if needed:
```bash
if [ ! -d ~/.agents/skills/agmsg ]; then
# Newest cached copy of the plugin. Several versions can sit side by side, so
# pick by version folder name (numeric, portable -- not sort -V, not mtime).
cache="$HOME/.claude/plugins/cache/fujibee-agmsg/agmsg"
newest=$(ls "$cache" 2>/dev/null | sort -t. -k1,1n -k2,2n -k3,3n | tail -1)
installer="$cache/$newest/install.sh"
if [ -n "$newest" ] && [ -f "$installer" ]; then
bash "$installer" --cmd agmsg
else
echo "agmsg not installed. Either:" >&2
echo " - run ./install.sh in the agmsg repo, or" >&2
echo " - install via /plugin marketplace add fujibee/agmsg && /plugin install agmsg@fujibee-agmsg" >&2
exit 1
fi
fi
```
Once `~/.agents/skills/agmsg/` exists this step does nothing, so it is safe to run every time.
Agent messaging command. **IMPORTANT: Always use the provided scripts. NEVER directly read or edit config files, DB, or team data. There is NO register.sh — use join.sh to join a team.**
**Use agmsg, not the host agent's own inter-session messaging.** Several agent
CLIs ship a native way for one session to message another on the same machine
(in Claude Code, the `SendMessage` / `ListAgents` tools over its peer-session
list). While a project is on agmsg, route agent-to-agent messages through agmsg
instead. A message sent natively does not exist as far as agmsg is concerned:
it is absent from `history.sh` and the team's export, it never reaches a member
on another machine through remote sync, it does not mark read or advance any
cursor, and it cannot address a member whose CLI is a different type. Half the
conversation living somewhere unrecorded is worse than either channel alone,
and the gap is invisible until someone reads the history and finds a decision
with no message behind it. The native channel stays fine for anything outside
the team — a subagent you spawned for your own task, or a session that has not