Deepseek ArtifactsDeepseek Artifacts
GitHub open-source guide

REA (Reverse Engineer Anything): Install & Use Reverse-Engineering Skills in Claude Code / Codex

REA is morluto/rea on GitHub: an MIT-licensed MCP server, a CLI and a reverse-engineer-anything agent skill that let Claude Code, Codex, Cursor and other clients inspect binaries, Electron apps, .NET assemblies, APKs and websites — locally, with evidence. Here is the verified install, the first commands, and where the legal line actually sits.

REA at a glance

  • One project, three pieces: the `rea-agents` npm package ships the `rea` CLI, a local MCP server, and the `reverse-engineer-anything` skill that tells the agent which tool fits which target.
  • The install is one reviewed command: `npx rea-agents setup` lists the exact config paths, backups and skill destinations, then waits for your approval. Nothing is written before you approve.
  • Claude Code, Codex and Cursor each have a native route too — two `/plugin` prompts, two `codex plugin` commands, or a Cursor Marketplace plugin — and setup can configure 28 clients directly.
  • REA is not a sandbox and does not decide what is legal: it runs with your user permissions on targets you must be authorized to analyse, and the project's own disclaimer lists what it refuses to help with.

morluto/rea — README

Source: github.comchecked 2026-11-13

Open

docs/getting-started/installation.md

Source: github.comchecked 2026-11-13

Open

.agents/skills/reverse-engineer-anything/SKILL.md

Source: github.comchecked 2026-11-13

Open

docs/getting-started/cli.md

Source: github.comchecked 2026-11-13

Open

rea-agents — npm registry

Source: registry.npmjs.orgchecked 2026-11-13

Open

DISCLAIMER.md + SECURITY.md

Source: github.comchecked 2026-11-13

Open

dsh-rea — DeepSeek Harness directory

Source: deepseekharnessplugins.comchecked 2026-11-13

Open

dsh-reverse-skill — DeepSeek Harness directory

Source: deepseekharnessplugins.comchecked 2026-11-13

Open

Every command, client ID, version and number on this page was read from the sources above on 2026-11-13: the repository README, docs/getting-started/installation.md, the bundled SKILL.md, docs/getting-started/cli.md, DISCLAIMER.md and SECURITY.md, and the npm registry. Repository facts come from the GitHub API on the same day: 455,720 stars, 111,916 forks, created 2026-04-14; latest npm release `rea-agents` 6.9.0, published 2026-11-12. Star counts move daily, so treat them as a dated snapshot. This page quotes no performance figure at all: the README and docs we checked cite no benchmark results, so none is repeated here.

What REA actually is

REA stands for Reverse Engineer Anything. It is a third-party open-source project by morluto, MIT licensed, at github.com/morluto/rea, with the site rea.tools. It is not an Anthropic, OpenAI or Cursor product, and it is not a decompiler: it is the layer that lets a coding agent drive decompilers and static parsers, then explain what it found.

The distribution is the `rea-agents` npm package. It exposes the `rea` command, a local MCP server, and the `reverse-engineer-anything` skill — a workflow document that tells the agent to route the target first (ASAR/Electron, archive, APK, .NET, firmware, native binary, browser page, capture) and to keep every conclusion tied to Evidence. Analysis runs on your machine; the agent receives the tool results, and its model provider applies its own data policy.

Deep native analysis is bring-your-own: Hopper, Ghidra, IDA or Kuna. Setup can install Hopper after a separate approval, and it reuses an existing Ghidra, IDA or Kuna. Static JavaScript/Electron and .NET inspection need no native engine at all — which is why a first test on an Electron app is the cheapest way to find out whether REA earns its place in your workflow.

npm release
rea-agents 6.9.0
License
MIT
GitHub stars
455,720
Repository created
2026-04-14

What it can look at

The README's target table has 39 rows; this is the part that decides whether you install it. The last column is the requirement the docs actually give — most rows need nothing beyond Node.js.

TargetWhat you get backNeeds
JavaScript / ElectronModules, imports, source maps, routes, IPC boundaries and native add-ons — static, without running the app.Node.js + npm (on Linux, a procps `ps`)
Native binariesPseudocode, assembly, strings, symbols, calls and cross-references.Hopper, Ghidra, IDA or Kuna
.NET assembliesMetadata, CIL instructions, declared native dependencies, build comparisons.Nothing extra (static only)
Android APKManifest declarations, classes, decompiled methods and references; APK signature facts.Headless JADX + a full JDK (signatures need nothing)
Websites / capturesPage structure, scripts, network observations, requested screenshots; HAR and SAZ captures.A Chrome-family browser (captures: HAR or SAZ)
Go / Rust / PE / WASMGo build info, Rust cargo-auditable crates, PE imports and certificates, ELF notes, WASM, hardening flags.Nothing extra (static only)
Archives / firmwareMember inventory and extraction for ZIP/APK/IPA/MSIX/DMG, Godot PCK, UnityFS, wxapkg; firmware regions.Binwalk or Unblob on Linux, for firmware
GGUF / safetensorsGGUF and safetensors metadata, tensor declarations, optional full-file hash.Nothing extra (static only)
Release exposureA release-exposure report with stable check ids, statuses and remediation: shipped source maps, Electron fuses, credential markers.Nothing extra (static only)

Two boundaries are worth reading twice. Static inspection parses files and does not run the target; runtime capture, browser scenarios and device workflows do run or interact with it, under your user permissions. And every result carries its own limitations and unknowns — the docs say plainly that a clean release-exposure report does not mean an application is secure.

Install: one reviewed command, then per-client routes

Setup is interactive by default: it lists supported clients, shows the exact files it will touch plus backups, and asks before writing. The npm download approval and REA's own approval are separate prompts, so approving npm does not approve the config changes.

1. The guided setup — works for every supported client

Run it with Node.js and npm on PATH. Select clients (existing REA registrations are pre-selected, newly detected ones are not), read the plan, approve. Then fully restart the agents named in the completion message: a running client can overwrite its own registration. For scripts, add `--client <id>` and start with `--dry-run --json` to get a read-only plan.

Commands

npx rea-agents setupnpx rea-agents setup --client claude_code --dry-run --json

2. Claude Code: two /plugin prompts, no setup run

REA's npm package is also a Claude Code plugin. Add the repository as a marketplace, then install `rea@rea`. A plugin does not run `rea setup`, so provider configuration (Ghidra/IDA paths) still comes from the sections below, and `rea doctor` reports the plugin as `missing` — check it with `/plugin` and `/mcp` instead. Use the plugin or a setup registration for a given client, never both, or two `rea` servers start.

Commands

/plugin marketplace add morluto/rea/plugin install rea@rea

3. Codex: the same plugin, two codex commands

The same npm package carries a `.codex-plugin` manifest. Add the marketplace, then install `rea@rea`. The client needs a standalone `node` on PATH. As with Claude Code, a plugin install is invisible to `rea doctor`; use `codex plugin list` to check it.

Commands

codex plugin marketplace add morluto/reacodex plugin add rea@rea

4. Cursor: setup registration or the Marketplace plugin

`rea setup --client cursor` writes `~/.cursor/mcp.json` plus the setup-owned skill. Cursor's Marketplace also lists the repository as a plugin that bundles both the skill and an `rea` MCP server pinned to a published version; that route is a Git checkout and does not put `rea` on PATH. Pick one of the two, not both.

Commands

npx rea-agents setup --client cursor

5. Skill only — instructions without tools

If you only want the instructions, for example to pair them with an MCP server you registered by hand, install the skill from skills.sh. That gives the agent the routing rules and bundled references but registers no tools, so REA calls stay absent until an MCP server exists.

Commands

npx skills add morluto/rea --skill reverse-engineer-anything

6. Verify before you trust it

`rea doctor` is read-only. Check one client, the installed skill and one engine separately: a provider failure does not block target-free tools, and a client check verifies registration, not a successful investigation. Doctor reads files and prerequisites; it cannot see the live session, so a registered server still needs a restart or reconnect.

Commands

rea doctor --client claude_code --jsonrea doctor --skill --jsonrea doctor --provider ghidra --json

Requirements, as documented

  • 1Node.js 22.x (>= 22.23.4), 24.x (>= 24.22.1) or 26.12.1+, plus the npm paired with it. Node 23, 25, earlier 26.x releases and prereleases are unsupported.
  • 2A client that supports local MCP servers. Setup knows 28 client IDs, including claude_code, claude_desktop, codex, cursor, gemini_cli, windsurf, opencode, copilot_cli, antigravity, kimi, dsh and pi.
  • 3A native engine only for native work. Static JavaScript/Electron and .NET analysis need nothing else; Android needs headless JADX and a JDK; firmware needs Binwalk or Unblob on Linux.
  • 4Run package acquisition from a trusted directory outside the target project, and pass absolute paths to analysis commands — a package runner can select project-local packages, and REA cannot validate what happened before its entrypoint started.

A first session that proves something

The cheapest honest test is a feature you already understand, in an app you own, on a target with no native engine in the way. Ask for the evidence, not just the answer: the point of REA is that the agent has to show the code path it claims.

Ask the agent

The README's own example, verbatim. Replace Notes with your target and the feature with something you can verify by hand. Expect the agent to call REA tools, read the Evidence, and name the parts it could not establish — if it answers without evidence, the MCP connection or the skill is probably missing.

Prompt

Understand how search works in the Notes app, show me the evidence,and build a similar feature for my project.

Or drive the CLI yourself

Every MCP workflow has a CLI twin, which is the fastest way to check whether a claim about REA is true. The first command returns an Evidence record for an extracted Electron directory or ASAR without any engine; the second audits a shipped artifact and exits 3 when an exposed check meets the severity you pass.

Commands

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --jsonrea audit-release-exposure ./dist/MyApp.app --fail_on high --json

Why the output is big — and what to do about it

Real application Evidence can reach hundreds of megabytes. The documented answer is to save it and project a view: `rea analyze-javascript-application … > app-evidence.json`, then `rea inspect-analysis-view` with a summary or one page of modules. Over MCP, `REA_MCP_MAX_RESPONSE_BYTES`, `REA_MCP_INPUT_SCHEMA_PROFILE=full` and `REA_MCP_OUTPUT_SCHEMA_PROFILE=compact` tune how much of that the model sees.

Update and remove

`rea update` updates the global npm or Bun installation that owns the running CLI; an `npx` setup is refreshed by rerunning `npx rea-agents@latest setup`. `rea uninstall` removes only REA-owned registrations and skill files, `--purge-data` also drops cache and state, and neither touches Hopper, Node.js, Evidence files or unrelated skills.

Commands

rea updatenpx rea-agents@latest setuprea uninstallrea uninstall --purge-data

REA vs. doing it by hand vs. an instruction-only skill pack

The honest comparison is not REA against a human reverse engineer. It is REA against the same agent with a shell and no tools, and against skill packs that ship instructions but no server.

AspectAgent + shell, no REAAgent + REA
Tool wiringYou paste commands and paths into the chat and the model guesses which decompiler flag to use.The skill routes the target to a tool with a schema; the server validates arguments and returns structured Evidence.
EvidenceWhatever the agent quotes, with no record of which file or offset it came from.Findings carry their evidence and their limits, and unknowns stay listed instead of being smoothed over.
Large outputA 300 MB dump either blows the context window or gets truncated by `head`.Evidence is saved and projected — summary, module page or a single module — before it reaches the model.
Instruction-only packsA reverse-engineering skill pack teaches method but registers no tools, so the agent still shells out.REA ships both halves: the skill and the MCP server/CLI it describes. Skill-only installs are supported but leave the tools missing.

Legal and safety boundaries — from the project, not invented here

REA's own DISCLAIMER.md and SECURITY.md draw the line, and it is stricter than the marketing around such tools usually is. The short version: being able to analyse software is not the same as being allowed to.

  • Intended uses: security research, malware and incident analysis, vulnerability research and coordinated disclosure, CTFs and education, interoperability, software preservation, and auditing software you own or are authorized to examine.
  • Explicitly not supported: circumventing DRM, licence checks, anti-cheat or other technical protection measures; game cheats or tampering with online services; bypassing authentication or access controls you are not authorized to test; copying proprietary code and assets; evading model-provider policies.
  • Authorization is yours to establish. Public availability of a binary, possession of a file or access to a debugging endpoint does not by itself grant permission, and reverse engineering may be restricted by law or by the software's licence in your jurisdiction.
  • Commercial tools stay commercial: IDA Pro/Hex-Rays, Hopper and JEB must be legally obtained and licensed. REA grants no key, licence or activation, and cracked copies or shared keys are not authorized.

Two more practical points from SECURITY.md: REA is not a sandbox — CLI and MCP run with your account's permissions — and target files, captures and web pages are untrusted data, so an instruction embedded in a binary is not an instruction from you. Use a throwaway VM or container for anything you did not build, and never point runtime workflows at systems you do not own.

Before you install: five honest caveats

None of these is a reason to skip REA; all of them are reasons to try it on one target first.

  • 1It is a fast-moving third-party project: npm went from 6.8.0 to 6.9.0 inside three weeks, and the docs warn that a skill installed from `main` can describe capabilities an older npm release does not have. Trust the connected server's tool list, not the skill text.
  • 2Client coverage is wide but uneven: some client IDs need a newer rea-agents (droid, dsh, kimi, qoder, trae, workbuddy and zcode from 6.5.0; freebuff from 6.8.0), and `lm_studio` needs a release after 6.8.0.
  • 3Setup writes into your agent configuration and skill directories. It keeps `.rea.backup` snapshots and refuses to overwrite files it cannot verify, but it cannot coordinate with another writer editing the same file — quit the client first, as the docs ask.
  • 4Engine setup is the part that bites. Hopper is commercial with a limited demo, the automated installer covers macOS and x86_64 Linux only, and other architectures are documented to use Ghidra. A missing engine can leave doctor's overall `healthy` false; the docs say that is normal while your chosen workflow works, and it only blocks native pseudocode.
  • 5Context and privacy: the agent sees the Evidence, so your model provider sees it too. Analysis is local, but the results are not — keep sensitive targets on a local model or out of the loop entirely.

DeepSeek Harness and the skill-pack neighbours

REA's README does not mention DeepSeek Harness, but the package can register there: `dsh` is one of setup's client IDs, and the DSH directory lists both the REA project itself and community adapters. zhaofeng130/dsh-rea is an unofficial adapter that registers the `reverse-engineer-anything` skill plus `rea` and `rea_doctor` tools, and it explicitly does not bundle REA. dhicoc/dsh-reverse-skill is a different thing again: a port of the reverse-skill pack (87 SKILL.md files for reverse engineering, authorized pentesting and CTF) with no REA dependency. Neither is affiliated with morluto/rea — read them before installing.

REA FAQ

Keep reading