Команды
Своя команда превращает часто используемый запрос в слеш-команду. Создайте
.opencode/commands/review.md — в TUI появится /review:
Review $ARGUMENTS for bugs and missing tests./review src/auth.tsZubrCode отправит Review src/auth.ts for bugs and missing tests. как обычный
запрос. Встроенные команды /init (описать проект в AGENTS.md) и /review
(ревью текущих изменений) уже есть — своя команда с таким именем их заменит.
Файлы команд
Заголовок раздела «Файлы команд»Глобальные команды — в ~/.config/zubrcode/commands/, проектные — в
.opencode/commands/. Обнаруживаются только .md; вложенный путь становится
именем через / (.opencode/commands/team/review.md → /team/review).
Старый каталог command/ тоже читается, но новые файлы кладите в commands/.
Тело Markdown — это шаблон запроса, frontmatter несёт метаданные:
---description: Review code for correctnessagent: planmodel: zubriq/zubr-coder---
Review $ARGUMENTS. Report bugs first.То же определяется в JSON — в opencode.json или opencode.jsonc; там
шаблон задаётся полем template:
{ "commands": { "review": { "description": "Review code for correctness", "template": "Review $ARGUMENTS. Report bugs first." } }}| Поле | Обязательно | Поведение |
|---|---|---|
template |
только JSON | шаблон запроса |
description |
нет | текст в списках команд |
agent |
нет | агент, которым выполнится команда |
model |
нет | модель провайдер/модель (можно с #вариант) |
subagent |
нет | true — в фоновой дочерней сессии; false — в текущей |
subtask |
нет | устаревший синоним subagent |
В Markdown template во frontmatter не пишется — его даёт тело файла.
Аргументы
Заголовок раздела «Аргументы»$ARGUMENTS — вся строка аргументов как есть; $1, $2 и далее — позиции
(слова в кавычках группируются, кавычки снимаются). Самый большой номер
забирает свой аргумент и всё, что после него; недостающие позиции становятся
пустыми строками.
Check $1. Focus on $2.Если в шаблоне нет ни $ARGUMENTS, ни позиций, непустые аргументы
добавляются после пустой строки.
Оболочка в шаблоне
Заголовок раздела «Оболочка в шаблоне»Блок !`команда` выполняется при подстановке шаблона, а его вывод
вставляется в запрос:
Review this diff:
!`git diff --stat && git diff`Сначала раскрываются подстановки аргументов, затем выполняются команды:
Summarize these commits:
!`git log --oneline -$1`@путь в сохранённых шаблонах не раскрывается — это обычный текст запроса.
Чтобы приложить файл, добавьте его в поле ввода при вызове команды.
Как выполняется команда
Заголовок раздела «Как выполняется команда»Команда раскрывает аргументы и блоки оболочки и отправляет готовый запрос.
По умолчанию она работает в текущей сессии: указанная в agent команда
переключает сессию на этого агента перед отправкой. Модель выбирается так:
modelкоманды перекрывает всё остальное.- Иначе берётся модель агента команды, если она задана.
- Иначе остаётся модель текущей сессии.
subagent: true выполняет команду в фоновой дочерней сессии: родитель
свободен и сохраняет своего агента и модель, а результат приходит ему по
завершении. Если поле не указано, дочерняя сессия используется только для
агентов с mode: subagent.
Загрузка
Заголовок раздела «Загрузка»Файлы и JSON-команды делят один реестр: более поздний источник заменяет
команду с тем же именем. Проектные команды важнее глобальных, ближние к
текущей папке — дальше стоящих; своя команда может заменить и встроенную.
Файлы команд перечитываются на лету: сохранение обновляет /review без
перезапуска.