Справочник по конфигурации
Cyberstrike может быть настроен несколькими способами: файлы конфигурации, переменные окружения и аргументы командной строки. Этот справочник охватывает все параметры конфигурации.
📸 SCREENSHOT: s13-config-structure.png
Структура файла конфигурации
Иерархия конфигурации
Источники конфигурации объединяются в порядке приоритета (наивысший приоритет побеждает):
- Аргументы командной строки
- Управляемая (корпоративная) конфигурация — административный
cyberstrike.json/cyberstrike.jsoncв управляемом каталоге - Переменная окружения
CYBERSTRIKE_CONFIG_CONTENT(встроенный JSON) - Конфигурация каталога
.cyberstrike/— проектный.cyberstrike/, затем~/.cyberstrike/в домашнем каталоге - Конфигурация проекта (
./cyberstrike.jsonили./cyberstrike.jsonc, обнаруживается при обходе вверх от рабочего каталога) - Пользовательский путь конфигурации (
CYBERSTRIKE_CONFIG) - Глобальная конфигурация (
~/.config/cyberstrike/config.json,cyberstrike.jsonилиcyberstrike.jsonc) - Удалённая / well-known конфигурация
- Значения по умолчанию
Проверка конфигурации
Для просмотра результирующей конфигурации после объединения всех источников выполните:
cyberstrike debug configЭто выводит разрешённую конфигурацию в формате JSON. Команд config get/set не существует — изменяйте настройки, редактируя файл конфигурации напрямую (см. ниже).
Файлы конфигурации
Конфигурация проекта
Создайте cyberstrike.json или cyberstrike.jsonc в корне проекта:
{ "$schema": "https://cyberstrike.io/config.json", "model": "anthropic/claude-sonnet-4-20250514", "agent": { "web-application": { "model": "anthropic/claude-sonnet-4-20250514" } }}Глобальная конфигурация
Храните пользовательские настройки в ~/.config/cyberstrike/. Любой из файлов config.json, cyberstrike.json или cyberstrike.jsonc загружается (Cyberstrike автоматически генерирует config.json):
{ "$schema": "https://cyberstrike.io/config.json", "theme": "cyberstrike", "autoupdate": true, "share": "manual"}Структура каталога проекта
Создайте каталог .cyberstrike/ для организованной конфигурации:
.cyberstrike/├── cyberstrike.json # Конфигурация проекта├── agents/ # Пользовательские агенты│ └── security.md├── commands/ # Пользовательские команды│ └── scan.md├── plugins/ # Пользовательские плагины│ └── my-plugin.ts└── modes/ # Пользовательские режимы (устарело)Основные настройки
Выбор модели
Установка ИИ-модели по умолчанию:
{ "model": "anthropic/claude-sonnet-4-20250514"}Формат: provider/model-name
Лёгкая модель
Установка модели для лёгких задач (генерация заголовков):
{ "small_model": "anthropic/claude-haiku-4-5-20251001"}Агент по умолчанию
Установка агента безопасности по умолчанию:
{ "default_agent": "cyberstrike"}Имя пользователя
Переопределение системного имени пользователя:
{ "username": "pentester"}Тема
Установка темы интерфейса:
{ "theme": "cyberstrike"}Конфигурация провайдеров
Настройка ИИ-провайдеров по отдельности:
{ "provider": { "anthropic": { "options": { "apiKey": "{env:ANTHROPIC_API_KEY}", "timeout": 300000 } }, "openai": { "options": { "baseURL": "https://api.openai.com/v1" }, "whitelist": ["gpt-4o", "gpt-4-turbo"], "blacklist": ["gpt-3.5-turbo"] }, "custom-provider": { "id": "custom-provider", "name": "Custom Provider", "options": { "baseURL": "https://api.custom.example.com/v1", "apiKey": "{env:CUSTOM_API_KEY}" } } }}Параметры провайдера
| Параметр | Тип | Описание |
|---|---|---|
apiKey | string | API-ключ для аутентификации |
baseURL | string | Пользовательская конечная точка API |
timeout | number/false | Тайм-аут запроса в мс (по умолчанию: 300000) |
setCacheKey | boolean | Включить ключ кэша промптов |
enterpriseUrl | string | URL GitHub Enterprise для copilot |
Фильтрация моделей
Управление отображаемыми моделями:
{ "provider": { "openai": { "whitelist": ["gpt-4o", "o1-preview"], "blacklist": ["gpt-3.5-turbo"] } }}Отключение провайдеров
Отключение конкретных провайдеров:
{ "disabled_providers": ["ollama", "groq"]}Включение только определённых провайдеров:
{ "enabled_providers": ["anthropic", "openai"]}Конфигурация агентов
Настройка поведения агентов:
{ "agent": { "cyberstrike": { "model": "anthropic/claude-sonnet-4-20250514", "temperature": 0.7, "steps": 50, "color": "#FF5733" }, "web-application": { "model": "anthropic/claude-opus-4-20250514", "prompt": "Focus on OWASP Top 10 vulnerabilities" } }}Параметры агента
| Параметр | Тип | Описание |
|---|---|---|
model | string | Переопределение модели для этого агента |
temperature | number | Температура модели (0-1) |
top_p | number | Значение top-p семплирования |
steps | number | Максимум агентных итераций |
prompt | string | Пользовательский системный промпт |
color | string | Hex-код цвета (#RRGGBB) |
description | string | Описание агента |
mode | string | Режим агента: “primary”, “subagent”, “all” |
hidden | boolean | Скрыть из автодополнения |
disable | boolean | Отключить этого агента |
Создание пользовательских агентов
Создайте .cyberstrike/agents/custom.md:
---description: Custom security agent for API testingmodel: anthropic/claude-opus-4-20250514mode: primary---
You are an API security specialist. Focus on:- Authentication vulnerabilities- Authorization bypass- Input validation- Rate limiting issuesКонфигурация MCP
Настройка серверов Model Context Protocol:
{ "mcp": { "filesystem": { "type": "local", "command": ["npx", "@modelcontextprotocol/server-filesystem", "/path/to/dir"], "enabled": true, "timeout": 5000 }, "remote-api": { "type": "remote", "url": "https://api.example.com/mcp", "oauth": { "clientId": "your-client-id", "scope": "read write" } } }}Локальный MCP-сервер
| Параметр | Тип | Описание |
|---|---|---|
type | “local” | Тип сервера |
command | string[] | Команда и аргументы |
environment | object | Переменные окружения |
enabled | boolean | Включение/отключение сервера |
timeout | number | Тайм-аут запроса в мс |
Удалённый MCP-сервер
| Параметр | Тип | Описание |
|---|---|---|
type | “remote” | Тип сервера |
url | string | URL сервера |
headers | object | Заголовки запросов |
oauth | object/false | Конфигурация OAuth |
enabled | boolean | Включение/отключение сервера |
timeout | number | Тайм-аут запроса в мс |
Конфигурация OAuth
{ "oauth": { "clientId": "your-client-id", "clientSecret": "your-client-secret", "scope": "read write" }}Конфигурация разрешений
Управление разрешениями инструментов:
{ "permission": { "bash": "ask", "edit": "allow", "read": "allow", "glob": "allow", "grep": "allow", "websearch": "deny" }}Действия разрешений
| Действие | Описание |
|---|---|
ask | Запрос одобрения у пользователя (по умолчанию) |
allow | Автоматическое одобрение без запроса |
deny | Блокировка использования инструмента |
Разрешения на основе паттернов
Указание разрешений по паттерну:
{ "permission": { "bash": { "*": "ask", "ls *": "allow", "rm -rf *": "deny" }, "edit": { "*": "ask", "*.md": "allow" } }}Доступные ключи разрешений
| Ключ | Описание |
|---|---|
read | Чтение файлов |
edit | Редактирование/запись файлов |
glob | Поиск файлов по паттерну |
grep | Поиск по содержимому |
list | Просмотр каталогов |
bash | Выполнение команд |
task | Выполнение задач |
websearch | Веб-поиск |
webfetch | Загрузка URL |
lsp | Операции LSP |
external_directory | Доступ за пределами проекта |
Привязки клавиш
Настройка сочетаний клавиш:
{ "keybinds": { "leader": "ctrl+x", "app_exit": "ctrl+c,ctrl+d", "session_new": "<leader>n", "session_list": "<leader>l", "model_list": "<leader>m", "agent_list": "<leader>a", "input_submit": "return", "input_newline": "shift+return,ctrl+return" }}Формат клавиш
- Одна клавиша:
ctrl+c,escape,return - Несколько привязок:
ctrl+c,ctrl+d(через запятую) - Последовательности с лидером:
<leader>n(использует лидер-клавишу) - Отключение:
none
Настройки TUI
Настройка терминального интерфейса:
{ "tui": { "scroll_speed": 1.0, "scroll_acceleration": { "enabled": true }, "diff_style": "auto" }}| Параметр | Тип | Описание |
|---|---|---|
scroll_speed | number | Множитель скорости прокрутки |
scroll_acceleration | object | Настройки ускорения |
diff_style | “auto”/“stacked” | Стиль отображения diff |
Конфигурация сервера
Настройка API-сервера:
{ "server": { "port": 4096, "hostname": "localhost", "mdns": true, "cors": ["https://example.com"] }}Плагины и хуки
Cyberstrike не использует систему хуков на основе конфигурации. Автоматизация и хуки жизненного цикла реализованы как плагины — модули JavaScript/TypeScript, подписывающиеся на события: tool.execute.before, tool.execute.after или permission.ask.
Регистрируйте плагины по имени. Они разрешаются из npm или из локального каталога {plugin,plugins}/ внутри .cyberstrike/:
{ "plugin": ["my-plugin", "@scope/another-plugin"]}Подробности см. в Хуки и плагины.
Экспериментальные параметры
Блок experimental предоставляет опциональные функции:
{ "experimental": { "batch_tool": true, "openTelemetry": false, "continue_loop_on_deny": false, "mcp_timeout": 5000 }}| Параметр | Тип | Описание |
|---|---|---|
disable_paste_summary | boolean | Отключить сводку вставки |
batch_tool | boolean | Включить пакетный инструмент |
openTelemetry | boolean | Включить OpenTelemetry spans для вызовов AI SDK |
primary_tools | string[] | Инструменты, доступные только первичным агентам |
continue_loop_on_deny | boolean | Продолжать цикл агента при отклонении вызова инструмента |
mcp_timeout | number | Тайм-аут (мс) для MCP-запросов |
Конфигурация общего доступа
Управление общим доступом к сессиям:
{ "share": "manual"}| Значение | Описание |
|---|---|
manual | Общий доступ только через команды |
auto | Автоматический общий доступ для новых сессий |
disabled | Отключить весь общий доступ |
Настройки компактификации
Настройка компактификации контекста:
{ "compaction": { "auto": true, "prune": true }}| Параметр | Описание |
|---|---|
auto | Автоматическая компактификация при заполнении контекста |
prune | Очистка старых выводов инструментов |
Переменные окружения
Переменные конфигурации
| Переменная | Описание |
|---|---|
CYBERSTRIKE_CONFIG | Пользовательский путь к файлу конфигурации |
CYBERSTRIKE_CONFIG_CONTENT | Встроенная JSON-конфигурация |
CYBERSTRIKE_CONFIG_DIR | Дополнительный каталог конфигурации |
CYBERSTRIKE_DISABLE_PROJECT_CONFIG | Игнорировать конфигурацию проекта |
CYBERSTRIKE_PERMISSION | JSON-переопределение разрешений |
API-ключи провайдеров
| Переменная | Провайдер |
|---|---|
ANTHROPIC_API_KEY | Anthropic |
OPENAI_API_KEY | OpenAI |
GOOGLE_GENERATIVE_AI_API_KEY | Google (Gemini) |
OPENROUTER_API_KEY | OpenRouter |
AWS_ACCESS_KEY_ID | AWS Bedrock |
AZURE_API_KEY | Azure OpenAI |
Флаги поведения
| Переменная | Описание |
|---|---|
CYBERSTRIKE_AUTO_SHARE | Автоматический общий доступ к сессиям |
CYBERSTRIKE_DISABLE_AUTOCOMPACT | Отключить автоматическую компактификацию |
CYBERSTRIKE_DISABLE_PRUNE | Отключить очистку вывода |
Подстановка переменных
Переменные окружения
Ссылка на переменные окружения в конфигурации:
{ "provider": { "anthropic": { "options": { "apiKey": "{env:ANTHROPIC_API_KEY}" } } }}Ссылки на файлы
Включение содержимого из файлов:
{ "instructions": ["{file:./SECURITY.md}"]}Поддерживается:
- Относительные пути:
{file:./path/to/file} - Абсолютные пути:
{file:/absolute/path} - Домашний каталог:
{file:~/path/from/home}
Конфигурация LSP
Настройка Language Server Protocol:
{ "lsp": { "typescript": { "command": ["typescript-language-server", "--stdio"], "extensions": [".ts", ".tsx"] }, "rust": { "disabled": true } }}Установите lsp: false для отключения всех функций LSP.
Конфигурация форматтера
Настройка форматтеров кода:
{ "formatter": { "prettier": { "command": ["prettier", "--write"], "extensions": [".ts", ".tsx", ".js", ".jsx"] }, "rustfmt": { "disabled": true } }}Установите formatter: false для отключения всех форматтеров.
Полный пример
{ "$schema": "https://cyberstrike.io/config.json", "model": "anthropic/claude-sonnet-4-20250514", "small_model": "anthropic/claude-haiku-4-5-20251001", "default_agent": "cyberstrike", "theme": "cyberstrike", "share": "manual", "autoupdate": "notify",
"provider": { "anthropic": { "options": { "timeout": 300000 } } },
"agent": { "web-application": { "model": "anthropic/claude-opus-4-20250514", "steps": 100 } },
"permission": { "bash": "ask", "edit": "allow", "read": "allow" },
"mcp": { "filesystem": { "type": "local", "command": ["npx", "@modelcontextprotocol/server-filesystem", "."], "enabled": true } },
"keybinds": { "leader": "ctrl+x" },
"compaction": { "auto": true, "prune": true }}