Airsc is free for everyone. If it helps you, support it with $2–$20.

Support
PluginCautionBuilding web & mobile appsAdvanced

unica

IngvarConsulting · IngvarConsulting/unica

Plugin for Codex and Claude Code adding skills and an MCP server to create and check 1C:Enterprise metadata, forms, roles and reports, run 1C, and search BSL code.

Unica (Ю́ника) — публичный плагин Codex и Claude Code для разработки на 1С:Предприятии.

215 stars31License: No licenseUpdated 12 days ago0 opens

Preview

▍

What you can do with it

  • Have the agent generate and validate 1C metadata and forms
  • Search a BSL codebase for existing logic before changing it
  • Build external data processors and reports for 1C

Safety check

Caution

Usable, but read the notes first.

  • ●No clear license: check with the author before using it in a commercial product.

Automated scan of the repo files. Always review code you run.

From the README

Unica

Unica (Ю́ника) — плагин для Codex, Claude Code и ZCode для разработки на 1С:Предприятии. Он добавляет навыки и один MCP-сервер unica, через который агент создаёт и проверяет метаданные, формы, роли, СКД, внешние обработки и отчёты, запускает 1С и ищет BSL-код.

Все три хоста получают один и тот же каталог плагина: манифесты лежат рядом, а .mcp.json определяет корень плагина по той переменной, которую подставляет конкретный хост.

Требования

  • один из агентов:
    • Codex CLI;
    • Claude Code;
    • ZCode Desktop с поддержкой .zcode-plugin (контракт проверяется для 3.14.4);
  • стандартный Git, включая Git for Windows на Windows;
  • платформа 1С только для операций, которым реально требуется запуск 1С.

Поддерживаемые версии платформы 1С

Версия платформыСтатусЧто это означает
8.5.1.x, 8.5.4.xПланируетсяХотим добавить в ближайшее время.
8.3.27.xПоддерживаетсяUnica поддерживает все актуальные релизы ветки 8.3.27.
8.3.26.x и нижеНе планируетсяПомогаем мигрировать на 8.3.27. Если вам действительно нужна более старая версия, создайте issue и опишите причину — нам важно понимать такой сценарий.

Установка

Codex

codex plugin marketplace add IngvarConsulting/unica-marketplace --ref main
codex plugin add unica@unica

После установки откройте new Codex task: список навыков и MCP-конфигурация фиксируются на границе новой задачи, а не подменяются в уже работающей сессии.

Claude Code

claude plugin marketplace add IngvarConsulting/unica-marketplace
claude plugin install unica@unica

Затем выполните /reload-plugins либо начните новую сессию. Навыки становятся доступны с префиксом плагина, например /unica:meta-info.

ZCode

Пакет содержит нативный .zcode-plugin/plugin.json, общий .mcp.json и те же навыки и runtime, что для Codex и Claude Code. Отдельный MCP-сервер, launcher или преобразователь аргументов для ZCode не требуется.

В ZCode откройте Plugin Marketplace → Add → Add Plugin Marketplace и добавьте каталог выпуска, содержащего ZCode-манифест. Для локальной проверки используйте корень собранного marketplace, а не исходный plugins/unica: его .mcp.json предназначен для разработки через Cargo. В Personal найдите плагин и установите его; установленными плагинами управляет Settings → Plugins. Оставьте включённой только одну установку Юники, чтобы не запускать две версии.

После установки начните новую задачу и попросите вызвать unica.run с {} без запуска 1С. Ожидается словарь операций текущей версии, а не требование заполнить все аргументы. Уже открытая сессия может хранить старую схему runtime.execute; она не проверяет новый пакет. Успешная упаковка или прямой tools/list не заменяет этот тест через выбранную модель и провайдера. Подробности локальной проверки — в CONTRIBUTING.md.

Доставка ядра и движков

При старте MCP bootstrap скачивает только ядро unica из релиза IngvarConsulting/unica для текущей ОС и архитектуры. После запуска ядро доставляет нужный движок из закреплённого релиза unica-toolchain перед первым вызовом, которому этот движок действительно нужен. Архив, ассет и каждый файл проверяются по SHA-256; неполная или повреждённая загрузка не получает маркер готовности.

Если доставка движка не завершилась внутри ограниченного окна, вызов возвращает work.status=working и не запускает обработчик. Повторите тот же предметный вызов: отдельного публичного инструмента установки нет. Параллельные вызовы делят одну загрузку.

Корень кэша зависит от хоста:

ХостКаталог кэша
Codex$CODEX_HOME/unica/runtimes, при стандартном CODEX_HOME — ~/.codex/unica/runtimes
Claude Code${CLAUDE_PLUGIN_DATA}/runtimes, по умолчанию — ~/.claude/plugins/data/unica-unica/...; этот каталог переживает обновление плагина
ZCode${ZCODE_PLUGIN_DATA}/runtimes; хост также передаёт совместимый CLAUDE_PLUGIN_DATA с тем же значением

Явные UNICA_RUNTIME_CACHE_DIR и UNICA_PROVIDER_STATE_DIR сохраняют приоритет над настройками хостов. При запуске через bootstrap состояние провайдеров без переопределения размещается в <каталог данных плагина>/unica/provider-state. Локальный debug-пакет запускает ядро напрямую: без UNICA_PROVIDER_STATE_DIR оно использует ~/.unica/provider-state, а не каталог данных плагина. Оба пути — корни хранилища, не идентичность рабочего проекта. Рабочую папку ZCode передаёт через ZCODE_PROJECT_DIR и совместимый CLAUDE_PROJECT_DIR; конфликт значений даёт отказ, а не выбор чужого проекта. Эти переменные фиксируются при запуске сервера. Если клиент в сессии до протокола 2026-07-28 объявил MCP roots, Unica заново запрашивает их на каждом предметном вызове и берёт первый root. Так новый проект сессии подхватывается без перезапуска сервера.

Внутри корня каждая неизменяемая поставка лежит по адресу /<version>--/<target>. Поэтому пересобранные байты с той же версией не перезаписывают прежний движок. Для образа, который после сборки работает без сети, заранее доставьте ядро и все движки:

/bootstrap/bin/<target>/unica-bootstrap prefetch --plugin-root 

Обновление

Codex

codex plugin marketplace upgrade unica
codex plugin remove unica@unica
codex plugin add unica@unica

Затем откройте new Codex task: уже работающая сессия не загрузит обновлённые навыки и MCP-конфигурацию.

Отдельной команды codex plugin upgrade в поддерживаемом CLI нет, поэтому переустановка плагина после обновления каталога является намеренным шагом.

Claude Code

claude plugin marketplace update unica
claude plugin update unica@unica

Затем выполните /reload-plugins.

ZCode

В источниках mark

View source on GitHub