Skip to main content

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

設定リファレンス

Cyberstrikeは複数の方法で設定できます:設定ファイル、環境変数、コマンドライン引数。このリファレンスではすべての設定オプションを説明します。

📸 SCREENSHOT: s13-config-structure.png

設定ファイルの構造

設定の優先順位 — 最も高い優先度が適用、CLI引数からデフォルト値まで

設定の階層

設定ソースは優先順位の順にマージされます(優先度が高いものが勝ちます):

  1. コマンドライン引数
  2. マネージド(エンタープライズ)設定 — 管理者が制御する cyberstrike.json/cyberstrike.jsonc(マネージドディレクトリ内)
  3. CYBERSTRIKE_CONFIG_CONTENT 環境変数(インラインJSON)
  4. .cyberstrike/ ディレクトリ設定 — プロジェクトの .cyberstrike/、次にホームディレクトリの ~/.cyberstrike/
  5. プロジェクト設定(./cyberstrike.json または ./cyberstrike.jsonc、作業ディレクトリから上方向に探索)
  6. カスタム設定パス(CYBERSTRIKE_CONFIG)
  7. グローバル設定(~/.config/cyberstrike/config.json、cyberstrike.json、または cyberstrike.jsonc)
  8. リモート / well-known設定
  9. デフォルト値

設定の確認

すべてのソースがマージされた後の有効な設定を確認するには、以下を実行します:

Terminal window
cyberstrike debug config

これは解決済みの設定をJSONとして出力します。config get/set コマンドはありません — 設定ファイルを直接編集して設定を変更してください(以下を参照)。

設定ファイル

プロジェクト設定

プロジェクトルートに cyberstrike.json または cyberstrike.jsonc を作成します:

cyberstrike.json
{
"$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 を自動生成します):

~/.config/cyberstrike/cyberstrike.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/ # カスタムモード(非推奨)

コア設定

モデル選択

デフォルトのAIモデルを設定します:

{
"model": "anthropic/claude-sonnet-4-20250514"
}

形式:provider/model-name

スモールモデル

軽量タスク(タイトル生成)用のモデルを設定します:

{
"small_model": "anthropic/claude-haiku-4-5-20251001"
}

デフォルトエージェント

デフォルトのセキュリティエージェントを設定します:

{
"default_agent": "cyberstrike"
}

ユーザー名

システムのユーザー名を上書きします:

{
"username": "pentester"
}

テーマ

インターフェーステーマを設定します:

{
"theme": "cyberstrike"
}

プロバイダー設定

AIプロバイダーを個別に設定します:

{
"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}"
}
}
}
}

プロバイダーオプション

オプション型説明
apiKeystring認証用APIキー
baseURLstringカスタムAPIエンドポイント
timeoutnumber/falseリクエストタイムアウト(ms単位、デフォルト:300000)
setCacheKeybooleanプロンプトキャッシュキーを有効化
enterpriseUrlstringCopilot用GitHub Enterprise URL

モデルフィルタリング

表示するモデルを制御します:

{
"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"
}
}
}

エージェントオプション

オプション型説明
modelstringこのエージェント用のモデルを上書き
temperaturenumberモデルの温度(0-1)
top_pnumberTop-pサンプリング値
stepsnumberエージェントの最大イテレーション数
promptstringカスタムシステムプロンプト
colorstring16進カラーコード(#RRGGBB)
descriptionstringエージェントの説明
modestringエージェントモード:“primary”、“subagent”、“all”
hiddenbooleanオートコンプリートから非表示
disablebooleanこのエージェントを無効化

カスタムエージェントの作成

.cyberstrike/agents/custom.md を作成します:

---
description: APIテスト用のカスタムセキュリティエージェント
model: anthropic/claude-opus-4-20250514
mode: primary
---
あなたはAPIセキュリティの専門家です。以下に焦点を当ててください:
- 認証の脆弱性
- 認可バイパス
- 入力バリデーション
- レート制限の問題

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”サーバータイプ
commandstring[]コマンドと引数
environmentobject環境変数
enabledbooleanサーバーの有効/無効
timeoutnumberリクエストタイムアウト(ms)

リモートMCPサーバー

オプション型説明
type“remote”サーバータイプ
urlstringサーバーURL
headersobjectリクエストヘッダー
oauthobject/falseOAuth設定
enabledbooleanサーバーの有効/無効
timeoutnumberリクエストタイムアウト(ms)

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タスク実行
websearchWeb検索
webfetchURLフェッチ
lspLSP操作
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シーケンス:<leader>n(Leaderキーを使用)
  • 無効化:none

TUI設定

ターミナルインターフェースを設定します:

{
"tui": {
"scroll_speed": 1.0,
"scroll_acceleration": {
"enabled": true
},
"diff_style": "auto"
}
}
オプション型説明
scroll_speednumberスクロール速度の倍率
scroll_accelerationobjectアクセラレーション設定
diff_style“auto”/“stacked”Diffのレンダリングスタイル

サーバー設定

APIサーバーを設定します:

{
"server": {
"port": 4096,
"hostname": "localhost",
"mdns": true,
"cors": ["https://example.com"]
}
}

プラグインとフック

Cyberstrikeは設定ベースのフックシステムを使用しません。自動化とライフサイクルフックはプラグインとして実装されます — tool.execute.before、tool.execute.after、permission.ask などのイベントを購読するJavaScript/TypeScriptモジュールです。

プラグインを名前で登録します。npmまたは .cyberstrike/ 内のローカル {plugin,plugins}/ ディレクトリから解決されます:

{
"plugin": ["my-plugin", "@scope/another-plugin"]
}

完全なイベントリストとオーサリングガイドはフックとプラグインを参照してください。

実験的オプション

experimental ブロックはオプトイン機能を公開します:

{
"experimental": {
"batch_tool": true,
"openTelemetry": false,
"continue_loop_on_deny": false,
"mcp_timeout": 5000
}
}
オプション型説明
disable_paste_summarybooleanペーストサマリーを無効化
batch_toolbooleanバッチツールを有効化
openTelemetrybooleanAI SDKコール用のOpenTelemetryスパンを有効化
primary_toolsstring[]プライマリエージェントのみ利用可能なツール
continue_loop_on_denybooleanツールコールが拒否されてもエージェントループを継続
mcp_timeoutnumberMCPリクエストのタイムアウト(ms)

共有設定

セッション共有を制御します:

{
"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_PERMISSIONJSONパーミッションオーバーライド

プロバイダーAPIキー

変数プロバイダー
ANTHROPIC_API_KEYAnthropic
OPENAI_API_KEYOpenAI
GOOGLE_GENERATIVE_AI_API_KEYGoogle(Gemini)
OPENROUTER_API_KEYOpenRouter
AWS_ACCESS_KEY_IDAWS Bedrock
AZURE_API_KEYAzure 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機能を無効にするには lsp: false を設定します。


フォーマッター設定

コードフォーマッターを設定します:

{
"formatter": {
"prettier": {
"command": ["prettier", "--write"],
"extensions": [".ts", ".tsx", ".js", ".jsx"]
},
"rustfmt": {
"disabled": true
}
}
}

すべてのフォーマッターを無効にするには formatter: false を設定します。


完全な例

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