How tanbui/rea works
REA is a local reverse-engineering toolkit exposed to agents through MCP and to engineers through a CLI. The principal workflow is an agent or terminal user requesting analysis, a tool or command routing the request to analysis logic, and a provider producing evidence. The README also highlights JavaScript/Electron and website analysis, binary analysis, and runtime behavior. Edges are limited to relationships visible in the README or sampled source references; unsampled feature implementations are shown without speculative wiring.
Main entry points: evidence.ts Analysis evidence · ReverseEngineeringService.ts Reverse analysis · reverseEngineeringCommands.ts Reverse CLI · main.ts MCP server
Components 25
User entry points
- MCP server
src/main.ts - Reverse tool routes
src/server/registerReverseEngineeringTools.ts - Reverse CLI
src/cli/reverseEngineeringCommands.ts
Analysis services
- Reverse analysis
src/application/reverse/ReverseEngineeringService.ts - Tool contracts
src/contracts/reverseEngineeringToolContracts.ts - JavaScript routes
src/domain/javascript/javascriptRouteScan.ts - JavaScript views
src/domain/analysisView/javascriptRoutesView.ts - Coverage service
src/application/ReconstructionCoverageService.ts
Analysis providers
- Ghidra client
src/ghidra/GhidraClient.ts - IDA client
src/ida/IdaSessionClient.ts - Kuna client
src/kuna/KunaSessionClient.ts - Hopper client
src/hopper/HopperClient.ts - GDB sessions
src/gdb/GdbSessionManager.ts - Rizin debugging
src/rizin/RizinDebugSessionManager.ts
Evidence and results
- Analysis evidence
src/domain/evidence.ts - Error projection
src/domain/analysisErrorProjection.ts - MSIX storage
src/application/MsixPackageStorage.ts
Runtime inspection
- Browser capture
src/browser/CdpCaptureStorageFingerprints.ts - Browser scenarios
src/browser/PlaywrightScenarioStorage.ts - Frida instrumentation
src/frida/FridaInstrumentationManager.ts - Native call routes
src/application/native/NativeCallRoutes.ts - SQLite inspection
src/sqlite/SqliteDatabaseInspection.ts - Website runtime
website/worker.mjs
Other components
- Agent
- Terminal user
Connections 14
- Agent → MCP server: calls tools
README.md - Terminal user → Reverse CLI: runs commands
README.md - MCP server → Reverse tool routes: registers tools
src/main.ts - Reverse tool routes → Reverse analysis: invokes
src/server/registerReverseEngineeringTools.ts - Reverse CLI → Reverse analysis: invokes
src/cli/reverseEngineeringCommands.ts - Reverse analysis → Analysis evidence: returns evidence
src/application/reverse/ReverseEngineeringService.ts - Reverse analysis → Error projection: uses errors
src/application/reverse/ReverseEngineeringService.ts - Reverse CLI → Tool contracts: imports contracts
src/cli/reverseEngineeringCommands.ts - JavaScript views → JavaScript routes: uses route facts
src/domain/analysisView/javascriptRoutesView.ts - MSIX storage → Analysis evidence: uses result types
src/application/MsixPackageStorage.ts - GDB sessions → Analysis evidence: uses evidence types
src/gdb/GdbSessionManager.ts - Rizin debugging → Analysis evidence: uses evidence types
src/rizin/RizinDebugSessionManager.ts - Kuna client → Analysis evidence: uses evidence types
src/kuna/KunaSessionClient.ts - Browser capture → Browser scenarios