Publishing your plugins

Do you want to share your IDA plugin with Hex-Rays community? To have your plugin featured in the official Hex-Rays plugin repository, follow our guide for submitting it through My Hex-Rays. The portal serves as a one-stop shop for plugin submission and maintenance, allowing you to manage and track all your submitted plugins in one place.

Pre-submission checklist

Before submitting your plugin to the Hex-Rays repository, make sure the following requirements are met:

  1. Your plugin must be hosted in a public GitHub repository and include:

  • A README.md file with plugin overview, installation instructions and usage examples.

  • An ida-plugin.json file containing the required metadata. See our guidelines on details.

  1. The plugin has been tested and confirmed compatible with the latest IDA version.

Define plugin metadata with ida-plugin.json

The ida-plugin.json eases the organization of your plugin files (allows it to be self-contained in its own sub-directory) and smooths the process for accepting your plugin into our official plugin repository if you decide to share it with the community.

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 ida-plugin.json file:

{
  "IDAMetadataDescriptorVersion": 1,
  "plugin": {
    "name": "My First Plugin",
    "entryPoint": "my-first-plugin",
    "categories": ["disassembly-and-processor-modules"],
    "logoPath": "logo.png",
    "idaVersions": "9.1",
    "description" : "The exemplary description of your plugin's functionality",
    "version": "1.1.2"
  }
}

Fields description

Field
Description

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.

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).

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

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.

idaVersions

Declare which versions of IDA your plugin supports. You can specify a single version or a version range using the semantic versioning schema.

description

Summarize your plugin functionality.

version

Specify the version of your plugin. It must follow the x.y.z format (e.g., 1.0.0).

Submission process

Step 1: Submit a plugin via My Hex-Rays portal

  1. Navigate to My Plugins tab in My Hex-Rays portal.

  2. Click on Submit a Plugin button.

  3. In the new dialog:

  • insert the URL for your public GitHub repository (1)

  • accept the T&C and confirm your ownership (2) then click Review.

  1. If everything looks correct in the plugin details summary, click Submit Plugin to finalize your submission.

Step 2: Plugin review

  • Once submitted, your plugin status will change to Pending while it is reviewed by the Hex-Rays team.

  • If approved, the status will change to Accepted.

  • If your plugin becomes rejected, you'll be notified by email with further details.

Plugins management

Updating your plugin details

To reflect changes—such as updated categories—on your plugin’s page immediately:

  1. Navigate to My Plugins tab in My Hex-Rays portal.

  2. Find your plugin in the list and click View Details.

  3. In the dialog, click Refresh to update the plugin information (this action sets the plugin's status back to Pending) and click Update Plugin to confirm changes.

The changes in your plugin README.md and ida-plugin.json files are monitored - when they get detected, your plugin status will change automatically to Pending.

Removing your plugin

To remove your plugin from the Hex-Rays plugin repository:

  1. Navigate to My Plugins tab in My Hex-Rays portal.

  2. Locate the plugin you want to remove.

  3. Click Unpublish and confirm your decision.

Last updated

Was this helpful?