CLI
CyberStrike CLI defaults to launching the TUI when run without arguments. It also accepts commands for non-interactive and programmatic use.
cyberstrike [global-options] <command> [command-options] [arguments]Global Flags
| Flag | Alias | Description |
|---|---|---|
--help | -h | Display help information |
--version | -v | Print version |
--print-logs | Output logs to stderr | |
--log-level | Set level: DEBUG, INFO, WARN, ERROR |
Commands
| Command | Description |
|---|---|
run | Non-interactive mode with a direct prompt |
serve | Headless HTTP server for API access |
web | Headless server with web interface |
attach | Connect TUI to a running server |
auth | Manage credentials and provider login |
agent | Manage security agents |
mcp | Manage MCP servers |
models | List available models from providers |
session | Manage sessions |
stats | Display token usage and cost statistics |
export | Export session data as JSON |
import | Import from JSON file or share URL |
github | GitHub App integration |
pr | Review a pull request by number |
upgrade | Update to latest or specific version |
uninstall | Remove CyberStrike and related files |
completion | Generate shell completion scripts |
Interactive Mode
# Launch TUIcyberstrike
# Start with specific modelcyberstrike --model anthropic/claude-sonnet-4-20250514
# Continue previous sessioncyberstrike --continue| Option | Alias | Description |
|---|---|---|
--model <model> | -m | Model in format provider/model |
--agent <name> | Security agent to use | |
--continue | -c | Continue last session |
--session <id> | -s | Resume specific session |
run
Execute a single prompt without entering interactive mode. In this mode there is nobody to answer permission prompts, so any tool that would prompt is auto-rejected (see Automation).
cyberstrike run [message..] [options]Options
| Option | Alias | Description |
|---|---|---|
--model <model> | -m | Model in format provider/model |
--agent <name> | Security agent to use | |
--continue | -c | Continue last session |
--session <id> | -s | Resume specific session |
--fork | Fork the session before continuing (needs --continue/--session) | |
--file <path> | -f | Attach file(s) to message (repeatable) |
--format <type> | Output format: default or json | |
--share | Share the session | |
--title <text> | Set session title | |
--variant <type> | Model variant (high, max, minimal) | |
--thinking | Show thinking blocks | |
--attach <url> | Attach to a running server | |
--dir <path> | Directory to run in (remote path when attaching) | |
--port <number> | Port for the local server | |
--command <name> | Run a named command; use the message for its arguments |
Caution
There is no --output, --permission, --timeout, --verbose, or --quiet flag. Output control is --format (default | json); reasoning display is --thinking.
Examples
# Run a security scancyberstrike run "scan example.com for XSS vulnerabilities"
# Attach files for reviewcyberstrike run "analyze this config for misconfigurations" -f nginx.conf
# JSON output for scriptingcyberstrike run "list all open ports" --format json > report.json
# Continue or fork a sessioncyberstrike run "now check for SQLi" --continuecyberstrike run "try a different payload" --session <id> --forkPiping Input
echo "analyze this code for vulnerabilities" | cyberstrike runnmap -sV target.local | cyberstrike run "analyze these scan results"Permissions in run
Pre-approve tools for non-interactive use with the CYBERSTRIKE_PERMISSION env var:
CYBERSTRIKE_PERMISSION='{"bash":"allow","read":"allow"}' \ cyberstrike run "enumerate services on the host" --format jsonSee Automation for CI patterns.
serve
Start a headless HTTP API server without a UI.
cyberstrike serve [options]| Option | Description |
|---|---|
--port <number> | Server port (default: 4096) |
--hostname <address> | Bind address (default: 127.0.0.1) |
--cors <origin> | Allowed CORS origin |
--mdns | Advertise the server over mDNS |
Caution
Authentication: Set CYBERSTRIKE_SERVER_PASSWORD when exposing the server on a network. Without it, the server is unsecured.
CYBERSTRIKE_SERVER_PASSWORD=secret cyberstrike serve --port 4096attach
Connect a TUI to an already-running CyberStrike server.
cyberstrike attach <url># Start server in one terminalcyberstrike web --port 4096
# Attach from another terminalcyberstrike attach http://localhost:4096auth
Manage authentication credentials for AI providers. Three subcommands — login, logout, list — all interactive (no flags).
auth login
cyberstrike auth login [url]Shows a provider list and prompts for an API key or OAuth flow. The optional url pre-selects a well-known provider URL. Credentials are stored in ~/.local/share/cyberstrike/auth.json.
auth list
cyberstrike auth list # alias: lsauth logout
cyberstrike auth logoutInteractively select a stored credential to remove.
Caution
There is no auth status, auth verify, auth refresh, or auth switch command. Login is always the interactive auth login flow. You can also set provider keys via environment variables — see AI Providers.
mcp
Manage Model Context Protocol servers. Five subcommands: list, add, auth, logout, debug.
Caution
Server config lives in cyberstrike.json (see MCP), and servers are managed interactively in the /mcps TUI dialog. There are no mcp status, health, start/stop/restart, remove, config, or tools commands.
mcp list
cyberstrike mcp list # alias: lsmcp add
cyberstrike mcp addFully interactive — prompts for local vs remote, command or URL, and name. Tests the connection before saving. No positional args or flags; to script server setup, write the entry into cyberstrike.json directly.
mcp auth
cyberstrike mcp auth [name] # authorize an OAuth servercyberstrike mcp auth list # list OAuth-authorized serversAuthorizes a remote server that uses OAuth. See OAuth.
mcp logout
cyberstrike mcp logout [name]mcp debug
cyberstrike mcp debug <name>Inspects a server’s connection — useful when a server fails to load or tools don’t appear.
session
Manage conversation sessions.
cyberstrike session list [options]| Option | Alias | Description |
|---|---|---|
--max-count <n> | -n | Limit to N recent sessions |
--format <type> | Output: table or json |
agent
cyberstrike agent [name]Without a name, lists available agents. With a name, shows agent details and prompt.
models
cyberstrike modelsLists all available models organized by provider.
github
github install
cyberstrike github installInstall the Cyberstrike GitHub App into a repository.
github run
cyberstrike github runRun Cyberstrike against a GitHub event (used by the CI workflow).
pr
cyberstrike pr <number>Review a pull request by number.
export / import
cyberstrike export [sessionID] # export session as JSON to stdoutcyberstrike import <file> # import session datastats
cyberstrike statsShows token usage, session counts, and cost estimates.
upgrade
cyberstrike upgrade [version]Update to the latest stable version or a specific target. Supported methods: curl, npm, pnpm, bun, brew, choco, scoop.
completion
cyberstrike completion >> ~/.bashrc # Bashcyberstrike completion >> ~/.zshrc # Zshcyberstrike completion | source # FishEnvironment Variables
| Variable | Description |
|---|---|
CYBERSTRIKE_PROVIDER | Default AI provider |
CYBERSTRIKE_MODEL | Default model |
CYBERSTRIKE_AGENT | Default security agent |
CYBERSTRIKE_SERVER_PASSWORD | Server authentication password |
CYBERSTRIKE_SERVER_USERNAME | Server username (default: cyberstrike) |
CYBERSTRIKE_PERMISSION | JSON permission override for non-interactive use |
CYBERSTRIKE_CONFIG | Path to a custom config file |
CYBERSTRIKE_AUTO_SHARE | Auto-share sessions |
CYBERSTRIKE_DISABLE_AUTOUPDATE | Disable automatic update checks |
ANTHROPIC_API_KEY | Anthropic API key |
OPENAI_API_KEY | OpenAI API key |
GOOGLE_GENERATIVE_AI_API_KEY | Google AI (Gemini) API key |
OPENROUTER_API_KEY | OpenRouter API key |
Exit Codes
| Code | Meaning |
|---|---|
0 | Success |
1 | Error — invalid/unknown arguments, or a fatal error |
130 | Interrupted (Ctrl+C) |