Skip to main content

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

Référence de configuration

Cyberstrike peut être configuré via plusieurs méthodes : fichiers de configuration, variables d’environnement et arguments en ligne de commande. Cette référence couvre toutes les options de configuration.

📸 SCREENSHOT: s13-config-structure.png

Structure du fichier de configuration

Priorité de configuration — la plus haute l'emporte, des arguments CLI aux valeurs par défaut

Hiérarchie de configuration

Les sources de configuration sont fusionnées par ordre de priorité (la priorité la plus haute l’emporte) :

  1. Arguments en ligne de commande
  2. Configuration gérée (entreprise) — cyberstrike.json/cyberstrike.jsonc contrôlé par l’administrateur dans le répertoire géré
  3. Variable d’environnement CYBERSTRIKE_CONFIG_CONTENT (JSON en ligne)
  4. Configuration du répertoire .cyberstrike/ — le .cyberstrike/ du projet, puis ~/.cyberstrike/ dans votre répertoire personnel
  5. Configuration du projet (./cyberstrike.json ou ./cyberstrike.jsonc, découvert en remontant depuis le répertoire de travail)
  6. Chemin de configuration personnalisé (CYBERSTRIKE_CONFIG)
  7. Configuration globale (~/.config/cyberstrike/config.json, cyberstrike.json, ou cyberstrike.jsonc)
  8. Configuration distante / well-known
  9. Valeurs par défaut

Inspecter la configuration

Pour voir la configuration effective après fusion de toutes les sources, exécutez :

Terminal window
cyberstrike debug config

Cela affiche la configuration résolue en JSON. Il n’y a pas de commandes config get/set — modifiez les paramètres en éditant directement le fichier de configuration (voir ci-dessous).

Fichiers de configuration

Configuration du projet

Créez cyberstrike.json ou cyberstrike.jsonc à la racine de votre projet :

cyberstrike.json
{
"$schema": "https://cyberstrike.io/config.json",
"model": "anthropic/claude-sonnet-4-20250514",
"agent": {
"web-application": {
"model": "anthropic/claude-sonnet-4-20250514"
}
}
}

Configuration globale

Stockez les paramètres globaux dans ~/.config/cyberstrike/. Les fichiers config.json, cyberstrike.json ou cyberstrike.jsonc sont chargés (Cyberstrike génère automatiquement config.json) :

~/.config/cyberstrike/cyberstrike.json
{
"$schema": "https://cyberstrike.io/config.json",
"theme": "cyberstrike",
"autoupdate": true,
"share": "manual"
}

Structure du répertoire de projet

Créez un répertoire .cyberstrike/ pour une configuration organisée :

.cyberstrike/
├── cyberstrike.json # Configuration du projet
├── agents/ # Agents personnalisés
│ └── security.md
├── commands/ # Commandes personnalisées
│ └── scan.md
├── plugins/ # Plugins personnalisés
│ └── my-plugin.ts
└── modes/ # Modes personnalisés (obsolète)

Paramètres principaux

Sélection du modèle

Définissez le modèle IA par défaut :

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

Format : provider/model-name

Petit modèle

Définissez un modèle pour les tâches légères (génération de titre) :

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

Agent par défaut

Définissez l’agent de sécurité par défaut :

{
"default_agent": "cyberstrike"
}

Nom d’utilisateur

Remplacez le nom d’utilisateur système :

{
"username": "pentester"
}

Thème

Définissez le thème de l’interface :

{
"theme": "cyberstrike"
}

Configuration des fournisseurs

Configurez les fournisseurs IA individuellement :

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

Options du fournisseur

OptionTypeDescription
apiKeystringClé API pour l’authentification
baseURLstringPoint de terminaison API personnalisé
timeoutnumber/falseDélai d’expiration de la requête en ms (défaut : 300000)
setCacheKeybooleanActiver la clé de cache du prompt
enterpriseUrlstringURL GitHub Enterprise pour copilot

Filtrage des modèles

Contrôlez quels modèles apparaissent :

{
"provider": {
"openai": {
"whitelist": ["gpt-4o", "o1-preview"],
"blacklist": ["gpt-3.5-turbo"]
}
}
}

Désactiver des fournisseurs

Désactivez des fournisseurs spécifiques :

{
"disabled_providers": ["ollama", "groq"]
}

Activez uniquement des fournisseurs spécifiques :

{
"enabled_providers": ["anthropic", "openai"]
}

Configuration des agents

Configurez le comportement des agents :

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

Options des agents

OptionTypeDescription
modelstringRemplacer le modèle pour cet agent
temperaturenumberTempérature du modèle (0-1)
top_pnumberValeur d’échantillonnage top-p
stepsnumberNombre maximum d’itérations agentiques
promptstringPrompt système personnalisé
colorstringCode couleur hexadécimal (#RRGGBB)
descriptionstringDescription de l’agent
modestringMode de l’agent : “primary”, “subagent”, “all”
hiddenbooleanMasquer de l’autocomplétion
disablebooleanDésactiver cet agent

Créer des agents personnalisés

Créez .cyberstrike/agents/custom.md :

---
description: Custom security agent for API testing
model: anthropic/claude-opus-4-20250514
mode: primary
---
You are an API security specialist. Focus on:
- Authentication vulnerabilities
- Authorization bypass
- Input validation
- Rate limiting issues

Configuration MCP

Configurez les serveurs 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"
}
}
}
}

Serveur MCP local

OptionTypeDescription
type“local”Type de serveur
commandstring[]Commande et arguments
environmentobjectVariables d’environnement
enabledbooleanActiver/désactiver le serveur
timeoutnumberDélai d’expiration de la requête en ms

Serveur MCP distant

OptionTypeDescription
type“remote”Type de serveur
urlstringURL du serveur
headersobjectEn-têtes de requête
oauthobject/falseConfiguration OAuth
enabledbooleanActiver/désactiver le serveur
timeoutnumberDélai d’expiration de la requête en ms

Configuration OAuth

{
"oauth": {
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"scope": "read write"
}
}

Configuration des permissions

Contrôlez les permissions des outils :

{
"permission": {
"bash": "ask",
"edit": "allow",
"read": "allow",
"glob": "allow",
"grep": "allow",
"websearch": "deny"
}
}

Actions de permission

ActionDescription
askDemander l’approbation de l’utilisateur (par défaut)
allowApprouver automatiquement sans demander
denyBloquer l’utilisation de l’outil

Permissions par motif

Spécifiez les permissions par motif :

{
"permission": {
"bash": {
"*": "ask",
"ls *": "allow",
"rm -rf *": "deny"
},
"edit": {
"*": "ask",
"*.md": "allow"
}
}
}

Clés de permission disponibles

CléDescription
readLecture de fichiers
editÉdition/écriture de fichiers
globCorrespondance de motifs de fichiers
grepRecherche de contenu
listListage de répertoires
bashExécution de commandes
taskExécution de tâches
websearchRecherches web
webfetchRécupération d’URL
lspOpérations LSP
external_directoryAccès hors du projet

Raccourcis clavier

Personnalisez les raccourcis clavier :

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

Format des touches

  • Touche unique : ctrl+c, escape, return
  • Raccourcis multiples : ctrl+c,ctrl+d (séparés par des virgules)
  • Séquences leader : <leader>n (utilise la touche leader)
  • Désactiver : none

Paramètres TUI

Configurez l’interface du terminal :

{
"tui": {
"scroll_speed": 1.0,
"scroll_acceleration": {
"enabled": true
},
"diff_style": "auto"
}
}
OptionTypeDescription
scroll_speednumberMultiplicateur de vitesse de défilement
scroll_accelerationobjectParamètres d’accélération
diff_style“auto”/“stacked”Style de rendu des diffs

Configuration du serveur

Configurez le serveur API :

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

Plugins et hooks

Cyberstrike n’utilise pas de système de hooks basé sur la configuration. L’automatisation et les hooks de cycle de vie sont implémentés en tant que plugins — des modules JavaScript/TypeScript qui s’abonnent à des événements tels que tool.execute.before, tool.execute.after ou permission.ask.

Enregistrez les plugins par nom. Ils sont résolus depuis npm ou depuis un répertoire local {plugin,plugins}/ à l’intérieur de .cyberstrike/ :

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

Voir Hooks et plugins pour la liste complète des événements et le guide de création.

Options expérimentales

Le bloc experimental expose des fonctionnalités opt-in :

{
"experimental": {
"batch_tool": true,
"openTelemetry": false,
"continue_loop_on_deny": false,
"mcp_timeout": 5000
}
}
OptionTypeDescription
disable_paste_summarybooleanDésactiver le résumé du collage
batch_toolbooleanActiver l’outil batch
openTelemetrybooleanActiver les spans OpenTelemetry pour les appels AI SDK
primary_toolsstring[]Outils disponibles uniquement pour les agents principaux
continue_loop_on_denybooleanContinuer la boucle de l’agent quand un appel d’outil est refusé
mcp_timeoutnumberDélai d’expiration (ms) pour les requêtes MCP

Configuration du partage

Contrôlez le partage de session :

{
"share": "manual"
}
ValeurDescription
manualPartager via les commandes uniquement
autoPartager automatiquement les nouvelles sessions
disabledDésactiver tout partage

Paramètres de compaction

Configurez la compaction du contexte :

{
"compaction": {
"auto": true,
"prune": true
}
}
OptionDescription
autoCompacter automatiquement quand le contexte est plein
pruneÉlaguer les anciennes sorties d’outils

Variables d’environnement

Variables de configuration

VariableDescription
CYBERSTRIKE_CONFIGChemin personnalisé du fichier de configuration
CYBERSTRIKE_CONFIG_CONTENTConfiguration JSON en ligne
CYBERSTRIKE_CONFIG_DIRRépertoire de configuration supplémentaire
CYBERSTRIKE_DISABLE_PROJECT_CONFIGIgnorer la configuration du projet
CYBERSTRIKE_PERMISSIONSurcharges de permissions en JSON

Clés API des fournisseurs

VariableFournisseur
ANTHROPIC_API_KEYAnthropic
OPENAI_API_KEYOpenAI
GOOGLE_GENERATIVE_AI_API_KEYGoogle (Gemini)
OPENROUTER_API_KEYOpenRouter
AWS_ACCESS_KEY_IDAWS Bedrock
AZURE_API_KEYAzure OpenAI

Indicateurs de comportement

VariableDescription
CYBERSTRIKE_AUTO_SHAREPartager automatiquement les sessions
CYBERSTRIKE_DISABLE_AUTOCOMPACTDésactiver la compaction automatique
CYBERSTRIKE_DISABLE_PRUNEDésactiver l’élagage des sorties

Substitution de variables

Variables d’environnement

Référencez les variables d’environnement dans la configuration :

{
"provider": {
"anthropic": {
"options": {
"apiKey": "{env:ANTHROPIC_API_KEY}"
}
}
}
}

Références de fichiers

Incluez le contenu de fichiers :

{
"instructions": ["{file:./SECURITY.md}"]
}

Supporte :

  • Chemins relatifs : {file:./path/to/file}
  • Chemins absolus : {file:/absolute/path}
  • Répertoire personnel : {file:~/path/from/home}

Configuration LSP

Configurez le Language Server Protocol :

{
"lsp": {
"typescript": {
"command": ["typescript-language-server", "--stdio"],
"extensions": [".ts", ".tsx"]
},
"rust": {
"disabled": true
}
}
}

Définissez lsp: false pour désactiver toutes les fonctionnalités LSP.


Configuration du formateur

Configurez les formateurs de code :

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

Définissez formatter: false pour désactiver tous les formateurs.


Exemple complet

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