Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
Обновлено 10 сентября 2026 г.
Кодинг-агенты

OpenTag

Открытый local-first шлюз между тредами команды и кодинг-агентами. Пишешь @opentag почини баг в Slack или в issue - он запускает Claude Code, Codex или OpenClaw у тебя на сервере и отвечает в том же треде готовым pull request, а не отпиской. Поставили версию 0.10.0 на Cloud Server, разобрали установку, шесть исполнителей и где это ломается.

Август 2026 ~10 минут чтения Fatmetal Team
КОДИНГ-АГЕНТЫ Лицензия: Apache-2.0 Статус: запущен у нас, v0.10.0

Вердикт

Подходит
  • дев-командам, которые хотят звать кодинг-агента прямо из Slack, GitHub, GitLab или Linear
  • тем, кому важно, чтобы код и ключи не уходили в чужое облако (агент работает на своем сервере)
  • кто хочет один тег на несколько агентов сразу (Claude Code, Codex, Cursor, OpenClaw)
Не подходит
  • соло-разработчику - проще звать агента напрямую, без диспетчера
  • не-инженерной команде: вся модель заточена под PR, CI и репозитории
  • кому нужен образ «заказал и работает» - тут ручная настройка и три внешние зависимости
Мин. тариф: CPU2-RAM4-DISK50 Рекомендуем: CPU2-RAM4-DISK50 Сложность: medium Установка: ~2-4 мин Главный риск: интерактивный setup + 3 внешние зависимости Прод-готовность: с оговорками (публичный тоннель, ключи, аудит)
Что это

Что это и какую задачу решает

OpenTag - это «дежурный инженер по вызову», которого зовут тегом. Написал в Slack-треде или в GitHub-issue @opentag investigate this - и он запускает выбранного кодинг-агента у тебя на сервере, по твоему репозиторию, а потом возвращается в тот же тред с результатом: открытый pull request, зеленые проверки CI, мерж. Не пересказ «я все сделал», а ссылка на артефакт.

Ключевая идея - «Done требует доказательства». Исполнитель, отрапортовавший об успехе, для OpenTag еще не значит «готово»: он может держать задачу открытой, пока не выполнены заданные условия завершения (PR создан, чеки зеленые, изменение влито). Весь след пишется в локальный audit-ledger, а когда агент предлагает правку - в треде рисуется компактный «чек»: что изменится, безопасно ли, и кнопка Apply. Нажал - появился настоящий pull request.

Аудитория узкая, но понятная: дев-команды 5-50 человек, которым важен self-hosting и контроль над кодом. Это не универсальный чат-бот, а командная диспетчерская над кодинг-агентами.

TypeScriptNode.js 22ACPCLI + демонsystemd --user
Сравнение

Чем отличается от облачных аналогов

Соседи по нише - проприетарные «human + agent» сервисы вроде Claude Tag и облачные помощники в репозитории. Сравниваем по тому, что влияет на выбор.

ПараметрOpenTag (self-hosted)Облачный SaaS
Где выполняется агентна вашем серверев чужом облаке
Где код и ключиостаются на машинеуходят провайдеру
Выбор агента6 исполнителей + любой ACPодин вендор
Модель ценысвой сервер, без подписки за местоподписка за пользователя
Vendor lock-inнет, Apache-2.0да
Готовностьearly-stage, v0.10.0зрелые
Под капотом

Тех-стек и архитектура

OpenTag написан на TypeScript и распространяется как npm-пакет @opentag/cli. Это не docker-веб-приложение, а CLI плюс фоновый демон: на Linux он живет под systemd --user, на macOS - под LaunchAgent. Веб-дашборда нет - управление идет из чата и через терминал.

Ядро - диспетчер, который принимает событие из платформы (упоминание в треде), собирает контекст-пакет по репозиторию и запускает исполнителя. Все исполнители говорят по единому протоколу ACP (Agent Client Protocol), поэтому тег не привязан к одному вендору. Из коробки заявлено шесть исполнителей плюс любой кастомный ACP-агент:

Вывод команды opentag executors: шесть кодинг-агентов - Codex, Claude Code, Cursor, OpenCode, Hermes, OpenClaw
opentag executors, v0.10.0 - Codex, Claude Code и OpenCode готовы через ACP-пакеты; Cursor, Hermes и OpenClaw требуют своего бинаря на PATH

Codex, Claude Code и OpenCode поднимаются сразу - OpenTag тянет их закрепленные ACP-пакеты через npx. Cursor, Hermes и OpenClaw помечаются not found, пока их бинарь не окажется на PATH: их надо ставить отдельно. Executor echo - технический, для отладки, реального агента не запускает.

Конфигурация

Минимальная конфигурация

Сам диспетчер легкий: тяжесть - в агенте, которого он запускает под задачу, и в inference, который обычно внешний.

Node.js>= 22.14 (ставили 22.23)
Установка @opentag/cli на диске~113 МБ
Диспетчер в простоелегкий, агенты - на запросе
Рекомендуем тарифCPU2-RAM4-DISK50
Тариф FatmetalCPU2-RAM4-DISK50 - 500 ₽/мес
i

Важно: запас по памяти нужен не диспетчеру, а самому кодинг-агенту в момент прогона (сборка, тесты, git-операции в отдельном worktree). Если inference внешний (Anthropic, OpenAI), GPU не нужен, и тарифа CPU2-RAM4-DISK50 (500 руб/мес) под сам OpenTag хватает.

Развертывание

Развертывание на Fatmetal

Базовый путь - Cloud Server + Ubuntu 24.04, дальше два npm-шага. Docker не нужен.

  1. Поставить Node 22 и CLI

    curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
    sudo apt-get install -y nodejs
    sudo npm install -g @opentag/cli@latest

    Проверка: opentag --version - у нас 0.10.0.

  2. Пройти setup

    opentag setup

    Интерактивный визард спросит: язык, платформу (Slack/GitHub/...), исполнителя, локальный проект, креды платформы и как держать демон запущенным. Флаги --platform, --executor, --project предзаполняют ответы, но визард все равно ждет подтверждений (см. «Где может сломаться»).

  3. Проверить и запустить

    opentag doctor          # диспетчер, привязки, исполнители
    opentag executors       # какие агенты готовы
    opentag platforms       # какие платформы настроены
    opentag service start   # фоновый демон (systemd --user)

    Дальше - упоминание из подключенной платформы: @opentag investigate this.

Вывод opentag --help: список команд OpenTag - setup, doctor, executors, platforms, service
opentag --help, v0.10.0 - управление из чата и терминала, отдельной веб-панели нет
Замеры

Что измерили и с чем работает

Стенд: Fatmetal Cloud Server CPU2-RAM4-DISK50, Ubuntu 24.04.4, Node 22.23, @opentag/cli 0.10.0, август 2026.

Node.js на стендеv22.23.2
Установка CLI на диске~113 МБ
Установка Node + CLI~2-4 мин (РФ-сеть)
Готовы из коробкиCodex, Claude Code, OpenCode
Платформы с визардом8 (Slack, GitHub, GitLab, Linear, Lark, Telegram, Discord, Teams)

Уровень поддержки платформ разный. Полноценно (события, ответы, статус-апдейты, действия) - Slack и GitHub; GitLab, Linear и Lark - без части возможностей; Telegram, Discord и Teams вендор помечает как превью.

Вывод команды opentag platforms: восемь платформ с готовым визардом настройки и их возможности
opentag platforms, v0.10.0 - восемь платформ, у Slack самая полная поверхность
i

Главное: сам OpenTag - легкий control-plane, его footprint - это Node-процесс и ~113 МБ на диске. Реальный вес приходит в момент прогона задачи вместе с кодинг-агентом; inference обычно внешний, поэтому GPU на VM не нужен.

Проверено на версии 0.10.0, август 2026. Проект early-stage, на новых версиях поведение может отличаться.

Подводные камни

Где может сломаться

Реальные грабли, на которые наткнулись при запуске 0.10.0.

!

Три внешние зависимости. Чтобы тег заработал, клиенту нужны три вещи, которых нет в самом OpenTag: ключ провайдера под агента (Anthropic/OpenAI), приложение платформы с OAuth (Slack app, GitHub app) и локальный репозиторий. Пустая VM «из коробки» бесполезна, пока это не привязано руками.

!

Публичный тоннель для вебхуков. Для доставки событий из GitHub (и Events API Slack) нужен публично доступный адрес. На чистой VM это отдельная настройка: тоннель или обратный прокси с доменом и TLS.

!

Не все агенты «из коробки». Codex, Claude Code и OpenCode подтягиваются через npx, а Cursor, Hermes и OpenClaw нужно ставить отдельным бинарем - иначе opentag executors покажет not found.

◆ Where should OpenTag listen? │ ● Slack ○ GitHub ○ GitLab ...

Причина. Даже с полным набором флагов (--platform, --executor, --project) команда opentag setup все равно уходит в интерактивный визард и ждет подтверждения выбора. Конфиг записывается только после прохождения мастера.

Решение. Держать живой терминал (TTY) при первичной настройке, либо оборачивать в expect. Именно из-за этого OpenTag плохо ложится в полностью автоматический headless-провижн - образ «заказал и работает» для него не собрать.

Безопасность

Безопасность и обновления

Главный аргумент OpenTag - local-first: код, ключи и полные трейсы прогонов остаются на вашей машине, а в платформу уходит только то, что нужно, чтобы ответить в треде и применить подтвержденное действие. Каждый прогон пишет локальный audit-ledger (исходное событие, решение о допуске, снимок контекста, артефакты, журнал доставки), доступный через opentag status --run <id>. Применение правки проходит через явный Apply в треде - агент не мутирует систему-источник без подтверждения.

Что закрыть перед продом: тоннель/обратный прокси с TLS для вебхуков, хранение ключа провайдера в секретах (не в открытом конфиге), ограничение, какие каналы и репозитории слушает демон. Обновление - через npm:

sudo npm install -g @opentag/cli@latest
opentag service restart
i

РФ-специфика: если исполнитель - Claude Code или Codex, ключ провайдера (Anthropic/OpenAI) из России достается через egress-прокси - агенту прописывают HTTPS_PROXY, и запросы уходят через зарубежный выход. Это снимает географические ограничения на доступ к модели.

Рядом

Связь с другими стеками

  • Обратный прокси / тоннель - Caddy или Nginx для публичного адреса и TLS под вебхуки GitHub и Slack.
  • Egress-прокси - чтобы ключ Anthropic/OpenAI доставался из РФ; агенту прописывается через переменные окружения.
  • OpenClaw - один из шести штатных исполнителей; если нужен универсальный агент, а не только кодинг, его можно подключить как ACP-бэкенд.
  • GitHub / GitLab / Linear - трекеры, из которых прилетают задачи; результат возвращается туда же как PR или комментарий.
Честно

Когда это НЕ ваш выбор

Вы соло-разработчик

Если агент нужен вам одному, диспетчер - лишний слой. Проще поставить кодинг-агент напрямую и звать его в своем терминале или личном чате, без OpenTag посередине.

Команда не инженерная

Вся модель завершения построена на PR, зеленом CI и мерже, а платформы - это GitHub, GitLab, Linear. Для не-кодовых задач ценность резко падает.

Нужен продукт «под ключ»

Проект early-stage: production hardening, OAuth и мульти-хост еще дорабатываются. Если вам нужен стабильный образ «заказал и сразу работает», а не сборка руками с тремя зависимостями - подождите зрелых версий.

FAQ

Частые вопросы

Нужен ли Docker?

Нет. OpenTag ставится как npm-пакет и работает как демон под systemd --user. Docker не требуется.

Какой Node нужен?

22.14 или новее. На стенде стоял Node 22.23, установка CLI заняла ~113 МБ на диске.

Каких агентов он умеет запускать?

Шесть встроенных: Codex, Claude Code, Cursor, OpenCode, Hermes, OpenClaw - плюс любой ACP-совместимый. Codex, Claude Code и OpenCode готовы из коробки.

Можно ли поднять его полностью скриптом, без рук?

Не до конца: opentag setup остается интерактивным даже с флагами. Для первичной настройки нужен живой терминал или обертка expect.

Уходит ли мой код в облако?

Нет. Модель local-first: код, ключи и трейсы остаются на вашей машине, в платформу уходит только сообщение для ответа и подтвержденные действия.

Как звать агента из Anthropic/OpenAI из России?

Через egress-прокси: исполнителю прописывают HTTPS_PROXY, и запрос к модели уходит через зарубежный выход.

Это готово для продакшена?

С оговорками. Проект early-stage (v0.10.0); перед продом нужны тоннель с TLS, секреты для ключей и ограничение слушаемых каналов.

Итог

OpenTag превращает упоминание в треде в реального кодинг-агента, который работает на вашем сервере и приносит pull request с доказательством, а не отписку. Сильные стороны - выбор из шести исполнителей по единому протоколу, local-first и гейты завершения. Слабые - early-stage, интерактивная настройка и три внешние зависимости. Для дев-команды, которой важен self-hosting, это рабочий инструмент уже сейчас; соло-разработчику проще звать агента напрямую.

Анонсы новых разборов в Telegram-канале Новые гайды и карточки в маркетплейсе первыми @fatmetal_channel →

Этот стек у нас запущен на тарифе X. Нашли баг в гайде - напишите, поправим в течение дня.