REA Setup Not Working?
5 Common Errors and Fixes
If REA won't install or your agent can't see it, you're in the right place. This page starts from the error you already got, not from a clean install. Setup rarely fails for an interesting reason: in practice it fails for one of five, and four of them are about your machine rather than REA itself. Find your symptom in the triage table, then read that section.
| Symptom / error text | Most likely cause | Go |
|---|---|---|
EBADENGINE / npm says "Unsupported engine" before anything downloads | Node.js is the wrong major or too old | 1 |
| PowerShell: "running scripts is disabled on this system" | PowerShell execution policy | 2 |
command not found: rea, or install reports success but your agent has no idea REA exists | The rea binary isn't on PATH, or the server was never registered / agent not restarted | 3 |
| A "no provider" / engine-check error once a real analysis starts | The native engine that target needs isn't installed | 4 |
| The analyzer reports nothing admitted / nothing to analyze | Wrong artifact, or a target type REA doesn't admit | 5 |
First move: two read-only commands
Before you change anything, run REA's own diagnosis. Both commands are read-only — they change nothing on your machine — so they are the fastest way to localize the fault.
1. doctor — diagnose clients, providers and installed skill files (strictly read-only):
# check one agent registration
npx rea-agents doctor --client claude_code --json
# check a native engine (or hopper / ida)
npx rea-agents doctor --provider ghidra --json
# check the installed workflow instructions
npx rea-agents doctor --skill --json2. --dry-run — preview exactly what setup would write, without writing it:
npx -y rea-agents@latest setup --client codex --dry-runPer the official installation guide, doctor --json is strictly read-only and setup --dry-run returns a plan with status planned instead of applying it. Two caveats the guide calls out: doctor checks files and prerequisites, not the live agent connection, so you still have to restart the agent yourself (3); and provider failures in doctor do not block the dependency-free targets (JavaScript and .NET).
The five common errors
1. EBADENGINE — wrong Node version
Symptom. npx rea-agents@latest setup fails before it does anything useful, or npm complains about an unsupported engine.
What's actually happening. REA requires Node.js 22 (22.19+), 24 (24.11+) or 26+. Two failures hide here: an old minor inside an otherwise correct major (22.4 instead of 22.19), and a version manager silently serving a different runtime than the one in your shell.
Fix. Check what you're actually running, not what you installed:
node -vIf it's outside those ranges, switch to a supported line (a version manager is the least painful route), then re-run the setup command in the same shell:
npx rea-agents@latest setupConfirm it's fixed. node -v prints a supported version, and the setup command completes without a version error. If you use more than one runtime, re-run the setup under the runtime your agent will actually inherit.
2. "Running scripts is disabled" — PowerShell
Symptom. On Windows the install stops with a script-blocked or execution-policy message. Sometimes nothing runs at all after the command appears to start.
What's actually happening. PowerShell blocks scripts by default on many Windows setups, and npm's shims are scripts. This is a machine policy, not a REA bug — nothing about the project is broken.
Fix. Check the current policy, then relax it for the current user only (a scoped change, not a machine-wide one):
Get-ExecutionPolicy -List
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSignedThen re-run the setup command. Prefer RemoteSigned over Unrestricted: it still blocks unsigned scripts that came from the internet.
Confirm it's fixed. The setup command runs to completion in the same PowerShell window. If your organisation manages policy centrally, this is a change your IT side has to make — don't fight it with per-session flags.
3. command not found: rea — server not registered
Symptom. One of two closely related failures: the terminal replies command not found: rea (or 'rea' is not recognized on Windows), or install reports success but your agent behaves as if REA doesn't exist — no tools, no awareness, or it improvises an answer instead of analyzing anything.
What's actually happening. There are two distinct causes:
command not foundmeans you usednpx(which never puts a globalreabinary on your PATH) and then typedrea. Either prefix one-off commands withnpx -y rea-agents@latest, or install the binary once:npm install --global rea-agents rea --help- The agent can't see REA means REA is consumed through an agent, and the agent only finds it if the server entry is registered and the agent has been restarted since. Registering without restarting is the single most common version of this failure.
Fix, in order:
- Run
npx rea-agents@latest setupand finish it — don't abort when it asks about configuration. - Verify the registration with read-only
doctor(substitute your client ID, e.g.codex,cursor,claude_code), then preview the repair without writing:If the dry-run shows the missing registration, run setup again withoutnpx rea-agents doctor --client claude_code --json npx -y rea-agents@latest setup --client claude_code --dry-run--dry-runand approve the changes. - Open your agent's configuration and confirm the REA server entry is actually present. If you maintain the config by hand, add it there and save.
- Fully quit and reopen the agent — not just a new chat window. Menubar/tray processes count; quit them. (
doctorcannot detect a live connection, so this restart is on you.) - Ask the agent something REA-specific (e.g. list the Electron targets it can see). An answer that ignores the tool means the restart didn't take effect.
Confirm it's fixed. The agent answers from REA's tools rather than from general knowledge, and lists the capabilities you expect.
4. "No provider available" — missing provider
Symptom. Install is fine, the agent sees REA, and then an actual analysis run ends with a provider-related error — often stating no provider is available, or that the requested engine isn't installed.
What's actually happening. Not every target is self-contained. REA's static JavaScript and .NET paths need nothing extra, but native binaries need one of Hopper, Ghidra or IDA. If you haven't installed one, the target type that depends on it can't run — that's a missing dependency, not a broken install.
Fix.
- Decide whether your target needs a provider at all. If you're analyzing a .NET assembly (a
.dll/.exewith CLI metadata), or a JavaScript/Electron app, you don't. - Confirm which engine REA actually detects with read-only
doctor(usehopperoridain place ofghidraas appropriate):A provider failure here does not block the dependency-free JavaScript and .NET targets.npx rea-agents doctor --provider ghidra --json - If it does need a provider, install one of Hopper, Ghidra or IDA, under a licence you are entitled to hold — and note that a third-party bridge's open-source licence covers the bridge, not the commercial product behind it. Trials are usable only within their own terms, which often exclude automation. See Tool licences you must supply yourself.
- Re-run the analysis and pass the provider explicitly if your invocation supports it.
Confirm it's fixed. The provider error is gone and the run returns evidence (metadata, disassembly, structure) instead of a refusal.
5. "Nothing to analyze" — wrong target
Symptom. Everything is installed. The analysis refuses, reports nothing admitted, or comes back empty and confident about it.
What's actually happening. Two different mistakes produce the same silence:
- Wrong tool for the artifact. You pointed a native-binary path at a managed assembly, or expected a self-extracting single-file host to be unpacked for you — the static .NET path does not unpack single-file hosts.
- Wrong artifact entirely. What you downloaded isn't the thing you wanted: a launcher stub instead of the real binary, a bundle instead of the module, a build without metadata.
Fix.
- Identify what the file actually is before analyzing it — file type, size, and whether it carries the metadata your target type expects.
- Match artifact to capability: JavaScript/Electron and .NET assemblies are static and dependency-free; native binaries need a provider; single-file hosts and IL2CPP-style builds need a different approach than the one you're trying.
- If the artifact is a wrapper, find the real payload (installed directory, extracted bundle) and analyze that.
Confirm it's fixed. The run reports coverage and structure you can act on. If it reports a resource limit or partial coverage, that's a real result — read it as evidence, not as an error to retry.
After it works
Once REA runs, the answers you get are only as good as the questions: one behavior per question, absolute paths always. And before you act on any result, know what you're authorized to do with the target — start at Authorized use only.