# Anthropic API Key (recommended)ANTHROPIC_API_KEY=your-api-key-here# Recommended for larger tool outputsCLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
.env
# Enable Bedrock modeCLAUDE_CODE_USE_BEDROCK=1AWS_REGION=us-east-1AWS_BEARER_TOKEN_BEDROCK=your-bearer-token# Bedrock-specific model IDs for your regionANTHROPIC_SMALL_MODEL=us.anthropic.claude-haiku-4-5-20251001-v1:0ANTHROPIC_MEDIUM_MODEL=us.anthropic.claude-sonnet-4-6ANTHROPIC_LARGE_MODEL=us.anthropic.claude-opus-4-6CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
.env
# Enable Vertex AI modeCLAUDE_CODE_USE_VERTEX=1CLOUD_ML_REGION=us-east5ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-idGOOGLE_APPLICATION_CREDENTIALS=./credentials/gcp-sa-key.json# Vertex AI model IDsANTHROPIC_SMALL_MODEL=claude-haiku-4-5@20251001ANTHROPIC_MEDIUM_MODEL=claude-sonnet-4-6ANTHROPIC_LARGE_MODEL=claude-opus-4-6CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
Small (Haiku) β Summarization and lightweight tasks
Medium (Sonnet) β Security analysis and vulnerability detection
Large (Opus) β Deep reasoning and complex exploit chains
3
Prepare Target Repository
Shannon expects repositories under the ./repos/ directory:
# Clone your target applicationgit clone https://github.com/your-org/your-app.git ./repos/your-app
Single Repository
Monorepo
Multi-Repository
Symlink
# Standard single-repo applicationgit clone https://github.com/your-org/app.git ./repos/app
# Application with multiple services in one repogit clone https://github.com/your-org/monorepo.git ./repos/monorepo
# Separate frontend, backend, and API reposmkdir ./repos/your-appcd ./repos/your-appgit clone https://github.com/your-org/frontend.gitgit clone https://github.com/your-org/backend.gitgit clone https://github.com/your-org/api.git
# Link to an existing local repositoryln -s /path/to/existing/repo ./repos/my-app
White-box testing only. Shannon requires access to your applicationβs source code. It analyzes code to intelligently guide attack strategies.
4
Verify Installation
Test that Shannon is properly configured:
# Start Shannon and check for errors./shannon start URL=https://example.com REPO=your-app
You should see:
Starting Shannon containers...Waiting for Temporal to be ready...Temporal is ready!π Pentest workflow startedWorkflow ID: example.com_shannon-1234567890
The first run downloads Docker images (approximately 2GB). Subsequent runs start almost instantly.
Docker containers canβt reach localhost on your host. Use host.docker.internal:
# WRONG: Shannon can't reach localhost:3000 from inside Docker./shannon start URL=http://localhost:3000 REPO=app# CORRECT: Use special DNS name for host machine./shannon start URL=http://host.docker.internal:3000 REPO=app
Problem:ERROR: Repository not found at ./repos/my-repoSolution:REPO must be a folder name inside ./repos/, not an absolute path:
# Clone your repo into ./repos/git clone https://github.com/org/repo.git ./repos/my-repo# Then use just the folder name./shannon start URL=https://example.com REPO=my-repo
Security Reminder: Shannon actively executes exploits. Always test on sandboxed, staging, or local development environments β never on production systems.