Publishing your plugins
Introducing IDA Plugin Manager - Goodbye Manual Submissions
With the introduction of HCLI and the IDA Plugin Manager, we’ve built a new ecosystem for discovering, installing, and managing IDA plugins — all distributed through a central index in the IDA Plugin Repository. The plugins.hex-rays.com remains available for browsing and showcasing plugins, but the previous manual submission process via the My Hex-Rays portal has been retired.
Make Your Plugin Compatible with HCLI & Plugin Manager
The key points to make your IDA plugin available via IDA Plugin Manager are:
Update/create
ida-plugin.jsonPackage your plugin into a ZIP archive
Publish releases on GitHub
Refer to the HCLI Plugin Manager Publication Guide for detailed steps, examples and process description.
Plugin Manager & HCLI Basic Documentation Resources
New to HCLI or the Plugin Manager? Start here to get up and running quickly. These resources are perfect for IDA users who want to browse, install, and manage plugins efficiently.
Plugin Development Documentation Resources
Are you a plugin author looking to make your plugin compatible with HCLI and the Plugin Manager? Explore these detailed guides to learn how to prepare, package, and publish your plugin in the new ecosystem.
Pre-submission checklist
Before publishing your plugin to the IDA Plugin Repository, make sure it’s fully compatible with HCLI and the Plugin Manager - read the testing guide.
Define plugin metadata with ida-plugin.json
ida-plugin.jsonUpdated fields
We’ve added new required and optional fields to ensure compatibility with HCLI and IDA Plugin Manager. See the details and examples here.
The ida-plugin.json it's essential to ensure your plugin will be available in the IDA Plugin Repository and discoverable through Plugin Manager.
To work properly, the ida-plugin.json file must contain at the very least the IDAMetadataDescriptorVersion field as well as a plugin object containing the fields described below.
Example of the minimal ida-plugin.json file:
{
"IDAMetadataDescriptorVersion": 1,
"plugin": {
"name": "plugin1",
"version": "1.0.0",
"entryPoint": "plugin1.py",
"urls": {
"repository": "https://github.com/your-org/your-plugin"
},
"authors": [{
"name": "John Smith",
"email": "[email protected]"
}]
}
}
Check further examples in the HCLI Plugin Manager Docs.
Required Fields Description
.plugin.name
The name will be used to identify the plugin and also generate a namespace name for it if necessary (e.g., an IDAPython plugin). The namespace name is generated by converting all non alphanumeric characters of the plugin name to underscores (_) and prepending __plugins__ to it. For example "my plugin" would become __plugins__my_plugin.
.plugin.entryPoint
The filename of the "main" file for the plugin. It should be stored in the same directory as its ida-plugin.json file. If the entryPoint has no file extension, IDA will assume it is a native plugin and append the appropriate file extension for dynamic shared objects for the host platform (.dll, .so, .dylib). For IDAPython plugins, this should typically be a .py file (e.g., my-first-plugin.py).
.plugin.version
Specify the version of your plugin. It must follow the x.y.z format (e.g., 1.0.0).
.plugin.description
Summarize your plugin functionality.
.plugin.urls.repository
Link to your plugin’s public GitHub repository
plugin.authors and/or plugin.maintainers
- At least one must be provided. Each entry requires name and email.
Optional Fields Description
plugin.description
Summarize your plugin functionality.
plugin.idaVersions
Declare which versions of IDA your plugin supports. You can specify a single version (e.g., 9.0) or a version range (e.g., >=9.0) using the semantic versioning scheme.
plugin.platforms
Supported platforms. Defaults to all if not specified. Values: windows-x86_64, linux-x86_64, macos-x86_64, macos-aarch64
plugin.license
SPDX license identifier (e.g., "MIT", "GPL-3.0", "Apache-2.0")
plugin.logoPath
Include an image to visually represent your plugin on its page at plugins.hex-rays.com. This should be a relative path to an image file within your plugin’s repository. The recommended aspect ratio for the image is 16:9.
plugin.categories
Select at least one category to improve your plugin’s discoverability: disassembly-and-processor-modules, file-parsers-and-loaders, decompilation, debugging-and-tracing, deobfuscation, collaboration-and-productivity, integration-with-third-parties-interoperability,api-scripting-and-automation, ui-ux-and-visualization, malware-analysis, vulnerability-research-and-exploit-development, other
plugin.keywords
Search terms to improve discoverability.
plugin.pythonDependencies
PyPI packages to install (e.g., ["requests>=2.28.0", "package-name"]).
plugin.settings
Configuration options as a list of descriptors of settings.
FAQ
Make your plugin HCLI and Plugin Manager ready - check out our FAQ for guidance and practical tips.
Last updated
Was this helpful?
