v1.13.0 — Multi-instance agent server discovery + session open/close tools
Running several IDA sessions at once with the agent server enabled used to just break: the port defaults to a fixed 8181 shared by every process (the config file is global), so the second session's server would fail to bind and never start.
Multi-instance support:
- The agent server now falls back to an OS-assigned free port when the configured one is already taken, instead of failing outright.
- Every running instance advertises itself — host, port, token, and the binary it's analyzing — in a shared registry file (
agent_instances/under the IDA user directory), removed on clean shutdown. - New standalone script
list_ida_agents.pylists all live sessions (probing/health, pruning stale entries from crashed sessions) so an agent can find the right session by binary name instead of needing a fixed port up front. GET /healthnow also reportspidandidb_name.
New agent-server tools:
openFileopens another binary in a brand-new IDA window, leaving the current session untouched.openFileInThisWindow(gated) saves+closes the current session and opens a different file in a new window, exiting this process — IDA has no in-place "swap the input file" operation, so this is as close to "reuse this window" as its architecture allows.closeDatabase(gated) saves, closes, and exits this IDA process — call it when an agent is done with a session so it doesn't linger.- Both gated tools require the new
agent_allow_closesetting (off by default).
See the Changelog in README.md for full details.