Idac banner
trailofbits trailofbits

Idac

Development community

Description

idac - IDA Pro command line tool for agents and humans

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

idac

[![version](https://img.shields.io/pypi/v/idac?color=blue)](https://pypi.org/project/idac/) ![python](https://img.shields.io/badge/python-3.10%2B-blue) ![status](https://img.shields.io/badge/status-alpha-orange)

The IDA Pro CLI built for agents and humans. One Unix socket — no JSON-RPC framing, no sidecar daemon, no MCP server. Just `idac decompile "sub_08041337"` from any shell or agent.

`idac` is in early alpha and actively developed. It is already useful day to day, but the CLI surface may still change between releases.

Contents

Why idac

  • Not an MCP server — compose with the shell you already have: pipes, xargs, jq, and your agent's existing tool-use loop. No server to run, no protocol to babysit.
  • Agent-native by default — every command can emit structured JSON (-j), and a bundled skill teaches Claude Code and Codex to drive idac instead of guessing at raw IDAPython.
  • Safe mutations — every mutation supports preview, which applies the change under IDA's undo, captures the before/after, and rolls it back. Dry-run any rename, retype, or prototype change before committing it.
  • Built for batches — recover an entire class hierarchy, retype a hundred locals, or decompile every Handler_* in one invocation against a shared context.
  • Live or headless — the same commands work against a running IDA GUI session or a saved .i64/.idb. Switch targets with -c; with one GUI open, omit it entirely.

Demo

Run this against the fixture committed in this repo:

idac decompilemany "CreateHandler_" --out-dir decomp/ -c "db:fixtures/idb/handler_hierarchy.i64"

Every matching function is decompiled into its own `.c` f