SilentWitness

Quickstart

Install SilentWitness as a global command and run your first investigation in five minutes.

Prerequisites

RequirementWhy
Python 3.12 or 3.13silentwitness is a Python CLI
LLM API keyInvestigator drives an LLM — Anthropic / OpenAI / Gemini / Ollama
uv or pipxInstalls the CLI globally in an isolated env

Install (pick one)

SIFT 2026 OVA — one command

git clone https://github.com/Blockchain-Oracle/silentwitness && cd silentwitness && ./install.sh
silentwitness --help    # global command, ready

install.sh installs uv, runs uv tool install so the CLI shim lands at ~/.local/bin/silentwitness, then provisions Hayabusa / Chainsaw / Sigma rules / Zeek / Suricata / dfVFS / spaCy NER. Every download SHA256-verified.

Generic — any OS

# uv tool
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install "git+https://github.com/Blockchain-Oracle/silentwitness@main"

# pipx
pipx install "git+https://github.com/Blockchain-Oracle/silentwitness@main"

# npm (alias; delegates to uvx)
npm install -g silentwitness

Configure

export ANTHROPIC_API_KEY=...          # or OPENAI_API_KEY / GEMINI_API_KEY
export SILENTWITNESS_MODEL=openai:gpt-5.2   # or anthropic:claude-opus-4-7
Env varDefaultWhat
SILENTWITNESS_MODELopenai:gpt-5.2Investigator model. provider:model.
CRITIC_MODELinheritsLive critic — usually a faster sibling.
MAX_ITERSunlimitedIteration cap. Unlimited by default (PR #236).
CASES_DIR./casesWhere investigations are written.

Investigate

silentwitness init mr-evil-001 --examiner "$USER"
silentwitness register-evidence mr-evil-001 /evidence/hacking-case
silentwitness prepare mr-evil-001
silentwitness index mr-evil-001
silentwitness investigate mr-evil-001
silentwitness review mr-evil-001                  # materialise findings
silentwitness verify --audit-chain mr-evil-001    # tamper check
silentwitness export mr-evil-001 --md

What Each Command Does

CommandMeaning
initCreates cases/<case-id>/, the empty report, audit directory, evidence registry, and case metadata.
register-evidenceAdds the evidence file or folder to the case, records its hash, classifies its type, and blocks unsafe writable evidence mounts.
prepareExtracts the artifacts SilentWitness needs from the registered evidence without modifying the original image.
indexParses those artifacts into a searchable SQLite/FTS evidence index.
investigateRuns the agent: form hypotheses, search the index, record cited observations, pivot, and stage findings.
reviewShows staged findings for examiner approval, rejection, or edits.
verify --audit-chainRechecks the audit JSONL hash chains so tampering is visible.
exportProduces the final report output, and optional PDF or IOC files when requested.

That's the full workflow. The report drops at cases/mr-evil-001/report.md with inline [verify:audit_id] links resolving to JSONL audit entries.

On this page