Конфигурация проекта
Конфигурация проекта настраивает поведение Cyberstrike для конкретных проектов, переопределяя глобальные настройки при наличии.
📸 SCREENSHOT: project-config.png
Структура файла конфигурации проекта
Расположение файла
Конфигурация проекта хранится в cyberstrike.json (или cyberstrike.jsonc) в корне проекта. Cyberstrike выполняет обход вверх от рабочего каталога, поэтому конфигурация в любой родительской папке будет обнаружена:
my-project/├── cyberstrike.json ← Конфигурация проекта├── src/├── package.json└── ...Создание конфигурации проекта
Команды инициализации нет — создайте файл вручную:
{ "$schema": "https://cyberstrike.io/config.json", "model": "anthropic/claude-sonnet-4-20250514"}Базовые настройки
Выбор модели
{ "model": "anthropic/claude-opus-4-5-20251101"}Агент по умолчанию
{ "default_agent": "cyberstrike"}default_agent должен быть primary агентом; откат к cyberstrike, если не установлен или недопустим.
Пользовательские инструкции
instructions — это список файлов или glob-шаблонов, содержимое которых добавляется к системному промпту (это не встроенный текст). Списки объединяются (union-merge) с глобальной конфигурацией:
{ "instructions": [ "SECURITY.md", "docs/security-guidelines.md", ".cursor/rules/*.md" ]}Конфигурация провайдеров
Настраивайте провайдеров в provider. Ключа provider.default нет — активный провайдер определяется из model (provider/model):
{ "provider": { "anthropic": { "options": { "apiKey": "{env:ANTHROPIC_API_KEY}" } }, "openai": { "options": { "apiKey": "{env:OPENAI_API_KEY}" } } }}Подробности по провайдерам см. в ИИ-провайдеры.
Разрешения
Разрешения сопоставляют имя инструмента с действием (ask, allow, deny) или с картой glob -> действие. Массивов allow/deny и «режимов» разрешений нет:
{ "permission": { "read": "allow", "bash": { "npm test": "allow", "npm run lint": "allow", "rm -rf *": "deny" }, "edit": { "reports/**": "allow", ".env*": "deny" } }}Поддерживаются только подстановочные знаки * и ?. Полную модель и список ключей разрешений см. в Разрешения.
MCP-серверы
MCP-серверы объявляются как плоская карта в mcp, с ключами по имени сервера. Локальные серверы используют type: "local" с одним массивом command:
{ "mcp": { "project-tools": { "type": "local", "command": ["node", "./tools/mcp-server.js"], "enabled": true } }}Записи mcp проекта объединяются поверх глобальных. Чтобы отключить унаследованный сервер, установите его enabled в false:
{ "mcp": { "some-global-server": { "enabled": false } }}Пользовательские агенты
Определяйте агентов проекта как Markdown-файлы в .cyberstrike/agents/ (см. Пользовательские агенты), затем выберите одного как агента по умолчанию:
{ "default_agent": "project-scanner"}Полный пример
{ "$schema": "https://cyberstrike.io/config.json", "model": "anthropic/claude-sonnet-4-20250514", "default_agent": "cyberstrike", "instructions": ["docs/SECURITY.md"],
"provider": { "anthropic": { "options": { "apiKey": "{env:ANTHROPIC_API_KEY}" } } },
"permission": { "read": "allow", "bash": { "npm *": "allow", "git status": "allow", "rm *": "deny" }, "edit": { "reports/**": "allow", ".env*": "deny" } },
"mcp": { "db-tools": { "type": "local", "command": ["node", "./tools/db-mcp.js"], "enabled": true } }}Наследование конфигурации
Конфигурация проекта объединяется поверх глобальной и удалённой конфигурации:
Удалённая / well-known конфигурация (базовая) ↓Глобальная конфигурация (~/.config/cyberstrike/) ↓Пользовательская конфигурация (CYBERSTRIKE_CONFIG) ↓Конфигурация проекта (cyberstrike.json) ↓Конфигурация каталога .cyberstrike/ ↓CYBERSTRIKE_CONFIG_CONTENT / управляемая конфигурация / аргументы CLI (переопределение)Полный порядок приоритетов см. в Справочнике по конфигурации.
Поведение объединения
| Настройка | Поведение |
|---|---|
| Скаляры | Заменяются |
| Объекты | Глубокое объединение |
| Массивы | Заменяются — кроме plugin и instructions, которые объединяются (union-merge) |
Валидация схемы
Добавьте ссылку на схему для автодополнения и валидации в IDE:
{ "$schema": "https://cyberstrike.io/config.json"}Интеграция с Git
Коммит конфигурации проекта
git add cyberstrike.jsongit commit -m "Add Cyberstrike project configuration"Игнорирование конфиденциальных данных
# Игнорировать локальные данные сессий.cyberstrike/sessions/Лучшие практики
- Контроль версий — коммитьте конфигурацию проекта для совместной работы команды
- Используйте ссылки на переменные — никогда не хардкодьте API-ключи (
{env:VAR}) - Документируйте инструкции — направляйте
instructionsна документацию по безопасности - Минимальные разрешения — разрешайте только необходимое
- Личные переопределения — используйте
CYBERSTRIKE_CONFIGдля настроек, которые не должны коммитить
Tip
Коммитьте cyberstrike.json для совместной работы команды. Используйте переменные окружения или CYBERSTRIKE_CONFIG для личных переопределений, которые не должны коммитить.
Связанная документация
- Справочник по конфигурации — Полное руководство
- Глобальная конфигурация — Глобальные настройки
- Переменные окружения — Справочник переменных окружения