Install
Run the whole pipeline (offline)
v1 → v2 diff carry annotations forward and print a semantic changelog.
Reverse-engineer your own module
Create a project and ingest the target
Ingestion parses the
.wasm (and optional Emscripten JS glue), fingerprints every function,
and seeds names for free from exports, imports, and the name section.Identify runtime code with the Oracle
Build a signature corpus from any module that still carries a name section (a debug or
--profiling-funcs build), then identify the stripped target against it. This typically
collapses a large fraction of a module to known musl/runtime code instantly.To build a full corpus from the Emscripten toolchain across a version × flag matrix, use
the containerized farm in
scripts/corpus/. See the Oracle guide.Name the rest with the agent crew
The crew proposes names for the application-specific remainder, gated by a verifier and the
provenance/confidence economy. Runs with an offline heuristic by default; set
OPENAI_API_KEY or ANTHROPIC_API_KEY (and pip install -e '.[agents]') for the LLM crew.When a new version ships, diff it
Carry annotations forward automatically and review only the genuine deltas.The changelog separates real app changes (review these) from runtime/toolchain churn (an
Emscripten bump, safely ignored). Read about diffing →
Optional power-ups
The base install is intentionally minimal. Opt into extras as you need them.Next: the mental model
Three ideas make every WARDEN command click. Read them before going deeper.