AI column

Security@donghyeok99Staff

REA: an MCP that lets your agent take apart closed apps

A tester gave it a 100 MB Electron app; 52 seconds later every window and IPC count matched

A lens sweeps the bytes of the Notes app, pseudocode unrolls with evidence tied back to them, and the feature is rebuilt as search in your own project.
A lens sweeps the bytes of the Notes app, pseudocode unrolls with evidence tied back to them, and the feature is rebuilt as search in your own project.
Who
Open source by morluto, fixed by many contributors; for developers and researchers who want to know how an app works without its source.
When
The repository started in April 2026; the latest release is rea-agents v6.8.0 from October 25, 2026.
Where
Runs in agents that use local MCP servers, such as Claude Code, Codex, Cursor, Gemini CLI and Grok Build; analysis stays on your machine.

What was hard

You see a feature you like in another app, but without its source there is no easy way to learn how it was built. It meant opening a decompiler and following assembly and call graphs by hand, and your agent had no tool to open that binary itself.

What it does about it

REA gives your agent one MCP server that lets it open the app's files directly. Native code goes to Hopper, Ghidra, IDA or Kuna for pseudocode and assembly; JavaScript, Electron and .NET are read as files with no engine at all. Every conclusion arrives with its evidence and its unknowns, so the agent can explain the feature and then build and test a version of it in your project.

REA launching its analysis bridge inside Hopper while inspecting a native binary
REA launching its analysis bridge inside Hopper while inspecting a native binary

What people made with it

hackernoon.comIshank Choudhary2026-10-14

Ran it on PI-Desktop's 100 MB app.asar in 52 seconds. Window, contextBridge and IPC counts all matched a manual grep; it missed two preload files whose paths were built by helper functions.

REA read 459 files (24.2 MB of text), parsed 421 JavaScript files, walked 3,114,427 AST nodes and had zero parse failures.

How it runs inside

  1. 1

    You → Claude Code

    npx rea-agents setupRegisters the REA MCP server and its workflow skill with the agents you pick, backing up existing config.src/cli/setupCommands.ts
  2. 2

    Claude Code → REA MCP server

    First tool, chosen by targetThe skill routes by what you supplied: analyze_javascript_application for an ASAR, open_binary for a native file..agents/skills/reverse-engineer-anything/SKILL.md
  3. 3

    REA MCP server → Hopper · Ghidra · IDA · Kuna

    Authenticated bridgeStarts a bridge through Hopper's --python option and talks to it only over a socket with a random token.bridge/hopper_bridge.py
  4. 4

    Hopper · Ghidra · IDA · Kuna → REA MCP server

    Pseudocode, assembly, referencesThe engine reads functions, calls, strings and references and sends them back to REA's client.src/hopper/HopperClient.ts
  5. 5

    REA MCP server → Claude Code

    trace_application_feature resultFor JavaScript apps it follows a feature's path without an engine and records the evidence sources it used.src/server/registerApplicationTools/traceFeature.ts
  6. 6

    Claude Code → Explanation, evidence, code

    Explain, implement, testThe agent explains the feature from that evidence, then builds a similar one in your project and tests it.

What goes in, what comes out

A sound call in DX-BallThe pan calculation rewritten in C, passing 3,205 original-x86 cases
Notion's renderer clipboard APIIts path through preload and IPC into the main process
A HAR recording of a web appAn RL environment folder an agent can practise in
An Electron app folder or ASARModules, imports, Electron boundaries and their evidence

Is it for you

Good for

  • Learning how a feature in an app without source works, to build something like it
  • Mapping an Electron or JavaScript app's windows, IPC and preload quickly
  • Preservation work: bringing an old game or program back as readable C/C++
  • Turning recorded web app traffic into an environment to train or evaluate agents

Not for

  • Per the README, native analysis needs Hopper, Ghidra, IDA or Kuna, and IDA, Hopper and JEB must be properly licensed.
  • On Linux, Ghidra, JADX and JavaScript analysis need a procps-compatible ps; Ghidra on Windows is still experimental.
  • In the tester's run, preload paths built through helper functions were missed by static analysis, so it reported 0 preloads.
  • MIT, so companies may use and modify it, but the README limits use to software you own or are authorized to examine.

Reviewed by Devalley’s editor before publishing. How the column is made

Sign in to post, comment and like.Sign in

Report

Reason

Read the community rules