Skip to main content
Shannon supports workspaces that allow you to resume interrupted or failed runs without re-running completed agents.

How It Works

  • Every run creates a workspace in audit-logs/ (auto-named by default, e.g. example-com_shannon-1771007534808)
  • Use WORKSPACE=<name> to give your run a custom name for easier reference
  • To resume any run, pass its workspace name via WORKSPACE= — Shannon detects which agents completed successfully and picks up where it left off
  • Each agent’s progress is checkpointed via git commits, so resumed runs start from a clean, validated state

Usage Examples

1

Start with a named workspace

./shannon start URL=https://example.com REPO=repo-name WORKSPACE=my-audit
2

Resume the same workspace

Simply run the same command again — Shannon skips completed agents:
./shannon start URL=https://example.com REPO=repo-name WORKSPACE=my-audit
3

Resume an auto-named workspace

./shannon start URL=https://example.com REPO=repo-name WORKSPACE=example-com_shannon-1771007534808
4

List all workspaces

View all workspaces and their status:
./shannon workspaces

Important Notes

The URL must match the original workspace URL when resuming. Shannon will reject mismatched URLs to prevent cross-target contamination.

Workspace Structure

Each workspace is stored in the audit-logs/ directory with the following structure:
audit-logs/{hostname}_{sessionId}/
├── session.json          # Metrics and session data
├── agents/               # Per-agent execution logs
├── prompts/              # Prompt snapshots for reproducibility
└── deliverables/
    └── comprehensive_security_assessment_report.md

Git Checkpoints

Shannon uses git commits to checkpoint each agent’s progress. When you resume a workspace:
  1. Shannon loads session.json to detect completed agents
  2. Validates that deliverables exist for completed agents
  3. Restores git checkpoints to ensure a clean state
  4. Cleans up any incomplete deliverables from failed agents
  5. Continues execution from the next pending agent
This ensures that resumed runs are reliable and don’t repeat work unnecessarily.

Build docs developers (and LLMs) love