Analyze JavaScript or Electron apps with REA
In REA 6.5.0 (October 2026), static JavaScript/Electron analysis is a single CLI command and needs no native analysis engine.
Static JavaScript / Electron analysis is built into REA and does not need Hopper, Ghidra or IDA:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
The target is an extracted application directory or an ASAR. Generic rea analyze PATH selects this workflow for directories and .asar files when neither --provider nor --snapshot is supplied.
On Linux, this lane uses REA's process supervisor and needs a procps-compatible ps on PATH.
Only analyze apps you own or are authorized to examine.
When static JS analysis is enough
| You want | Use |
|---|---|
| Modules, imports, routes, IPC, native add-on relationships | analyze-javascript-application |
Deep native code inside a .node addon | Native provider (Ghidra/Hopper/IDA) separately |
| Runtime browser behavior | Browser / capture guides (upstream), not this command |
Static inspection reads the files you supply without running the application.
Steps
1. Install or use npx
npx rea-agents@latest setup # once, for agent use
# or one-shot:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
2. Point at an absolute path
Replace the path with your authorized target (Windows example shape from upstream: "D:/apps/example").
3. Save large Evidence and project a view
Complete Evidence can be hundreds of megabytes. Upstream documents a 334 MB Obsidian Evidence file shrinking to an ~10 KB summary via inspect-analysis-view:
rea analyze-javascript-application /absolute/path/to/app --json > app-evidence.json
jq -c '{source: {kind: "inline", evidence: .}, view: {kind: "summary"}}' app-evidence.json > app-view.json
rea inspect-analysis-view app-view.json
Module page example view object:
{"kind": "page", "collection": "modules", "offset": 0, "limit": 32}
Linux prerequisite
Install procps / procps-ng so a compatible ps is on PATH before blaming the analyzer. See common errors.
Related on RepoRead
FAQ
Does this execute the Electron app?
The static JavaScript application workflow reads supplied files; it does not replace runtime capture guides. Use process/browser capture docs when you intentionally run a target.
ASAR or unpacked directory?
Upstream accepts an extracted application directory or an ASAR.
Why absolute paths?
So CLI and MCP sessions resolve the same target regardless of the working directory.
Output format?
Pass --json for machine-readable Evidence. Default TTY format is TOON.
Can I use this on arbitrary Store apps?
Only with authorization. Unauthorized copying or DRM bypass is out of scope.