ida-plugin-development

Create Python-based IDA Pro plugins using the IDA Domain API.

113|12|Updated Jan 6, 2026
One-click install
npx skills add https://github.com/HexRaysSA/ida-claude-plugins --skill ida-plugin-development
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ida-plugin-development
Source: https://github.com/HexRaysSA/ida-claude-plugins/tree/main/plugins/ida-plugin-development/skills/ida-plugin-development
Command: npx skills add https://github.com/HexRaysSA/ida-claude-plugins --skill ida-plugin-development

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Developing IDA Pro plugins can be complex and error-prone. This skill provides a structured, Python-based approach to building GUI and background plugins, leveraging idiomatic patterns and the Python Domain API (ida-domain) for reliable integration with IDA Pro.

Core Features & Use Cases

  • Use the IDA Domain API to build plugins with a clean Python interface.
  • Integrate plugins into the Plugin Manager for packaging, distribution, and version checks.
  • Define a safe plugin entry point and pairwise hook registration for reliable lifecycle management.
  • Enable cross-plugin communication via IDC functions to automate tasks and data exchange.
  • Save and load plugin state using netnodes to persist data across sessions.
  • Respond to current addresses and selections to react to user context and UI events.
  • Create and manage custom viewers, hints, and rendering customization for richer analysis UI.

Quick Start

Create a new Python-based IDA Pro plugin skeleton using ida-domain patterns, wire it into the Plugin Manager, and implement a minimal UI hook to verify end-to-end integration.

Frequently Asked Questions about ida-plugin-development

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build IDA Pro plugins using Python?

To build IDA Pro plugins using Python, use the IDA Domain API to follow established patterns for reliable integration. This approach supports creating both GUI and headless plugins for automating reverse-engineering tasks.

How do I persist plugin state across IDA Pro sessions?

To persist plugin state across IDA Pro sessions, you should save and load your plugin data using netnodes. This mechanism ensures your plugin's context and analysis data remain intact between different sessions in the IDA environment.

Do I need external Python libraries to develop IDA Pro plugins?

No, you do not need external Python libraries to develop IDA Pro plugins beyond what is included with IDA. The skill requires only IDA Pro with Python support and the ida-domain API, ensuring a clean self-contained development environment.

What is the best way to enable cross-plugin communication in IDA Pro?

The best way to enable cross-plugin communication in IDA Pro is by using IDC functions. This allows your plugins to automate tasks and exchange data directly with other plugins within the IDA environment, streamlining complex reverse-engineering workflows.

How do I create custom viewers and UI hints in an IDA Pro Python plugin?

To create custom viewers and UI hints in an IDA Pro Python plugin, you can use the ida-domain API to manage rendering customization and respond to user context. This provides a richer analysis UI by reacting to current addresses and selections.

How do I register UI hooks in an IDA Pro plugin?

To register UI hooks in an IDA Pro plugin, you should define a safe plugin entry point and use pairwise hook registration. This ensures reliable lifecycle management and allows your plugin to properly respond to UI events and user context.