Have you ever used a feature in an app and wondered how it works? REA, short for Reverse Engineer Anything, is an open-source project that helps investigate questions like that. You ask an AI coding agent a question in everyday language. REA connects the agent to tools that examine software and returns findings with supporting evidence.

Think of REA as a magnifying glass and a notebook for your coding agent. It helps the agent inspect structure and behavior and keep track of clues. You still need to judge whether the explanation fits the evidence.

What can REA help you do?

Suppose you are building a notes app and want to understand how another app makes search feel fast. If you are allowed to analyze that app, you can ask your agent to find the search entry point, follow the related modules or calls, and explain what it found. Once you understand the approach, you can ask the agent to design and implement a version suited to your own product.

REA supports several kinds of targets, including JavaScript and Electron apps, websites, .NET assemblies, and native binaries. Requirements vary by target. Deep native analysis usually needs a separate tool such as Hopper, Ghidra, or IDA. Static JavaScript inspection does not need a native analysis engine.

REA makes the most sense if you already use a coding agent such as Codex, Claude Code, or Cursor. It will not give you an app's complete original source code. Decompiled pseudocode, module relationships, and runtime observations are clues, not the exact code its authors wrote.

How do you get started?

  1. Choose a target you own or are authorized to examine. For a first try, pick something small and ask about one specific feature.
  2. Install Node.js and npm. The official requirements currently include Node.js 22.x from 22.19, 24.x from 24.11, or 26 and later. In a terminal, run node --version and npm --version to check your installation.
  3. Check the installation command against the official repository, then run npx rea-agents setup. Select your coding agent, review the configuration changes shown by setup, and approve them if they look right. Restart the agent afterward.
  4. Ask a focused question: “Use REA to investigate what happens after I click Search in this app I am authorized to analyze. Show the evidence first, then explain your conclusion and what remains uncertain.”
  5. Check the answer. Ask which files, functions, or observations support each conclusion. Before the agent runs the target or changes your project, review the proposed scope.

You can also use REA directly from a terminal. For a JavaScript or Electron app, the official README shows: npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json. Replace the path with a directory or ASAR file you are allowed to inspect. This route is useful when you know where the files are and are comfortable reading structured output.

How should you ask your first question?

“Reverse engineer this whole app” is too broad for a first task. Try: “Help me understand one feature. First tell me what you plan to inspect. Then separate observed facts, your inferences, and what you have not confirmed.”

That format makes progress easier to follow and helps you spot guesses presented as facts. If you want a similar feature in your own app, add: “Adapt the idea to my product, and explain which parts come from observations and which are your own design choices.”

Three things to know before you use it

  • REA is an investigation tool, not a one-click app copier. Complex software often calls for a narrower question and several rounds of checking.
  • REA analyzes targets locally, but your coding agent receives the results. Check the agent and model provider's own data policies before sharing sensitive material.
  • Analyze only software you own or are allowed to examine. REA's MIT license does not grant rights to third-party software, commercial analysis tools, or copyrighted assets.

Is REA worth trying?

If you often see a useful feature and do not know where to begin studying it, REA can turn curiosity into an investigation you can follow. For a beginner, the best start is one small question, a look at the evidence, and then a decision about whether to go deeper.

Official project: morluto/rea

Getting-started guide: rea.tools/get-started