Skip to main content

Quickstart (5 minutes)

A walkthrough that gets you to your first audit in five minutes. This page assumes Installation is done and speca doctor is green.

1. Sign in to Claude (once)

speca auth login

Either pastes an API key into ~/.config/speca/auth.json or delegates to claude's session. speca auth status confirms.

2. Generate the two config files

speca init

Interactively asks for:

  • the target repository URL and commit/tag,
  • the target language and the layer (consensus, execution, application…),
  • a scope rubric — pick default to start with the ethereum.org rubric, or custom to author your own.

It writes outputs/TARGET_INFO.json and outputs/BUG_BOUNTY_SCOPE.json. These are the two files that drive the entire pipeline; their schemas are documented in Configuration files.

Non-interactive form:

speca init \
--target-repo https://github.com/sigp/lighthouse \
--target-commit v5.1.3 \
--target-language Rust \
--target-layer consensus \
--rubric default \
--non-interactive

3. Run the audit

speca run --target 04 --workers 4

Phases 01a → 01b → 01e → 02c → 03 → 04 run in dependency order, with progress streamed to a TUI dashboard. Cost and budget are visible in the header. For the meaning of each phase ID see Pipeline overview.

Common flags:

FlagEffect
--target 04Run all phases up through Phase 04
--phase 03 04Run only the listed phases
--workers 44 parallel workers per phase
--max-concurrent 8Cap on simultaneous Claude invocations
--budget 50Hard-stop the phase if cost exceeds $50
--forceIgnore resume state and re-run
--jsonEmit raw NDJSON events instead of the TUI

Full reference: CLI reference.

4. Browse the findings

speca browse # default: outputs/04_PARTIAL_*.json
speca browse --severity Critical
speca browse --filter "severity:High AND verdict:CONFIRMED_*"

The TUI shows each finding's property, code excerpt, proof gap, and gate trace. Pressing c opens the code peek; f edits the filter; q quits.

5. Drill in

speca ask # pick the first finding interactively
speca ask PROP-abc-001 --from outputs/04_PARTIAL_*.json

Resumes a Claude Code session pre-loaded with the finding context. Useful for asking "what is the exact proof step that fails?" or "show me a minimal patch."

What you should see

A representative finding row in speca browse:

PROP-001 HIGH CONFIRMED_VULNERABILITY src/auth.rs:85
proof_gap: "Missing auth check in error_handler() — unreachable path
skips verify_auth() before sensitive_data()"
gates: dead_code=PASS · trust_boundary=PASS · scope=PASS

For more on the verdict vocabulary, see 3-gate review.

How long does it take? How much does it cost?

Rough envelopes from RQ1 / RQ2:

CodebaseWall-clock (Phase 03 dominates)Cost (Sonnet 4.5)
Small contract (~1 K LoC)5–10 min$1–5
Mid-size repo (~50 K LoC)15–40 min$20–50
Production client (~500 K LoC)1–3 hours$50–100

For tighter cost control, see design-notes/model-benchmark-takeaways.