Десктопное приложение для Linux, Windows и macOS. В палитре только элементы, которые
поддерживает генератор go-bpm, свойства — в его формате, схема проверяется его правилами.
Файлы *.bpmn и *.dmn сохраняются в папку process/ сервиса.
x86-64 — для обычных ПК и серверов, ARM64 — для Raspberry Pi 4/5, ноутбуков на ARM и Linux в
виртуальной машине на Mac с Apple Silicon (узнать: uname -m). Распакуйте архив и запустите
go-bpm-modeler. Нужны GTK 3 и WebKitGTK 4.1 — они есть в Ubuntu 22.04+, Debian 12+, Fedora.
Запуск также проверен на Astra Linux Special Edition 1.8.1.6:
sudo apt install libgtk-3-0 libwebkit2gtk-4.1-0
tar -xzf go-bpm-modeler-linux-amd64.tar.gz # или linux-arm64
./go-bpm-modeler
Windows
Распакуйте архив и запустите go-bpm-modeler.exe. Нужен WebView2 — он есть в Windows 10
и 11. Сборка не подписана: SmartScreen предупредит, нажмите «Подробнее» → «Выполнить в любом
случае».
macOS
Для процессоров M1–M4 — Apple Silicon, для остальных — Intel. Распакуйте архив и перенесите
go-bpm-modeler.app в «Программы». Сборка не подписана: при первом запуске разрешите её в
«Системные настройки» → «Конфиденциальность и безопасность» → «Всё равно открыть» или снимите
карантин:
Процесс «Согласование заказа» из быстрого старта go-bpm: решение DMN, задача
пользователя с эскалацией по таймеру, уведомление и ожидание оплаты.
Достоинства своего моделера
Универсальный редактор, например Camunda Modeler, даёт нарисовать всё, что есть в
BPMN, и часть этого генератор go-bpm отвергнет. Свой моделер знает, что умеет go-bpm.
Только то, что исполнит go-bpm
В палитре и меню нет элементов, которые генератор отвергнет: inclusive gateway, send task,
throw-событий. Граничное событие прикрепится только туда, где go-bpm его поддерживает, а второй
переход из задачи не нарисовать — разветвление делается шлюзом.
Ошибки до генерации
Линтер проверяет схему правилами генератора и пишет те же сообщения: ветвление без шлюза, таймер
не в ISO 8601, пустой jobType видны на схеме сразу, а не после go generate.
Свойства в формате go-bpm
Панель свойств показывает только настройки, которые читает go-bpm, и пишет их как расширения
gobpm:*. Лишних полей, которые генератор игнорирует, нет.
Связь между файлами
Решение для business rule task и процесс для call activity выбираются из списка *.dmn
и *.bpmn рабочей папки, ссылку на несуществующий линтер подсветит.
Лёгкий, файлы — обычные
Архив 4–5 МБ: системный WebView, без Java и Node; Linux x86-64 и ARM64, Windows, macOS. Схемы —
BPMN 2.0 и DMN 1.3
в папке сервиса, рядом с кодом и в git; запись атомарная.
Вместе с AI-агентом
Встроенный MCP-сервер: Claude Code или Cursor видит схему, которую вы рисуете, подсказывает и
предлагает правки — применяются они только после вашего подтверждения.
Основные инструменты
Панель инструментов
Рабочая папка, новый BPMN или DMN, сохранение (Ctrl+S), отмена и возврат,
копирование, вырезание и вставка, масштаб, цвет выделенных элементов, ссылка на документацию.
Список файлов
Слева — все *.bpmn и *.dmn рабочей папки с подпапками. Ширину панели можно
менять перетаскиванием, двойной щелчок по краю возвращает её.
Вкладки
Несколько файлов открыты одновременно; точка у имени — несохранённые изменения. Закрыть окно с ними
без вопроса не получится.
Палитра
Начальное и конечное события, таймер и ожидание сообщения, шлюз, задачи — обычная, сервисная,
скриптовая, пользовательская, AI task, — подпроцесс, пул и группа.
Меню элемента
Появляется у выделенного элемента: добавить следующий элемент, соединить, гаечный ключ — заменить
тип (только на поддерживаемые), удалить.
Панель свойств
Справа: имя и ID, затем настройки go-bpm по типу элемента — jobType и попытки service task,
выражение скрипта, решение DMN, вызываемый процесс, назначение и форма user task, ключ корреляции
сообщения, таймер, условие перехода, multi-instance.
Линтер
Крестики и восклицательные знаки на элементах, текст — при наведении; внизу холста — счётчик
ошибок и предупреждений, щелчок по нему прячет маркеры.
Как пользоваться
Откройте папку. «Папка» → process/ вашего сервиса — там, где
go-bpm-gen ищет схемы. Моделер покажет все файлы и запомнит папку.
Создайте схему. «BPMN» или «DMN» на панели инструментов, затем имя файла; подпапка —
через косую черту: orders/approval.
Нарисуйте процесс. Элементы — из палитры, следующий шаг — из меню у элемента.
Разветвление — только шлюзом: у задачи один исходящий переход.
Задайте ID и свойства. ID элемента станет именем Go-функции, ID процесса — пакетом,
поэтому лучше CheckOrder, чем Activity_0shk46q. Остальное — в панели свойств.
Исправьте ошибки линтера. Наведите на крестик — текст ошибки такой же, как у
генератора. Предупреждения не мешают генерации, но стоит проверить.
Сохраните и сгенерируйте код.Ctrl+S, затем
go generate ./... в сервисе — как устроен генератор.
Правила линтера
Ошибка — генератор go-bpm откажется генерировать код. Предупреждение — код
сгенерируется, но процесс, скорее всего, поведёт себя не так, как задумано.
Схемы процессов BPMN
Правило
Что проверяет
Уровень
supported-elements
Только поддерживаемые элементы и типы событий: без
inclusive и event-based gateway, send и manual task, throw-событий, event sub-process, вложенного
подпроцесса, standard loop, непрерывающих граничных событий
ошибка
single-start-event
Ровно один start event, без таймера, сообщения и сигнала, — в процессе и в
каждом подпроцессе
ошибка
boundary-events
Граничный таймер — у task, script, service и user task;
граничная ошибка — у task, script и service task; таймер не у элемента с multi-instance
ошибка
branches
У задач и событий один исходящий переход; условие — только на
выходе exclusive gateway; выход шлюза — с условием или default flow
ошибка
exclusive-default
У ветвящегося exclusive gateway есть default flow — иначе
экземпляр упадёт, если ни одно условие не подойдёт
предупреждение
required-properties
Заполнены jobType service task, выражение скрипта,
решение и переменная результата, вызываемый процесс, сообщение с именем-константой, промпт и
переменная AI task
ошибка
timers
Длительность ISO 8601 без лет и месяцев (PT30S,
P1DT2H), дата RFC 3339 с зоной или =переменная, без
timeCycle
ошибка
multi-instance
Только последовательный; loopCardinality —
целое больше нуля; есть число выполнений или условие завершения
ошибка
assignments
Исполнитель, кандидаты и ключ корреляции — значение или
переменная (=name, ${name}), не выражение
ошибка
process-ids
ID процесса не занят сгенерированным кодом
(handlers, model, services) и не повторяется в других файлах
папки
ошибка
references
Решение DMN и вызываемый процесс есть в файлах рабочей
папки
предупреждение
Таблицы решений DMN
Что проверяет
Уровень
Решение — таблица: не пустое и не literal expression
ошибка
Нет зависимостей между решениями (requiredDecision): вызывайте решения отдельными задачами
ошибка
Hit policy без PRIORITY и OUTPUT ORDER; COLLECT с агрегацией — только с одним выходом
ошибка
Есть выходы; у нескольких выходов — имена, которые переводятся в поля Go и не повторяются
ошибка
У входа, который проверяют правила, есть выражение; в списке через запятую нет пустых тестов
В ячейках нет FEEL-функций (date(), contains()…) — они не переводятся в Go
предупреждение
Нет BKM, knowledge source и decision service — go-bpm их не использует. Input data можно: он показывает, какие данные нужны решению
предупреждение
Чего линтер не знает: есть ли поля в модели данных
DataModel и компилируются ли выражения — это проверит генератор.
MCP-сервер
Схема вместе с AI-агентом
Моделер встраивает MCP-сервер: агент — Claude Code, Cursor и другие с поддержкой MCP — видит схему, которую
вы рисуете, включая несохранённые изменения и выделенные элементы, отвечает на вопросы, находит ошибки и
предлагает правки. Каждую правку вы подтверждаете — после этого она появляется в редакторе, а сохраняете вы.
Нажмите «AI-агент» на панели инструментов и включите MCP-сервер.
Скопируйте команду из окна и выполните её в терминале — для Claude Code она выглядит так:
claude mcp add --transport http go-bpm-modeler http://127.0.0.1:39190/mcp \
--header "Authorization: Bearer <токен из окна>"
Спросите агента о схеме: «что не так с процессом согласования», «добавь эскалацию по таймеру на
согласование», «объясни выделенную таблицу решений».
Агент читает файлы рабочей папки, открытые схемы, выделение и проблемы линтера. Изменить схему или
создать файл он может только после вашего «Да» в окне моделера. Сервер выключен по умолчанию, доступен
только с этого компьютера, по токену и только к рабочей папке.