add ida-plugin.json and build for IDA Pro plugin manager #85
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
tl;dr: add
ida-plugin.jsonand CI build for inclusion in upcoming plugin manager ecosystem.Hex-Rays is introducing a plugin manager for IDA Pro, and we'd like to include bindiff (and binexport, PR opened google/binexport#160). It will make discovering, installing, and configuring IDA Pro plugins a snap - think apt-get, pip, or npm but for IDA Pro. Initially the plugin manager will be invoked through the HCLI command line utility, the official Hex-Rays tool for managing IDA Pro installations, licenses, and SDKs. We're also working to bring the plugin repository directly into the IDA Pro GUI, much like the VS Code Extension marketplace.
The implementation of the plugin manager via HCLI is complete (though perhaps can use some polishing - we'll see), and we're now migrating plugins and documentation. We'll shortly introduce the plugin manager on the Hex-Rays blog and recommend all users to try it out. We'd love to include your plugins in the ecosystem :-)
The plugin manager, and updated https://plugins.hex-rays.com/, relies on the
ida-plugin.jsonmetadata file. We've introduced a few changes to this file format to ensure users can discover plugins and install them smoothly. Notably, the plugin manager will install Python dependencies for you! We believe that most plugins can now be installed without any manual steps (copy files to$IDAUSR/plugins, edit source code, run pip commands, etc.). Instead, you'll do a simplehcli plugin install bindiff.Since we're asking for changes to your plugin, we're serious about lending support to make it easier. Please don't hesitate to reach out if you need help, have ideas, or notice a bug. We can open PRs against your project, fix HCLI, and tweak the metadata format based on your feedback. Also happy to schedule a video call together (or physically meet near Frankfurt, Germany or Liège, Belgium). Ultimately, the plugin manager should make it much easier for users to upgrade their IDA Pro experience, while also introducing more users to your plugin.
So, to ensure your plugin works with the new ecosystem, we recommend:
a.
curl -LsSf https://hcli.docs.hex-rays.com/install | sh, orb.
iwr -useb https://hcli.docs.hex-rays.com/install.ps1 | iex, orc. if you insist, without installation:
uv run --with ida-hcli hcliida-plugin.jsonaccording to updated guidelines here, which include:a.
.plugin.versionis now requiredb.
.plugin.urls.repositoryis added and requiredc.
.plugin.authoris added and requiredd. furthermore, you can also add
.plugin.pythonDependencies, specify.plugin.keywordsfor better discovery via searches,.plugin.platformsto limit support to Windows, macOS, and/or Linux, or.plugin.licenseto specify a license.e. use
hcli plugin lint /path/to/plugin/directory/with/ida-plugin.jsonto check for critical issues or optional recommendations in the plugin metadata. Andhcli plugin lint /path/to/plugin.zipto check for issues with the release archive..dll/.so/.dylibshared objects) and theida-plugin.jsonand any other supporting files into a single file.a. For pure-Python plugins, you can probably rely on the source archive automatically attached to GitHub Releases and Tags.
b. For native plugins, you should consider using GitHub Actions to build the artifacts - and Hex-Rays is happy to provide templates and/or propose an initial workflow. You can see an example here: williballenthin/zydisinfo .../build.yml
a. each day, an indexer looks for repositories that contain
ida-plugin.jsonand inspects the releases for candidate plugins. So once you've updated the metadata file and made a new release in GitHub, your plugin will soon show up automatically!For most plugins, these changes shouldn't take very long, but if you have any trouble or confusion - please tell us and we'll lend a hand. Once everything is working, users will be able to do:
With all that in mind, would you please consider updating your plugin to work with the new IDA Pro plugin manager ecosystem? If you need help, guidance, or further details - reach out!
Technical details for the curious:
The underlying index of plugins is published as a JSON file at https://github.com/HexRaysSA/plugin-repository, and Hex-Rays maintains https://plugins.hex-rays.com/ as a website showing the available plugins (As of October 9, 2025, the updated website has not been deployed, though it is pending).
HCLI is a Python CLI program that can download, install, and configure IDA Pro, including searching, fetching, and upgrading plugins. During installation, HCLI places plugins into the correct locations, and install Python dependencies, handles centralized configurations, and more. You can read and contribute to the source here.
We have some further technical documentation here:
Here's how a user interacts with the plugin manager via HCLI: