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, andclose_projectexist 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
- Install JEB from the vendor with a license you hold. Put the client on the classpath if you use the programmatic route.
- In the GUI, start the MCP server from the File menu (or the vendor assistant the JEB docs name).
- Headless: use JEB’s documented
JebMcpServerInstanceAPI. Upstream notes that JEB 5.48’s-cheadless mode does not accept--mcpdirectly. - Default endpoint:
http://127.0.0.1:8425/mcp. Override withREA_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 tool | CLI | Purpose |
|---|---|---|
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_projectare resolved by the JEB process, not by REA. The artifact does not have to exist on the REA machine. - The engine caps
list_unitspages at 100. A full page iscoverage: "partial"because more units may exist. An empty remainder iscompleteonly when fewer units than requested came back. - If
decompile_jeb_itemomitsunit_path, the engine may pick the project’s first code unit. REA reportsunit_path: nulland a limitation. It does not guess the unit. - Engine envelopes with
success: falsestay unsupported-target errors that carry the engine’s message (for example a missing item address).
Operator steps
- Confirm the target is yours, a debug build you produced, or another artifact you are allowed to open in a licensed decompiler.
- 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. - Start JEB MCP on loopback. Export
REA_JEB_MCP_URLonly if you moved the port. - Call
inspect_jeb_clientand record version, mode, and the URL you used. - Open the project through a GUI that advertises
open_project, or start headless with the file already selected. - Page units, then decompile one named item with an explicit
unit_path. - 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.