Global Configuration
Global configuration sets default behavior for all Cyberstrike sessions across all projects.
📸 SCREENSHOT: global-config.png
Global configuration file location
File Location
Global configuration lives in the global config directory:
~/.config/cyberstrike/This resolves to $XDG_CONFIG_HOME/cyberstrike when XDG_CONFIG_HOME is set.
Supported File Names
The following files are read from the global config directory and merged in order:
| File | Format | Priority |
|---|---|---|
config.json | JSON | Low (base, auto-generated) |
cyberstrike.json | JSON | Medium |
cyberstrike.jsonc | JSON with Comments | High (preferred) |
If multiple files exist, all are read and each subsequent file is merged on top of the previous one.
Directory Structure
~/.config/cyberstrike/├── config.json ← auto-generated global config├── cyberstrike.json ← global config├── cyberstrike.jsonc ← global config (preferred)├── agents/ ← custom agents (*.md) (also accepts agent/)├── commands/ ← custom commands (*.md) (also accepts command/)└── plugins/ ← plugins (*.ts / *.js) (also accepts plugin/)Cyberstrike additionally scans a ~/.cyberstrike/ directory in your home folder for cyberstrike.json/cyberstrike.jsonc and the same agents/, commands/, plugins/ subfolders.
Creating Global Config
There is no init command — create the file manually:
{ // Cyberstrike global config "$schema": "https://cyberstrike.io/config.json", "model": "anthropic/claude-sonnet-4-20250514"}Model Configuration
Default Model
{ "model": "anthropic/claude-sonnet-4-20250514"}Format: provider/model.
Small Model
Used for lightweight tasks such as session title generation:
{ "small_model": "anthropic/claude-haiku-4-5-20251001"}Provider Configuration
Configure providers individually under provider. The options object is passed through to the provider SDK:
{ "provider": { "anthropic": { "options": { "apiKey": "{env:ANTHROPIC_API_KEY}" } } }}Enabling / Disabling Providers
{ "disabled_providers": ["ollama"], "enabled_providers": ["anthropic", "openai"]}When enabled_providers is set, only those providers are loaded; all others are ignored. See AI Providers for per-provider details.
Theme
theme is the name of an installed theme (a string). The default is cyberstrike:
{ "theme": "cyberstrike"}Browse and switch themes in the TUI with the /themes command (or <leader>t). Built-in themes include cyberstrike, tokyonight, catppuccin, dracula, gruvbox, nord, github, monokai, matrix, rosepine, solarized, and more.
Keybindings
Leader Key
{ "keybinds": { "leader": "ctrl+x" }}Custom Bindings
{ "keybinds": { "leader": "ctrl+a", "session_new": "<leader>n", "session_list": "<leader>l", "model_list": "<leader>m", "theme_list": "<leader>t", "app_exit": "ctrl+c,ctrl+d,<leader>q" }}See Keybindings for the full list of actions and defaults.
Permission Defaults
Permissions map a tool name to an action (ask, allow, or deny), or to a glob → action map. There is no separate allow/deny list — the tool key is the grouping:
{ "permission": { "read": "allow", "glob": "allow", "grep": "allow", "bash": { "*": "ask", "rm -rf *": "deny" }, "edit": { "*": "ask", "~/.ssh/**": "deny" } }}Only * and ? are supported as wildcards. See Permissions for the full model and the list of permission keys.
MCP Servers
MCP servers are declared as a flat map under mcp, keyed by server name. Local servers use type: "local" with a single command array (command + args together); remote servers use type: "remote" with a url:
{ "mcp": { "filesystem": { "type": "local", "command": ["npx", "-y", "@modelcontextprotocol/server-filesystem", "~"], "environment": { "DEBUG": "true" }, "enabled": true }, "remote-api": { "type": "remote", "url": "https://api.example.com/mcp", "enabled": true } }}Bolt servers are configured separately under the top-level bolt key, not under mcp. See Bolt / MCP.
Default Agent
Set the default agent (must be a primary agent; falls back to cyberstrike if unset or invalid):
{ "default_agent": "cyberstrike"}Custom agents are loaded from the agents/ (or agent/) directory in the config dir — see Custom Agents.
Compaction
Control automatic context compaction:
{ "compaction": { "auto": true, "prune": true }}| Option | Description |
|---|---|
auto | Auto-compact when the context is full (default: true) |
prune | Prune old tool outputs (default: true) |
Logging & Updates
{ "logLevel": "INFO", "autoupdate": "notify"}logLevel is one of DEBUG, INFO, WARN, ERROR (default INFO). autoupdate accepts true, false, or "notify".
Full Example
{ "$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": { "apiKey": "{env:ANTHROPIC_API_KEY}" } } },
"permission": { "read": "allow", "edit": { "*": "ask" }, "bash": { "*": "ask", "rm -rf *": "deny" } },
"mcp": { "filesystem": { "type": "local", "command": ["npx", "-y", "@modelcontextprotocol/server-filesystem", "."], "enabled": true } },
"keybinds": { "leader": "ctrl+x" }, "compaction": { "auto": true, "prune": true }}Backup
cp ~/.config/cyberstrike/cyberstrike.jsonc ~/.config/cyberstrike/cyberstrike.jsonc.backupSecurity Considerations
File Permissions
chmod 600 ~/.config/cyberstrike/cyberstrike.jsoncchmod 700 ~/.config/cyberstrike/Sensitive Data
Never store API keys directly — reference environment variables instead:
{ "provider": { "anthropic": { "options": { "apiKey": "{env:ANTHROPIC_API_KEY}" } } }}Caution
Always use environment variable references ({env:VAR}) for sensitive data like API keys.
Related Documentation
- Configuration Reference - All configuration options
- Project Config - Project settings
- Environment Variables - Env vars
- Keybindings - Keyboard shortcuts