A C++ port of the ida-chat-plugin - an AI-powered chat assistant for IDA Pro using Claude.
IDA Chat provides a dockable Qt-based chat interface for interacting with Claude AI during reverse engineering sessions. The agent can execute Python scripts in IDA's environment, analyze binary code, and provide intelligent assistance.
- Dockable Chat UI: Qt-based interface that integrates with IDA Pro
- Claude Integration: Direct communication with Claude API via streaming
- Script Execution: Execute Python code in IDA's scripting environment
- Agentic Loop: Autonomous multi-turn conversations with script feedback
- Message History: Persistent JSONL-based session storage
- Transcript Export: Export conversations to HTML
- CMake 3.20+
- C++20 compatible compiler (GCC 10+, Clang 12+, MSVC 2019+)
- IDA Pro SDK (9.0+)
- libcurl
- Qt 5.15+ or Qt 6 (provided by IDA)
# Set IDA SDK path
export IDASDK=/path/to/idasdk
# Create build directory
mkdir build && cd build
# Configure
cmake ..
# Build
cmake --build .
# Install to IDA plugins directory
cmake --install . --prefix /path/to/ida/pluginsIDA_CHAT_BUILD_TESTS: Build unit tests (default: OFF)IDA_CHAT_USE_SYSTEM_CURL: Use system libcurl (default: ON)IDA_CHAT_USE_SYSTEM_JSON: Use system nlohmann_json (default: OFF)
- Load the plugin in IDA Pro
- Press
Ctrl+Shift+Cor use View menu to toggle the chat panel - Configure authentication in the setup wizard
- Start chatting with Claude about your binary!
IDA Chat supports three authentication methods:
- System: Uses existing Claude Code authentication
- OAuth: OAuth token-based authentication
- API Key: Direct Anthropic API key
The plugin follows a layered architecture:
- Plugin Layer (
plugin/): IDA plugin registration and action handlers - UI Layer (
ui/): Qt widgets for the chat interface - Core Layer (
core/): Chat engine with agentic loop - API Layer (
api/): Claude API client with streaming support - History Layer (
history/): JSONL session persistence
Key design patterns:
- PIMPL idiom for ABI stability
- Qt signals/slots for thread-safe UI updates
- Streaming HTTP for real-time responses
- SSE parsing for Claude's streaming format
MIT License - see LICENSE file.
Ported from ida-chat-plugin (Python).
Reference projects: