Skip to main content

Cyberstrike is now open source! AI-powered penetration testing for security professionals. Star on GitHub

Конфигурация проекта

Конфигурация проекта настраивает поведение Cyberstrike для конкретных проектов, переопределяя глобальные настройки при наличии.

📸 SCREENSHOT: project-config.png

Структура файла конфигурации проекта

Расположение файла

Конфигурация проекта хранится в cyberstrike.json (или cyberstrike.jsonc) в корне проекта. Cyberstrike выполняет обход вверх от рабочего каталога, поэтому конфигурация в любой родительской папке будет обнаружена:

my-project/
├── cyberstrike.json ← Конфигурация проекта
├── src/
├── package.json
└── ...

Создание конфигурации проекта

Команды инициализации нет — создайте файл вручную:

cyberstrike.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"
}

Полный пример

cyberstrike.json
{
"$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

Коммит конфигурации проекта

Terminal window
git add cyberstrike.json
git commit -m "Add Cyberstrike project configuration"

Игнорирование конфиденциальных данных

.gitignore
# Игнорировать локальные данные сессий
.cyberstrike/sessions/

Лучшие практики

  1. Контроль версий — коммитьте конфигурацию проекта для совместной работы команды
  2. Используйте ссылки на переменные — никогда не хардкодьте API-ключи ({env:VAR})
  3. Документируйте инструкции — направляйте instructions на документацию по безопасности
  4. Минимальные разрешения — разрешайте только необходимое
  5. Личные переопределения — используйте CYBERSTRIKE_CONFIG для настроек, которые не должны коммитить

Tip

Коммитьте cyberstrike.json для совместной работы команды. Используйте переменные окружения или CYBERSTRIKE_CONFIG для личных переопределений, которые не должны коммитить.

Связанная документация