# Plugins

Plugins are modules written in C++ or IDAPython that provide additional functionality to IDA. They can improve analysis, automate tedious tasks, and integrate new features.

## Invoking plugins

Usually, a plugin is invoked through a hotkey or the menu system. The registered and loaded plugins will appear in a special **Edit → Plugins** submenu.

## Plugins location

The plugin modules reside in the `plugins` subdirectory of IDA. IDA is able to find and load all the plugins from this directory automatically. However, you can write a configuration file and tell IDA how to load plugins. To do so, you need to modify the `plugins.cfg` file in the `plugins` subdirectory, as described below.

## Configure how plugins are loaded with `plugins.cfg`

The `plugins.cfg` file is needed to customize the plugins, including:

* appearance of the plugin in the menu
* the hotkey used to call the plugin
* the optional argument passed to the plugin

The format of the `plugins.cfg` file is simple:

* Empty lines and lines starting with ';' are comment lines
* Other lines must have the following structure and fields:

  ```
           menu_name filename hotkey arg flags
  ```

  Example:

  ```
           Undefine undef    Alt-U  0
  ```

| Fields      | Description                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `menu_name` | A visible name of the plugin. This name will be used in the Edit → Plugins menu. Underscore symbols will be replaced by spaces here.                                                                                                                                                                                                                                                                                                 |
| `filename`  | <p>The plugin file name. If the filename doesn't include the file extension or the directory, IDA will add them.<br><br><strong>Default extensions:</strong><br>- Windows: <code>.dll</code><br>- Linux: <code>.so</code><br>- macOS: <code>.dylib</code><br><br><strong>Note:</strong> Plugins compiled with support for 64-bit address space use a <code>64</code> suffix before the extension (e.g., <code>pdb64.dll</code>).</p> |
| `hotkey`    | A hotkey to activate the plugin                                                                                                                                                                                                                                                                                                                                                                                                      |
| `arg`       | An optional integer argument which will be passed to the run() function of the plugin                                                                                                                                                                                                                                                                                                                                                |
| `flags`     | <p><strong>Optional</strong> flags. The following values are available:<br>- <code>DEBUG</code>: Debugger plugin<br>- <code>WIN</code>: Enable plugin for MS Windows<br>- <code>MAC</code>: Enable plugin for Mac<br>- <code>LINUX</code>: Enable plugin for Linux<br>- <code>GUI</code>: Plugin can only be used with GUI version of IDA<br>- <code>SILENT</code>: Silently skip nonexisting plugin</p>                             |

## See also

* Check documentation on individual [plugins](/9.1/user-guide/plugins/plugins-shipped-with-ida.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hex-rays.com/9.1/user-guide/user-interface/menu-bar/edit/plugins.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
