You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A JSON-RPC daemon for IDA Pro, inspired by ghidra-rpc.
Exposes IDA Pro reverse engineering capabilities over a local socket for
integration with LLM agents, automation pipelines, and multi-agent setups.
Linux and macOS use Unix domain sockets; Windows uses loopback TCP because
socket.AF_UNIX is not available in all supported Windows IDA/Python setups.
Features
Human-readable CLI output by default, with --json or IDA_RPC_JSON=1 for structured JSON — faster and more reliable than MCP
Headless mode — run via ida -A for CI/automation
GUI mode — works inside the interactive IDA Pro session
# Start headless daemon from a binary (headless is the default)
ida-rpc open /path/to/binary --arch <arch> --detach
# Or open an existing IDB
ida-rpc open --project /path/to/existing.i64 --arch <arch> --detach
# For raw binaries, specify architecture and base address.# The segment is auto-configured (class, bitness, permissions) based on arch.
ida-rpc open /path/to/raw.bin --arch arm --base 0x8000 --detach
# Open in GUI mode instead
ida-rpc open /path/to/binary --arch <arch> --gui --detach
# Existing IDBs ignore raw import options such as --base and --loader.# The requested --arch still configures processor/bitness after the IDB opens.# When opening a system binary (e.g. /usr/bin/ls), specify a writable project path
ida-rpc open /usr/bin/ls --project /tmp/ls_analysis.i64 --arch x86 --detach
# Set default project for subsequent commandsexport IDA_RPC_PROJECT=/path/to/binary.i64
# Query functions
ida-rpc functions --limit 10
# Decompile main
ida-rpc decompile main
# Rename a function
ida-rpc rename-function sub_401000 my_func
# List all active daemons
ida-rpc list
Command Reference
Commands print human-readable text by default. Pass --json (before the subcommand) or set IDA_RPC_JSON=1 to get structured JSON. Commands that operate on an open database accept --project <idb> or read IDA_RPC_PROJECT.
Lifecycle
Command
Description
ida-rpc capabilities
Print agent-discoverable command capabilities
ida-rpc find-project <binary-or-idb>
Resolve the IDB path, socket path, and recommended start command
Lumina commands use the primary or secondary Lumina server configured in IDA
(Options > General > Lumina) or overridden for the IDA session with
-Olumina:... / -Osecondary_lumina:.... Credentials are not returned.
Command
Description
lumina-config [--secondary]
Report Lumina configuration source and whether a configured client is available
Directory for session JSON files (default: next to IDB)
Agent Usage
Codex, Kimi, and other coding agents should use ida-rpc automatically for
IDA-based reverse engineering. The repository includes AGENTS.md, KIMI.md,
and SKILL.md so agents can discover the intended workflow after install.
The stable automation probe is:
ida-rpc capabilities
The stable project-resolution probe is:
ida-rpc find-project /path/to/binary-or-idb
After that, use open --arch <arch>, status, functions, decompile, disassemble,
strings, xrefs-to, xrefs-from, rename-function, set-comment, and
save. Commands print human-readable text on stdout by default; pass --json
(before the subcommand) or set IDA_RPC_JSON=1 for JSON output. Unexpected
CLI/RPC failures are reported on stderr as Error: <error>: <message> (or JSON
with --json); set IDA_RPC_DEBUG=1 to also print tracebacks on stderr.