All plugins

Official

rea

Reverse engineer programs with REA (rea.tools): native binaries, .NET assemblies, Electron/JavaScript apps, Android packages, firmware and browser/process activity, through REA's MCP server (pinned rea-agents@6.7.0 over npx stdio) with REA's reverse-engineer-anything skill adapted for Hermes. Portable Agent Plugins v1 package (mcp.json + skills/); needs Node.js 22.19+/24.11+/26+ on PATH, plus your own Ghidra, Hopper or IDA for native decompilation. Disclosure — a few REA tools run a command under a PTY, launch or drive an application, change a connected Android device or overwrite a chosen file, and Hermes does not prompt before them; the bundled skill tells the agent to ask first and to skip them in unattended runs.

NousResearch607ToolsUpdated 17 days ago

About

Reverse engineer programs with REA (rea.tools): native binaries, .NET assemblies, Electron/JavaScript apps, Android packages, firmware and browser/process activity, through REA's MCP server (pinned rea-agents@6.7.0 over npx stdio) with REA's reverse-engineer-anything skill adapted for Hermes. Portable Agent Plugins v1 package (mcp.json + skills/); needs Node.js 22.19+/24.11+/26+ on PATH, plus your own Ghidra, Hopper or IDA for native decompilation. Disclosure — a few REA tools run a command under a PTY, launch or drive an application, change a connected Android device or overwrite a chosen file, and Hermes does not prompt before them; the bundled skill tells the agent to ask first and to skip them in unattended runs.

REA

Part of Hermes Official Plugins, Nous Research's official plugins for Hermes Agent.

Reverse engineer programs from Hermes with REA
(morluto/rea, MIT): inspect native
executables and libraries, .NET assemblies, Electron and JavaScript
applications, Android packages, firmware images, packet and browser captures,
and the running behaviour of browser, Electron and terminal programs. REA
returns structured Evidence (decompiled code, call graphs, application graphs,
captures) and Hermes explains it or builds from it.

This is a portable Agent Plugins v1 package. One
install ships:

  • mcp.json: the REA MCP server (rea), launched as
    npx -y rea-agents@6.7.0 mcp over stdio for every new session while the
    plugin is enabled. No mcp_servers edit in config.yaml.
  • skills/reverse-engineer-anything/: REA's own workflow skill (target
    routing, summary-first evidence paging, investigation planning), adapted for
    Hermes: it connects through this plugin instead of rea setup, finds tools
    through Hermes' tool search, and asks before steps that run or change
    something.
  • skills/crash-triage/: from a Linux core dump and the binary that crashed to
    a root cause and a bug report you can paste into an issue. It reads the crash
    with inspect_recorded_crash, places the program counter with
    inspect_binary_layout and a small standard-library helper that decodes the
    core's mapped-file list and checks the binary's build ID against the core,
    classifies the crash (NULL dereference, stack overflow, abort, ...), and
    never runs the program. Stripped binaries work too: the helper names
    functions from the unwind tables, and the skill walks back from the crashing
    function to the caller that produced the bad value (in the disassembly, or
    in REA's pseudocode when a decompiler provider is available). Adapted from
    crashlens (MIT).

Install

hermes plugins install rea        # from the Nous plugin catalog
hermes plugins enable rea

Then start a new Hermes session and ask, for example, "Use REA to inspect
/Applications/Notes.app and explain how CSV export works." or "./parser
crashed and left ./core. Why?"

Requirements:

  • Node.js 22.19+, 24.11+ or 26+ with npx on PATH (REA does not support Node
    23 or 25). The first start downloads the pinned package into npm's cache.
  • Nothing else for static JavaScript/Electron/ASAR analysis, archive and
    package inventory, Go/Rust binary metadata, PE resources, .NET metadata and
    saved HAR captures.
  • For core dumps and offline ELF layout (inspect_recorded_crash,
    inspect_binary_layout): a Python with pwntools 4.15.0, pyelftools 0.33 and
    Unicorn 2.1.2, named in ~/.hermes/.env as
    REA_PWNTOOLS_PYTHON=/path/to/venv/bin/python. Hermes passes MCP servers only
    a small set of environment variables, so mcp.json forwards this one
    explicitly; a value exported only in your shell does not reach REA.
  • Nothing else for the newer built-in readers: Go build info
    (inspect_go_binary), cargo-auditable Rust dependencies
    (inspect_rust_binary), Electron fuses (inspect_electron_fuses), Flutter
    and Dart AOT build facts, HarmonyOS package graphs. inspect_sqlite_database
    needs Node.js 24.15+ or 26+.
  • Bring your own engine for the rest: Ghidra plus a JDK, Hopper, IDA or Kuna for
    native decompilation; JADX and Java for Android code; Binwalk/Unblob for
    firmware extraction; TShark/capinfos, sigrok-cli, WABT, GNU objdump, GDB,
    Rizin/Cutter or Frida for their formats and debuggers. REA never installs
    these, and the skill tells the agent not to either.

Engines found on PATH (objdump, gdb, rizin) work as is. Engines REA locates
through an environment variable do not: Hermes passes MCP servers only a small
set of environment variables, and this plugin forwards only
REA_PWNTOOLS_PYTHON. To use Kuna (REA_KUNA_COMMAND), TShark
(REA_TSHARK_COMMAND, REA_CAPINFOS_COMMAND), sigrok (REA_SIGROK_COMMAND),
WABT (REA_WABT_BIN_DIRECTORY) or Ghidra/JDK locations, add them to a
same-name mcp_servers.rea override as shown in the
recovery guide
(keep the pinned launch command).

Do not also run npx rea-agents setup --client hermes. It writes its own
mcp_servers.rea entry to config.yaml, which replaces this plugin's pinned
server.

Native analysis wait budget

Every REA call runs under Hermes' normal MCP tool deadline (300 seconds by
default). The plugin sets Ghidra's internal startup deadline to 900 seconds
so a large import is not cut short on REA's side. A per-server Hermes call
budget for REA ships with Hermes v0.23.0; this package will declare it once
that release is out, so it installs on every current Hermes release today.

open_binary validates a target, but the first Ghidra-backed query imports and
analyzes it. Large executables can take several minutes. Subsequent queries
reuse that session; reopening or restarting discards its ephemeral analysis.
Cancellation remains available, and a completed open is not a progress signal.

In a binary-first test on WinSCP 6.7, the console launcher imported in about
30 seconds. The GUI executable exceeded the upstream 330-second default and
completed in 663 seconds with a 1000-second Hermes budget, which needs
Hermes v0.23.0 or newer. A subsequent real Hermes
chat using the same native target completed its first query in 580 seconds,
then made successful follow-up decompilation and caller queries. Both runs
recovered 28,701 procedures. The Windows executable was analyzed statically,
never launched. These are observations on one Linux host, not completion-time
guarantees. See the bundled
recovery guide
for deadline troubleshooting.

Pseudocode is decompiler output, not reconstructed original source. The skill
asks Hermes to cross-check consequential claims with assembly and references,
label inferred names/types, and report missing symbols and analysis warnings.

What you get

207 tools from REA 6.7.0, registered as mcp__rea__<tool>
(mcp__rea__open_binary, mcp__rea__analyze_function,
mcp__rea__analyze_javascript_application, mcp__rea__inspect_android_package,
...). Their input schemas and descriptions total roughly 800 KB, so Hermes keeps them behind its
on-demand tool search instead of the model's visible tool list: a session pays
only for the tools it looks up. REA's six MCP prompts are available through
the server's prompt tools.

What runs on your machine

Most REA tools read files you name and never execute the target. A few run or
change things, and Hermes does not prompt before them:

  • capture_process_scenario runs a command you or the agent choose under a
    PTY and records what it does.
  • capture_browser_scenario, capture_electron_scenario and
    capture_native_ui_scenario launch or drive an application window.
  • install_adb_package, uninstall_adb_package, push_adb_file,
    start_adb_app, start_adb_activity and stop_adb_app change a connected
    Android device.
  • observe_native_calls launches the active macOS binary under LLDB.
  • instrument_with_frida and the Frida session tools (start_frida_session,
    load_frida_script, resume_frida_session, unload_frida_script,
    close_frida_session) attach to, spawn or inject JavaScript into a process,
    locally or on a remote Frida server.
  • start_gdb_session/gdb_console/close_gdb_session and
    start_rizin_debug_session/rizin_debug_command/close_rizin_debug_session
    drive an unrestricted debugger that can run the target.
  • execute_rizin_command and cutter_command run one arbitrary Rizin command,
    which can execute code, write files or reach the network through Rizin
    plugins.
  • export_evidence_bundle and close_binary can overwrite a file at a path
    you give them.

The bundled skill tells the agent to name the exact command, app or device and
ask you before any of these, and to skip them in unattended runs. Analyse
untrusted programs in an environment you chose for it. REA sends no
telemetry. Its tools reach the network only for the target you point them at:
a debugging endpoint, a device, or a web page whose source maps a browser
capture fetches.

Version pinning

mcp.json pins rea-agents@6.7.0 (published 2026-10-18) and the skill is
REA's reverse-engineer-anything skill from the same release tag. Bumping
either is a commit to this repo followed by a reviewed SHA bump in the
hermes-agent plugin catalog.
@latest is deliberately not used.

Attribution

REA is made by morluto and released under the MIT
license. The skill in skills/reverse-engineer-anything/ is adapted from REA's
bundled skill; its license is reproduced in LICENSE. The workflow in
skills/crash-triage/ is adapted from
crashlens by mingleiw (MIT).

README from the reviewed commit 1690b63; it updates when the author re-pins.

More by NousResearch

28 plugins by NousResearch in the catalog.

NousResearchaccent-pickerOKLCH accent colour picker for the Hermes Desktop status bar: drag it and the whole theme retints live, with palette commands to reset to the theme default or copy the current colour. A theme-authoring tool; the colour is scratch state and is never persisted. Desktop-only (desktop/plugin.js inside the plugin SDK surface); no agent tools, hooks, middleware or env vars.OfficialDesktop app607NousResearchadvanced-delegationTwo extra delegation modes for `delegate_task`, next to the built-in default. Model routes (`delegation.backend: model_map`): the agent picks a named model route per subagent from a list you define (e.g. fast, deep, local). Profile routes (`delegation.backend: profile_routes`): the agent runs a subagent as one of your Hermes profiles, with that profile's own model, credentials, skills and SOUL.md. Only route names and their one-line descriptions reach the model. Adds `hermes delegation config` (pick the mode and edit its routes; `--show` prints the setup) and the `/delegation` slash command (save a mode for the next session, or `--now` to apply it to the current chat). Needs Hermes 0.22.5 or newer, the first release with pluggable delegation providers; Hermes 0.22.0 to 0.22.4 refuses to install it, and on a core older than 0.22.0 it installs, logs one warning and does nothing. A model route can set `daybreak: true` to run its model with OpenAI's Daybreak trusted-access program; it is sent only from your own CLI, TUI or Desktop chats, on `openai-codex`, for models your Codex catalog lists, and a route that breaks a rule is refused. Disclosure — no Python dependencies and no network or model calls of its own, except that a Daybreak route checks the Codex catalog through core's cached lookup with your existing Codex login; subagents run through core's `delegate_task` on the routes you configured. Writes only `delegation.backend` and `delegation.backends.*` (model_map / profile_routes) in the active profile's config.yaml, through core's config writer. A model route's optional `api_key` is stored in config.yaml in plain text (`provider:` keeps keys in .env / auth.json). Listing a profile under profile routes lets this profile's subagents use that profile's credentials, SOUL.md and terminal policy.Officialtools607NousResearchagent-importers`hermes import-agent`: import an OpenClaw (~/.openclaw, or legacy ~/.clawdbot / ~/.moltbot), Claude Code (~/.claude), Codex CLI (~/.codex), Cursor (~/.cursor), Grok Bot (a self-export the Bot writes from a prompt the importer prints) or OpenBot desktop (its openbot.db) setup into Hermes in one command; always previews first and asks before applying. Claude Code / Codex / Cursor: instructions, Cursor rules and memories become memory entries, Bash permission rules become command allow/deny lists, MCP servers land in config.yaml, skills are copied, and `--sync` re-imports sources that changed. OpenClaw (core's former `hermes claw migrate`; the plugin keeps that spelling, `hermes claw cleanup` and the openclaw-migration skill): persona, memories, skills, model and messaging settings, MCP servers and agent behaviour. Formerly built into Hermes core; `hermes setup` offers to install it when it finds one of these agents, and profiles with a registered sync source are migrated automatically. Disclosure — no Python dependencies, no network calls and no model calls. Claude Code / Codex / Cursor: reads those agents' local config trees (never their credential files; secret-looking MCP env vars and headers are stripped and listed) and writes only into the active profile (memories/MEMORY.md with a backup, config.yaml, skills/ and import-sync.json). OpenClaw: reads the OpenClaw dir (openclaw.json, its .env, workspace files such as SOUL.md / MEMORY.md / USER.md, skills); API keys and bot tokens come over only with --migrate-secrets (allowlisted names, shown in the preview). It writes into the active profile (config.yaml, .env, SOUL.md, memories/, skills/openclaw-imports/, a migration/openclaw/<time>/ report with item backups, and a backups/pre-migration-*.zip restore point), plus a workspace dir only when --workspace-target names one. It runs local pgrep / systemctl / tasklist checks to warn when OpenClaw or a Hermes gateway is still running, and `hermes claw cleanup` renames the OpenClaw dir to *.pre-migration after a confirmation. Grok Bot / OpenBot: instructions become SOUL.md, memories and user facts become memory entries, skills land in skills/<source>-imports/, scheduled routines become paused cron jobs (--activate-routines to start them) and event routines a notes file; credential-looking export keys refuse the file, and secret MCP env vars and headers are stripped and listed. OpenBot's database is opened read-only (or read from a scratch copy that is deleted after the read).Officialtools607NousResearchblenderOfficial Blender Lab MCP server over stdio, pinned to upstream v1.0.3, with a Blender workflow skill. Needs Git and uv; Blender 5.1+ is not needed at install. The skill opens Blender itself when a task needs it and, after you agree, installs Blender and Blender Lab's MCP add-on. First startup downloads Python dependencies; prepare the uv environment before connecting. Disclosure — tools execute arbitrary Python in Blender with your privileges; the skill starts Blender with online access for that session only (your saved preference is unchanged), and the add-on's local server on port 9876 has no password, so any program on this computer can use it while Blender is open; only after you agree does the skill download Blender from download.blender.org (about 400 MB, about 1.5 GB unpacked), check it against blender.org's sha256 list and install it in your own folder without administrator rights (Linux ~/.local/opt, macOS ~/Applications, Windows %LOCALAPPDATA%\Programs\Blender Foundation; never over an existing Blender), and download the v1.0.3 add-on, check its hash and install or enable it; first start downloads the pinned Blender Lab MCP server and its Python dependencies with uv. Server discovery does not prove scene readiness.Officialtools607