LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

rea

Reverse-engineering CLI and MCP server for binaries, apps, and runtime behavior

TLDR

Register REA with coding agents (preview, then approve)
$ rea setup
copy
Plan the same changes without writing files
$ rea setup --dry-run --json
copy
Check host and provider readiness
$ rea doctor --json
copy
Inspect a JavaScript / Electron app directory or ASAR
$ rea analyze-javascript-application [/absolute/path/to/app] --json
copy
Native overview with Ghidra (Hopper and IDA also work)
$ rea analyze [/absolute/path/to/program] --provider [ghidra] --json
copy
Search, decompile, and xrefs at an address
$ rea search [/absolute/path/to/program] "[query]" --provider [ghidra] --json
copy
$ rea decompile [/absolute/path/to/program] [0x1000] --provider [ghidra] --json
copy
List analysis providers
$ rea providers --json
copy
Update a global npm or Bun install
$ rea update
copy

SYNOPSIS

rea [--json] command [options] [args]rea-agents command [options] [args]

DESCRIPTION

rea (Reverse Engineer Anything) inspects native binaries, JavaScript and Electron apps, .NET assemblies, websites, firmware, Android packages, and related artifacts, and returns findings with the evidence behind them. The same workflows are exposed as a one-shot CLI and as an MCP server for coding agents. Analysis runs locally.The npm package is rea-agents. `package.json` installs two bins, rea and rea-agents, both `scripts/rea.mjs`. Node.js 22.19+, 24.11+, or 26+ is required. After `npm install --global rea-agents`, use rea. Without a global install, `npx -y rea-agents@latest` runs the same CLI; `npx rea-agents setup` is the documented first step.rea setup registers the MCP server and matching workflow instructions with selected agents (Claude Code, Codex, Cursor, Gemini CLI, Grok Build, and others). It previews paths and changes and asks for approval before writing files or optionally installing Hopper. rea doctor is read-only. rea update updates only the npm or Bun global installation that owns the running CLI. rea uninstall removes REA-owned agent registrations and skill files; --purge-data also removes cache and state under `~/.rea`.Native analysis needs a configured Hopper, Ghidra, or IDA provider (`--provider` or `REAANALYSISPROVIDER`). Static JavaScript analysis needs no native engine. Default terminal output is TOON; --json is indented on a TTY and compact when piped. Exit 0 means the operation completed (the result may still include partial evidence); 1 is a failure; a cancelled setup also exits 0.`rea --help` lists the full command catalog (inspect, decompile, function, capture-process, inspect-artifact, inspect-go-binary, inspect-managed-artifact, firmware and Android helpers, Frida, ADB, browser and Electron observation, evidence import/export, and more). Each command's --help documents its arguments.

PARAMETERS

--json

Machine-readable JSON instead of the default TOON terminal format.
--provider id
Native analysis engine (`hopper`, `ghidra`, `ida`). Overrides REA_ANALYSIS_PROVIDER.
--snapshot path
Reuse or update a local analysis snapshot (owner-only permissions). An exact cache hit is read before starting a provider process.

CONFIGURATION

REA_ANALYSIS_PROVIDER

Standing native-provider preference when --provider is omitted.
REA_GHIDRA_STARTUP_TIMEOUT_MS / REA_HOPPER_STARTUP_TIMEOUT_MS
Provider startup deadline for large binaries.
REA_MCP_MAX_RESPONSE_BYTES
MCP response budget (minimum 10485760). Restart the server after changing it.
REA_JEB_MCP_URL
Optional JEB client serving MCP for JEB project tools.
~/.rea
Cache and state. rea uninstall --purge-data removes it.

COMMANDS

setup

Register MCP access and the bundled skill with selected agents. --client id (repeatable) skips the picker. --all-detected configures every detected supported client. --skill=false omits the workflow. --dry-run returns status `planned` and exits 0. --yes applies an explicit scope; without a scope it only refreshes existing REA registrations. --install-hopper is required to install missing Hopper non-interactively. --json prints the plan.
doctor
Read-only readiness. --provider hopper|ghidra|ida, --client id, --skill, and --json narrow or format the report. Exit 1 when required checks in the selected scope fail.
update
Install the resolved release into the owning npm prefix or Bun global directory, then verify the new version. Does not reopen onboarding.
uninstall [--purge-data]
Remove REA-owned MCP registrations and skill files. --purge-data also deletes `~/.rea` cache and state. Hopper, Node.js, Evidence files, and other MCP servers stay.
analyze / inspect PATH [--provider id] [--snapshot path] [--json]
Native binary overview. inspect is the same workflow.
analyze-javascript-application PATH [--json]
Static graph of an extracted app directory or `.asar` (modules, imports, Electron boundaries, evidence).
search PATH query [--provider id]
Search strings and procedures in a native target.
function PATH name-or-address [--provider id]
Function dossier.
decompile PATH address [--provider id]
Pseudocode for a procedure.
xrefs / trace / instructions
Cross-references, feature trace, and assembly for a native target (provider required).
providers / capabilities [--json]
Available binary-session providers and auxiliary capabilities.
inspect-go-binary PATH [--json]
Embedded Go build metadata; no Go toolchain or disassembler required.
inspect-managed-artifact / inspect-managed-members PATH [--type name] [--json]
.NET PE/CLI metadata and CIL without loading the assembly.
evidence-import / evidence-export / compare / inspect-analysis-view
Validate, canonicalize, compare, or project saved Evidence JSON.
mcp
Run the MCP server on stdio (`rea mcp` or `rea --mcp`).

CAVEATS

Native commands need a working Hopper, Ghidra, or IDA install; rea doctor --provider diagnoses one engine. Static JavaScript and .NET inspection read files without running the app; runtime capture (browser, Electron, process, ADB) uses your user permissions. Application Evidence for a real app can be hundreds of megabytes: save --json to a file and project a summary with inspect-analysis-view.`rea update` does not upgrade a source checkout or an `npx` copy; use `npx rea-agents@latest` for those. Setup will not install Hopper without explicit approval (--install-hopper when non-interactive). Historical-source import needs safe no-follow file opens on Linux or macOS (`unsupported_host` on native Windows).

HISTORY

REA is an MIT-licensed project by morluto. Early trees were an MCP bridge for Hopper (`betterBinaryMCP`); the published rea-agents package (6.4.0 on npm as of 2026-10-11) is a CLI plus MCP catalog covering native providers, JavaScript/Electron, managed code, firmware, Android, and evidence workflows.

SEE ALSO

radare2(1), r2(1), objdump(1), readelf(1), ida(1), frida(1), binwalk(1), jadx(1), adb(1), npm(1), npx(1), node(1)

RESOURCES

Copied to clipboard
Kai