rea.run

← Install

Docs · 6.4.0

JEB with REA (bring your own license)

[email protected] can browse JEB project units and decompile a selected item through a JEB MCP server you already started. REA does not install JEB, does not launch it, and does not open .jdb2 databases by itself.

Use a licensed JEB build on artifacts you are allowed to inspect. Compliance

What REA does not do

  • It does not download JEB, patch a trial, or accept a license key.
  • It does not start the GUI or a headless engine. You start MCP, then point REA at the loopback URL.
  • Rename, comment, save_project, and close_project exist on the engine. REA 6.4.0 does not expose those mutation tools.
  • An unreachable endpoint is a provider-availability failure. REA does not retry by spawning JEB.

Pin

Teaching and CI on this site use the npm release checked on 2026-10-13:

npx -y [email protected] doctor --json

JEB support is a 6.4.0 highlight (#1536, published 2026-10-11). Upstream docs at tag rea-agents-6.4.0 say the lane was checked against JEB 5.48.0 (Linux x64, licensed build) serving jeb-mcp-server 1.3.0 over streamable HTTP. Treat that as the upstream checkpoint, then confirm your own build with inspect_jeb_client.

Start JEB yourself

  1. Install JEB from the vendor with a license you hold. Put the client on the classpath if you use the programmatic route.
  2. In the GUI, start the MCP server from the File menu (or the vendor assistant the JEB docs name).
  3. Headless: use JEB’s documented JebMcpServerInstance API. Upstream notes that JEB 5.48’s -c headless mode does not accept --mcp directly.
  4. Default endpoint: http://127.0.0.1:8425/mcp. Override with REA_JEB_MCP_URL.

The override must be an absolute http or https URL whose host is the literal 127.0.0.1 or [::1]. Redirects, remote hosts, credentials, query strings, and fragments are rejected. They are not stripped and reused.

export REA_JEB_MCP_URL=http://127.0.0.1:8425/mcp
npx -y [email protected] doctor --json

Operations in 6.4.0

These four surfaces are read-only toward the target file. Only open_jeb_project changes engine-side project state. Evidence records the endpoint, the parameters you passed, and the digests the engine reports.

MCP toolCLIPurpose
inspect_jeb_client inspect-jeb-client Engine version, GUI or headless, startup time
open_jeb_project open-jeb-project Open or create a project from an artifact or .jdb2 on the engine host. Returns SHA-256 of inputs and top-level units.
list_jeb_units list-jeb-units Page units by stable path and type (filter, parent-unit-path, index, count)
decompile_jeb_item decompile-jeb-item Decompile one type or method to the engine’s pseudo-code

Headless coverage (upstream, JEB 5.48.0). Headless MCP instances do not advertise open_project. Select the target when the engine client starts (--infile on the programmatic launcher, or open the file in the GUI). open_jeb_project completes only when the engine advertises the tool. REA keeps the engine’s refusal reason.

Semantics worth pinning in a runbook

  • Paths in open_jeb_project are resolved by the JEB process, not by REA. The artifact does not have to exist on the REA machine.
  • The engine caps list_units pages at 100. A full page is coverage: "partial" because more units may exist. An empty remainder is complete only when fewer units than requested came back.
  • If decompile_jeb_item omits unit_path, the engine may pick the project’s first code unit. REA reports unit_path: null and a limitation. It does not guess the unit.
  • Engine envelopes with success: false stay unsupported-target errors that carry the engine’s message (for example a missing item address).

Operator steps

  1. Confirm the target is yours, a debug build you produced, or another artifact you are allowed to open in a licensed decompiler.
  2. Pin [email protected]. Refresh MCP tool definitions after the pin. See the 6.0–6.4 upgrade runbook if scripts still expect pre-6.2 Evidence wrappers.
  3. Start JEB MCP on loopback. Export REA_JEB_MCP_URL only if you moved the port.
  4. Call inspect_jeb_client and record version, mode, and the URL you used.
  5. Open the project through a GUI that advertises open_project, or start headless with the file already selected.
  6. Page units, then decompile one named item with an explicit unit_path.
  7. Keep the Evidence record. Do not paste pseudo-code from someone else’s commercial product into a public ticket.

Static Android work that does not need JEB stays on JADX. The Aegis study on this site is that path, pinned to the same package: authenticator login-code case. Device work is a different lane: Android ADB, your emulator or device only.