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
└── ...

创建项目配置

没有 init 命令——手动创建文件:

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 必须是主代理;未设置或无效时回退到 cyberstrike。

自定义指令

instructions 是文件或通配符模式列表,其内容会附加到系统提示词(不是内联文本)。列表与全局配置进行并集合并:

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

各提供商详情请参阅 AI 提供商。

权限

权限将工具名称映射到操作(ask、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 }
}
}

自定义代理

将项目代理定义为 .cyberstrike/agents/ 下的 Markdown 文件(参见自定义代理),然后选择一个作为默认:

{
"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,它们进行并集合并

Schema 验证

添加 schema 引用以获得 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 存储不应提交的个人覆盖设置。

相关文档