Skip to main content

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

Projektkonfiguration

Die Projektkonfiguration passt das Cyberstrike-Verhalten fuer bestimmte Projekte an und ueberschreibt globale Einstellungen, wenn vorhanden.

📸 SCREENSHOT: project-config.png

Struktur der Projektkonfigurationsdatei

Dateispeicherort

Die Projektkonfiguration wird in cyberstrike.json (oder cyberstrike.jsonc) im Projektstamm gespeichert. Cyberstrike sucht aufwaerts vom Arbeitsverzeichnis, sodass eine Konfiguration in einem beliebigen uebergeordneten Ordner erkannt wird:

my-project/
├── cyberstrike.json ← Projektkonfiguration
├── src/
├── package.json
└── ...

Projektkonfiguration erstellen

Es gibt keinen init-Befehl — erstellen Sie die Datei manuell:

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

Grundeinstellungen

Modellauswahl

{
"model": "anthropic/claude-opus-4-5-20251101"
}

Standardagent

{
"default_agent": "cyberstrike"
}

default_agent muss ein primaerer Agent sein; er faellt auf cyberstrike zurueck, wenn nicht gesetzt oder ungueltig.

Benutzerdefinierte Anweisungen

instructions ist eine Liste von Dateien oder Glob-Mustern, deren Inhalte an den System-Prompt angehaengt werden (es ist kein Inline-Prosatext). Listen werden mit der globalen Konfiguration vereinigungsweise zusammengefuehrt:

{
"instructions": [
"SECURITY.md",
"docs/security-guidelines.md",
".cursor/rules/*.md"
]
}

Anbieterkonfiguration

Konfigurieren Sie Anbieter unter provider. Es gibt keinen provider.default-Schluessel — der aktive Anbieter ergibt sich aus model (provider/model):

{
"provider": {
"anthropic": {
"options": {
"apiKey": "{env:ANTHROPIC_API_KEY}"
}
},
"openai": {
"options": {
"apiKey": "{env:OPENAI_API_KEY}"
}
}
}
}

Siehe KI-Anbieter fuer anbieterspezifische Details.

Berechtigungen

Berechtigungen ordnen einen Werkzeugnamen einer Aktion zu (ask, allow, deny) oder einer Glob-zu-Aktion-Zuordnung. Es gibt keine Erlauben/Verweigern-Arrays und keine Berechtigungs-”Modi”:

{
"permission": {
"read": "allow",
"bash": {
"npm test": "allow",
"npm run lint": "allow",
"rm -rf *": "deny"
},
"edit": {
"reports/**": "allow",
".env*": "deny"
}
}
}

Nur * und ? werden als Platzhalter unterstuetzt. Siehe Berechtigungen fuer das vollstaendige Modell und die komplette Liste der Berechtigungsschluessel.

MCP-Server

MCP-Server werden als flache Zuordnung unter mcp deklariert, geschluesselt nach Servername. Lokale Server verwenden type: "local" mit einem einzelnen command-Array:

{
"mcp": {
"project-tools": {
"type": "local",
"command": ["node", "./tools/mcp-server.js"],
"enabled": true
}
}
}

Projekt-mcp-Eintraege werden ueber die globalen zusammengefuehrt. Um einen geerbten Server zu deaktivieren, setzen Sie sein enabled auf false:

{
"mcp": {
"some-global-server": { "enabled": false }
}
}

Benutzerdefinierte Agenten

Definieren Sie Projektagenten als Markdown-Dateien unter .cyberstrike/agents/ (siehe Benutzerdefinierte Agenten), und waehlen Sie dann einen als Standard:

{
"default_agent": "project-scanner"
}

Vollstaendiges Beispiel

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

Konfigurationsvererbung

Die Projektkonfiguration wird ueber die globale und Remote-Konfiguration zusammengefuehrt:

Remote / Well-Known Konfiguration (Basis)
↓
Globale Konfiguration (~/.config/cyberstrike/)
↓
Benutzerdefinierte Konfiguration (CYBERSTRIKE_CONFIG)
↓
Projektkonfiguration (cyberstrike.json)
↓
.cyberstrike/-Verzeichniskonfiguration
↓
CYBERSTRIKE_CONFIG_CONTENT / Verwaltete Konfiguration / CLI-Argumente (Ueberschreibung)

Siehe die Konfigurationsreferenz fuer die vollstaendige Prioritaetsreihenfolge.

Zusammenfuehrungsverhalten

EinstellungVerhalten
SkalareErsetzt
ObjekteTief zusammengefuehrt
ArraysErsetzt — ausser plugin und instructions, die vereinigungsweise zusammengefuehrt werden

Schema-Validierung

Fuegen Sie die Schema-Referenz fuer IDE-Autovervollstaendigung und Validierung hinzu:

{
"$schema": "https://cyberstrike.io/config.json"
}

Git-Integration

Projektkonfiguration committen

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

Sensible Daten ignorieren

.gitignore
# Lokale Sitzungsdaten ignorieren
.cyberstrike/sessions/

Best Practices

  1. Versionskontrolle - Committen Sie die Projektkonfiguration fuer Team-Sharing
  2. Umgebungsreferenzen verwenden - Keine API-Schluessel hart kodieren ({env:VAR})
  3. Anweisungen dokumentieren - Zeigen Sie instructions auf Ihre Sicherheitsdokumente
  4. Minimale Berechtigungen - Nur erlauben, was noetig ist
  5. Persoenliche Ueberschreibungen - Verwenden Sie CYBERSTRIKE_CONFIG fuer Einstellungen, die nicht committet werden sollen

Tip

Committen Sie cyberstrike.json fuer Team-Sharing. Verwenden Sie Umgebungsvariablen oder CYBERSTRIKE_CONFIG fuer persoenliche Ueberschreibungen, die nicht committet werden sollen.

Verwandte Dokumentation