start
Start a new penetration testing workflow or resume an existing workspace.Usage
Required Parameters
Target URL to test (e.g.,
https://example.com)Repository folder name under
./repos/ containing the target application source codeImportant: This must be a folder name (e.g., my-repo), not an absolute path. Clone or symlink your repository to ./repos/ first:Optional Parameters
Path to YAML configuration file with auth settings, MFA/TOTP, and testing parameters
Custom output directory for reports and logs
Named workspace identifier. Enables resuming previous runs or creating organized workspaces
- New workspace: Creates a new workspace with the specified name
- Resume: If workspace exists, automatically resumes from last checkpoint
- Auto-named: Without this flag, workspaces are auto-named from URL + timestamp
Enable minimal prompts and fast retries for testing and development
Enable multi-model routing through
claude-code-router for alternative providersSupports OpenAI, OpenRouter, and other providers. Requires provider API keys in .envForce Docker rebuild with
--no-cache flagUse when code changes aren’t being picked up by the containerExamples
Basic workflow
Basic workflow
Named workspace for organized testing
Named workspace for organized testing
q1-audit that can be resumed later with the same command.Custom configuration and output
Custom configuration and output
./reports/ instead of default ./audit-logs/Multi-model routing with OpenAI
Multi-model routing with OpenAI
Error Handling
Missing required parameters
Missing required parameters
Repository not found
Repository not found
Missing API credentials
Missing API credentials
Error:
logs
Tail real-time logs for a specific workflow.Usage
Required Parameters
Workflow ID to view logs forFormat:
{hostname}_{sessionId} (e.g., example.com_shannon-1234567890)Examples
Tail workflow logs
Tail workflow logs
Resume workflow logs
Resume workflow logs
Error Handling
Workflow not found
Workflow not found
Notes
- The logs command automatically searches for log files in:
- Default location:
./audit-logs/{ID}/workflow.log - Resume workflow locations
- Custom output directories (up to 3 levels deep)
- Default location:
- Logs are displayed in real-time using
tail -f - Press
Ctrl+Cto stop tailing
workspaces
List all active and completed workspaces with their status.Usage
Examples
List all workspaces
List all workspaces
Notes
- Requires Temporal containers to be running (automatically started)
- Shows both in-progress and completed workflows
- Displays workspace names, target URLs, status, and timestamps
- Use workspace names with the
WORKSPACEparameter to resume
stop
Stop Shannon containers and optionally clean up all data.Usage
Optional Parameters
Remove all data including Docker volumesWithout CLEAN: Preserves workflow data, databases, and state for resumingWith CLEAN=true: Complete cleanup including all volumes and persistent data
Examples
Stop containers (preserve data)
Stop containers (preserve data)
./shannon start again will resume from checkpoints.Stop and clean all data
Stop and clean all data
Notes
- Default stop preserves Temporal workflow state and PostgreSQL data
- Use
CLEAN=trueonly when you want to completely reset Shannon - Audit logs in
./audit-logs/are NOT removed byCLEAN=true - Router container is always stopped (uses
--profile router)
help
Display Shannon CLI help information with ASCII banner and usage examples.Usage
Output
Notes
- Default command when no arguments provided
- Also triggered by
--help,-h, or invalid commands - Displays full ASCII banner and comprehensive usage information