Перейти к содержимому

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

Настройки ZubrCode живут в opencode.json или opencode.jsonc — в проекте или глобально. Указывайте только нужные ключи; файл можно переписать и по-русски попросить агента — «добавь в opencode.json разрешение на git push».

opencode.jsonc
{
"model": "zubriq/zubr-coder"
}

Поддерживаются JSON и JSONC: JSONC — когда нужны комментарии или висячие запятые.

Где Файл
Глобально для пользователя ~/.config/zubrcode/opencode.json(c)
В проекте opencode.json(c) или .opencode/opencode.json(c)

ZubrCode ищет конфигурацию от текущей папки вверх к корню файловой системы: сначала сливаются прямые opencode.json(c) от дальнего каталога к ближнему, затем файлы внутри .opencode в том же порядке. Поэтому любой найденный .opencode/opencode.json перекрывает прямой opencode.json.

Например, ZubrCode запущен из /home/user/projects/acme/packages/web:

~/.config/zubrcode/opencode.json
/home/user/projects/acme/
├── opencode.json
└── packages/
└── web/
├── opencode.json
└── src/

Файлы применяются от низшего приоритета к высшему: глобальный, конфиг репозитория acme, конфиг пакета web. Настройки, которые не конфликтуют, сохраняются. Политики из глобальных и проектных файлов проверяются в обратном порядке.

Источники конфигурации покажет zubrcode debug config; файлы перечитываются на лету, а zubrcode reload перечитывает их явно.

Ключ Что делает
shell оболочка для терминала и инструмента shell
model модель по умолчанию (Модели)
default_agent агент по умолчанию (Агенты)
update проверки обновлений: "disable", "notify", "auto" (Обновление)
username имя пользователя (принимается, но не показывается в переписке)
permissions правила разрешений (Разрешения)
policies жёсткие политики (Политики)
agents агенты и их настройки (Агенты)
snapshots снимки для /undo (Снимки и откат)
watcher.ignore пути, которые не считаются изменениями файлов
formatter форматирование после правок (Форматтеры)
media.image обработка изображений (Вложения)
tool_output.max_lines, tool_output.max_bytes сколько вывода инструментов сохранять
mcp MCP-серверы (MCP)
compaction сжатие контекста (Сжатие контекста)
skills дополнительные источники навыков (Навыки)
commands свои слеш-команды (Команды)
instructions дополнительные инструкции (Инструкции)
references именованные внешние каталоги (Ссылки)
worktree.directory каталог для новых рабочих копий git
plugins плагины — пакеты или локальные каталоги
providers провайдеры, модели и их запросы

Примеры ключей:

{
"shell": "/bin/zsh",
"default_agent": "build",
"snapshots": false,
"watcher": { "ignore": ["dist/**", "coverage/**"] },
"formatter": true,
"tool_output": { "max_lines": 2000, "max_bytes": 51200 },
"worktree": { "directory": "../worktrees" }
}

worktree.directory — родительский каталог для новых рабочих копий: к нему добавляется имя копии, относительные пути считаются от канонической рабочей копии проекта. Без настройки копии создаются в каталоге данных службы.

В строках конфигурации можно подставлять переменные окружения и содержимое файлов:

{
"model": "{env:OPENCODE_MODEL}",
"providers": {
"acme": {
"settings": {
"apiKey": "{file:~/.secrets/acme-key}"
}
}
}
}
  • {env:ИМЯ} — переменная окружения; если не задана, подставится пустая строка.
  • {file:путь} — содержимое файла: относительный путь от файла конфигурации, абсолютный или ~/…. Отсутствующий файл даёт пустую строку.

Это удобно для ключей в отдельных файлах и общих фрагментов конфигурации.

Все они лежат под ключом experimental:

{
"experimental": {
"todo": true,
"subagent_depth": 2,
"portable_shell_scanner": true,
"location_idle_timeout": "4 hours"
}
}
  • todo — инструмент todowrite для ведения многошаговой работы (по умолчанию false).
  • subagent_depth — насколько глубоко субагенты могут запускать своих субагентов (по умолчанию 1).
  • portable_shell_scanner — портативный разборщик оболочки вместо tree-sitter в проверках разрешений.
  • location_idle_timeout — как долго проект может жить без активности, прежде чем его службы выгрузятся (по умолчанию "60 minutes", false — никогда).