- scripts/harness: CLI (skills, agents, MCP, конфиг Hermes, рестарт, статус) - agents/: leader, fixer, researcher, tester + devops, admin - catalog/jakubkrehel-skills: submodule → github.com/jakubkrehel/skills - README: usage, форматы, таблица совместимости
8.6 KiB
Harness 🛠️
Универсальный менеджер скиллов, агентов, MCP-серверов и конфигов для Hermes и OpenCode.
Репа-каталог, где живут ссылки на полезные skills, MCP-серверы, тулзы и агенты — с единым скриптом управления.
dev/harness/
├── agents/ # Определения агентов OpenCode (leader, fixer, devops, admin, ...)
├── catalog/ # Скиллы: git submodule'ы на внешние репы
│ └── jakubkrehel-skills/ # submodule → github.com/jakubkrehel/skills (11 скиллов UI)
├── scripts/
│ └── harness # Основной CLI-скрипт
└── README.md
Быстрый старт
./scripts/harness status # Статус всей среды
./scripts/harness list catalog # Что есть в каталоге скиллов
./scripts/harness list skills # Установленные скиллы
./scripts/harness list agents # Агенты: доступные в репо + установленные
./scripts/harness list mcp # MCP-серверы Hermes
Команды
Установка скиллов
# Установить скилл из каталога
./scripts/harness install skill jakubkrehel-skills better-ui --target opencode
./scripts/harness install skill jakubkrehel-skills better-ui --target hermes
./scripts/harness install skill jakubkrehel-skills better-ui --target all
# Можно писать через слэш
./scripts/harness install skill jakubkrehel-skills/better-ui --target all
# Все скиллы из репозитория разом
./scripts/harness install skill jakubkrehel-skills --all --target opencode
./scripts/harness install skill jakubkrehel-skills --all --target all
Скиллы ставятся симлинками в соответствующие директории:
| Агент | Куда ставится |
|---|---|
| Hermes | ~/.hermes/skills/catalog/<name>/ |
| OpenCode | ~/.claude/skills/<name>/ |
| OpenCode | ~/.config/opencode/skills/<name>/ |
Управление скиллами
./scripts/harness list skills # Все скиллы
./scripts/harness list skills --target hermes # Только Hermes
./scripts/harness remove skill better-ui # Удалить отовсюду
./scripts/harness remove skill better-ui --target hermes
Агенты (только OpenCode)
Источник — harness/agents/*.md. Имя агента = имя файла без .md.
# Список: что есть в репо + что уже установлено
./scripts/harness list agents
./scripts/harness list agents --scope global # только глобальные
./scripts/harness list agents --scope project --project ~/work/myrepo
# Установить одного / всех
./scripts/harness install agent leader # в ~/.config/opencode/agents/
./scripts/harness install agent --all --scope global # всех, глобально
./scripts/harness install agent devops --scope project --project ~/work/myrepo
# Удалить
./scripts/harness remove agent leader # отовсюду
./scripts/harness remove agent leader --scope global
--scope |
Куда ставится |
|---|---|
global (по умолчанию) |
~/.config/opencode/agents/<name>.md |
project |
<project>/.opencode/agents/<name>.md (по умолчанию — cwd) |
Ставятся симлинками, так что правки в репе сразу видны OpenCode. Все агенты имеют
mode: all (кроме leader — primary), чтобы лидер мог вызывать их как сабагентов.
Hermes агентов не поддерживает — только runtime-делегирование через
delegate_task. Пользовательских определений агентов у него нет, поэтомуinstall agentработает только для OpenCode.
MCP-серверы (Hermes)
# Добавить MCP по URL (HTTP SSE)
./scripts/harness configure hermes mcp add my-server http://localhost:8000/mcp
# Добавить MCP через команду (STDIO)
./scripts/harness configure hermes mcp add github npx \
--env GITHUB_TOKEN=ghp_xxx \
--arg -y --arg @modelcontextprotocol/server-github
# Список MCP
./scripts/harness list mcp
# Удалить MCP
./scripts/harness configure hermes mcp rm my-server
Конфигурация Hermes
# Посмотреть конфиг
./scripts/harness configure hermes
# Установить параметры
./scripts/harness configure hermes --set model.default=gpt-4o
./scripts/harness configure hermes --set model.provider=openai
./scripts/harness configure hermes --set agent.max_turns=200
После изменения конфига скрипт автоматически перезапускает Hermes.
Установка/обновление бинарников
./scripts/harness install opencode # curl-установщик opencode.ai
./scripts/harness install hermes # hermes update + рестарт сервисов
Перезапуск
./scripts/harness restart hermes # systemctl --user restart hermes-gateway + webui
./scripts/harness restart opencode # systemctl --user restart opencode + openchamber
Обновление каталога
./scripts/harness update catalog # git pull во всех репах внутри catalog/
Как добавить скилл в каталог
Каталог — это git submodule'ы: в репе фиксируется ссылка на внешний репозиторий и точный коммит, а не копия файлов.
git submodule add https://github.com/user/skills-repo.git catalog/user-skills
git commit -m "chore: add user-skills to catalog"
После этого harness list catalog покажет все найденные скиллы, а
harness update catalog подтянет свежие коммиты во всех submodule'ах.
Обычный клон (git clone внутрь catalog/) тоже работает — update catalog
обновит его через git pull, но такой каталог не попадёт в коммит репы
(вложенная репа не станет submodule автоматически).
Как добавить агента
Положить .md файл в agents/ репозитория — и он сразу виден через harness list agents.
Формат — как у OpenCode:
---
description: "Что делает агент и когда его звать"
mode: all # primary | subagent | all
temperature: 0.1
steps: 100
color: "#2563eb"
permission:
task: deny
bash: allow
edit: allow
---
# Имя агента
Тело промпта: роль, принципы, порядок работы, что НЕ делать, формат ответа.
mode: all— можно и вызвать напрямую, и делегировать изleader(сабагент).mode: primary— только как основной агент (Tab в UI). Такой агент не появится вtask-инструменте лидера: OpenCode фильтрует список сабагентов поmode !== "primary".
Поддерживаемые форматы
- Скиллы —
SKILL.mdс YAML frontmatter (name,description); родной формат OpenCode и Hermes. Скиллы изcatalog/*/skills/<name>/SKILL.mdвидны черезharness list catalog. - Агенты —
<name>.mdс frontmatter (description,mode, ...); формат OpenCode. Лежат вagents/<name>.md.
Совместимость
| Фича | Hermes | OpenCode |
|---|---|---|
| Skills (SKILL.md) | ✅ ~/.hermes/skills/ |
✅ ~/.claude/skills/, ~/.config/opencode/skills/ |
| Agents | ❌ (только delegate_task в рантайме) |
✅ ~/.config/opencode/agents/, <project>/.opencode/agents/ |
| MCP-серверы | ✅ config.yaml mcp_servers |
🟡 через opencode.json |
| Plugins | ✅ .hermes/plugins/ |
❌ (не поддерживает) |
| Systemd service | ✅ gateway + webui | ✅ opencode + openchamber |
| CLI install/update | hermes update |
curl install script |