
A powerful decompiler that lets you reverse-engineer React Native mobile apps by converting their compiled Hermes bytecode (.hbc) files back into readable JavaScript.

Rust decompiler for Hermes bytecode (.hbc), the JS engine behind React Native. Supports HBC 40 to 99.
Pre-built binaries (Linux / macOS / Windows) from Releases or Actions:
| Asset suffix | Platform |
|---|---|
linux-x86_64 / linux-arm64 | Linux |
macos-arm64 / macos-x86_64 | macOS |
windows-x86_64 | Windows |
Archives include hermes-decomp and hermes-mcp. Verify: shasum -a 256 -c SHA256SUMS.
hermes-decomp update --check # or --install / --version v0.1.7
From source (Rust 1.70+):
git clone https://github.com/SymbioticSec/hermes-decomp.git
cd hermes-decomp && cargo build --release
# → target/release/hermes-decomp target/release/hermes-mcp
hermes-decomp info app.hbc
hermes-decomp disasm app.hbc --function 5 --info --show-offsets
hermes-decomp decompile app.hbc -o out.js # progress on stderr
hermes-decomp decompile app.hbc --function 42
hermes-decomp tui app.hbc
hermes-decomp xref app.hbc --query "loginWithToken"


Full flags and examples → docs/USAGE.md.
Notes:
decompile uses an on-disk .hdcache for fast reloads. Pass --no-cache to force.decompile -o … prints pipeline stages on stderr.hermes-mcp) for AI assistants → docs/MCP.mdmcp-config.example.jsonhbc-decomp → docs/LIBRARY.mdcargo build --release -p hbc-decomp-mcp
See CONTRIBUTING.md. Please open an issue before a PR.
cargo build --release --workspace && cargo test --workspace
MIT. See LICENSE.
| Area | Commands (highlights) |
|---|
| Read | info, disasm, decompile, tui, extract, modules, deps |
| Analyze | xref, callgraph, graphviz, closures, debug, dump, bin-diff |
| RE helpers | secrets, frida-hooks |
| Write (bytecode only) | emit-hasm, asm, asm-check, patch-string, patch-function, inject-stub, create |