Skip to main content

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

Environment Variables

Environment variables provide a flexible way to configure Cyberstrike, especially useful for CI/CD and containerized environments.

📸 SCREENSHOT: env-vars-terminal.png

Setting environment variables in terminal

Provider API Keys

Anthropic

Terminal window
export ANTHROPIC_API_KEY="sk-ant-api03-..."

OpenAI

Terminal window
export OPENAI_API_KEY="sk-proj-..."

Google

Terminal window
export GOOGLE_API_KEY="AI..."

OpenRouter

Terminal window
export OPENROUTER_API_KEY="sk-or-..."

Groq

Terminal window
export GROQ_API_KEY="gsk_..."

Azure OpenAI

Terminal window
export AZURE_API_KEY="..."
export AZURE_RESOURCE_NAME="your-resource"
export AZURE_DEPLOYMENT_NAME="your-deployment"

AWS Bedrock

Terminal window
export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_REGION="us-east-1"

Cyberstrike Variables

Model Selection

Terminal window
export CYBERSTRIKE_MODEL="anthropic/claude-opus-4-5-20251101"

Agent Selection

Terminal window
export CYBERSTRIKE_AGENT="web-application"

Theme

Terminal window
export CYBERSTRIKE_THEME="cyberpunk"

Permission Mode

Terminal window
export CYBERSTRIKE_PERMISSION_MODE="default"

Options: default, plan, auto

Debug Mode

Terminal window
export CYBERSTRIKE_DEBUG="true"

Log Level

Terminal window
export CYBERSTRIKE_LOG_LEVEL="debug"

Options: error, warn, info, debug

Configuration References

Use environment variables in config files:

~/.cyberstrike/config.json
{
"provider": {
"anthropic": {
"options": {
"apiKey": "{env:ANTHROPIC_API_KEY}"
}
}
}
}

Syntax Options

{
"apiKey": "{env:VAR_NAME}",
"apiKey": "${VAR_NAME}",
"apiKey": "$VAR_NAME"
}

Default Values

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

Uses default if variable is not set.

Shell Configuration

Bash

~/.bashrc
# Cyberstrike API Keys
export ANTHROPIC_API_KEY="sk-ant-..."
# Cyberstrike Settings
export CYBERSTRIKE_MODEL="anthropic/claude-sonnet-4-20250514"
export CYBERSTRIKE_THEME="cyberpunk"

Zsh

~/.zshrc
# Cyberstrike API Keys
export ANTHROPIC_API_KEY="sk-ant-..."
# Cyberstrike Settings
export CYBERSTRIKE_MODEL="anthropic/claude-sonnet-4-20250514"

Fish

~/.config/fish/config.fish
# Cyberstrike API Keys
set -gx ANTHROPIC_API_KEY "sk-ant-..."
# Cyberstrike Settings
set -gx CYBERSTRIKE_MODEL "anthropic/claude-sonnet-4-20250514"

.env Files

Project .env

.env
ANTHROPIC_API_KEY=sk-ant-...
CYBERSTRIKE_MODEL=anthropic/claude-opus-4-5-20251101
CYBERSTRIKE_AGENT=web-application

Load .env File

Terminal window
# Using dotenv-cli
dotenv -- cyberstrike
# Using source
source .env && cyberstrike
# Using export
export $(cat .env | xargs) && cyberstrike

Caution

Never commit .env files to version control. Add .env to .gitignore.

CI/CD Integration

GitHub Actions

env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
CYBERSTRIKE_PERMISSION_MODE: auto
steps:
- name: Security Scan
run: cyberstrike run "scan for vulnerabilities"

GitLab CI

variables:
ANTHROPIC_API_KEY: $ANTHROPIC_API_KEY
CYBERSTRIKE_PERMISSION_MODE: auto
security_scan:
script:
- cyberstrike run "analyze code for security issues"

Jenkins

environment {
ANTHROPIC_API_KEY = credentials('anthropic-api-key')
CYBERSTRIKE_PERMISSION_MODE = 'auto'
}
steps {
sh 'cyberstrike run "security scan"'
}

CircleCI

jobs:
security-scan:
environment:
CYBERSTRIKE_PERMISSION_MODE: auto
steps:
- run:
command: cyberstrike run "scan application"
environment:
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}

Docker

Docker Run

Terminal window
docker run -it \
-e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" \
-e CYBERSTRIKE_MODEL="anthropic/claude-sonnet-4-20250514" \
cyberstrike/cyberstrike

Docker Compose

docker-compose.yml
services:
cyberstrike:
image: cyberstrike/cyberstrike
environment:
- ANTHROPIC_API_KEY
- CYBERSTRIKE_MODEL=anthropic/claude-sonnet-4-20250514
- CYBERSTRIKE_PERMISSION_MODE=auto
env_file:
- .env

Dockerfile

FROM cyberstrike/cyberstrike
ENV CYBERSTRIKE_MODEL=anthropic/claude-sonnet-4-20250514
ENV CYBERSTRIKE_THEME=cyberpunk
# API key should be passed at runtime, not baked in
# docker run -e ANTHROPIC_API_KEY=... image

Priority Order

Environment variables have high priority:

1. Command line arguments (highest)
2. Environment variables
3. Project config (cyberstrike.json)
4. Global config (~/.cyberstrike/config.json)
5. Defaults (lowest)

Example Override

Terminal window
# Global config: model = claude-sonnet
# Environment: CYBERSTRIKE_MODEL = claude-opus
# Result: Uses claude-opus
CYBERSTRIKE_MODEL="anthropic/claude-opus-4-5-20251101" cyberstrike

Variable Reference

Core Variables

VariableDescriptionDefault
CYBERSTRIKE_MODELDefault model-
CYBERSTRIKE_AGENTDefault agent-
CYBERSTRIKE_THEMEUI themedefault
CYBERSTRIKE_DEBUGEnable debug modefalse
CYBERSTRIKE_LOG_LEVELLog verbosityinfo
CYBERSTRIKE_PERMISSION_MODEPermission modedefault

Provider Variables

VariableProvider
ANTHROPIC_API_KEYAnthropic Claude
OPENAI_API_KEYOpenAI GPT
GOOGLE_API_KEYGoogle Gemini
OPENROUTER_API_KEYOpenRouter
GROQ_API_KEYGroq
AZURE_API_KEYAzure OpenAI

Path Variables

VariableDescription
CYBERSTRIKE_CONFIG_DIRConfig directory
CYBERSTRIKE_DATA_DIRData directory
CYBERSTRIKE_CACHE_DIRCache directory

Checking Variables

List Active Variables

Terminal window
cyberstrike config env

Check Specific Variable

Terminal window
echo $ANTHROPIC_API_KEY | head -c 20

Verify Configuration

Terminal window
cyberstrike config get model
# Shows effective model after all overrides

Security

Protect API Keys

  1. Never echo full API keys
  2. Use secrets management in CI/CD
  3. Rotate keys periodically
  4. Monitor key usage

Secure .env Files

Terminal window
# Restrict permissions
chmod 600 .env
# Add to gitignore
echo ".env" >> .gitignore

Tip

Use a secrets manager like HashiCorp Vault, AWS Secrets Manager, or 1Password CLI for production environments.