Integrations
Every head, one body
Agents, MCP servers and scripts all join the same daemon. Each one names itself, so everyone else can see who holds what.
Claude Code
Give it an MCP server such as Hydralysis, or let it run
ghidra_session.pyand short Python from its terminal.harness="claude-code"
Codex
Same daemon, same programs: what Claude Code opened is already warm when Codex asks.
harness="codex"
OpenCode
Register an MCP server, or call the client from a tool script.
harness="opencode"
QoderCLI
Runs the same short CLI commands from its terminal, with no hand-written
analyzeHeadless.harness="qoder"
Hydralysis
Twenty tools behind one MCP server and one CLI, built for native PE work.
harness="mcp"
Your script
Python with
ghidra_session.py, or any language that speaks JSON lines over a socket.harness="anything"
Through MCP
Most agent harnesses accept the common mcpServers shape. Register the server once and restart the client.
{ "mcpServers": { "hydralysis": { "command": "/path/to/Hydralysis/.venv/Scripts/hydralysis.exe", "args": ["mcp"], "env": { "HYDRALYSIS_ROOT": "/path/to/hydralysis-data" } } }}Directly
Anything that can run Python joins with one call. Name the tool and the harness running it; the daemon starts if it isn't up.
1import ghidra_session as gs2 3with gs.connect(client="my-tool", harness="opencode") as s:4 s.call("open_project", path="/re/MyProject")5 s.call("open_program", path="target.exe")6 print(s.call("decompile", name="main")["c"])