> For the complete documentation index, see [llms.txt](https://docs.hex-rays.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hex-rays.com/add-ons/assist/overview.md).

# Overview

## What is Assist?

Assist is an IDA add-on that puts an AI agent inside your disassembler. It runs as a dockable Qt panel that shares IDA's window and theme. From the panel you can ask questions about the open database, and the agent answers by calling typed tools that read and (when permitted) modify the same IDB you are looking at.

{% hint style="info" %}
Assist works against the **open database**. Everything the agent knows about your binary comes from tools that query IDA directly — the disassembly, the decompiler, cross-references, strings, types, and the emulator — not from a general-purpose model guessing at code it cannot see.
{% endhint %}

![How Assist works](https://492083732-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFP6ibt8r6WPBHTqekG9u%2Fuploads%2Fgit-blob-52f1db06610510b38bce8ef489a178d35f4e223b%2Fhow-assist-works.png?alt=media)

Every request follows the same five steps: you ask in plain language, Assist inspects the database with IDA's own analysis (decompilation, cross-references, emulation) instead of answering from memory, it answers with addresses and names that lead back into the listing, you approve changes as your Permissions decide, and it remembers its findings for the next time you revisit the code.

## How it fits into IDA

Assist is delivered in two forms:

* **The plugin** — the dockable panel inside the IDA GUI (`assist.dylib`, `assist.so`, or `assist.dll`). This is the primary experience.
* **The MCP stdio bridge** — `plugins/assist/bin/assist --mcp` (`assist.exe --mcp` on Windows), bundled inside the plugin archive. It exposes the same database-backed tools (plus multi-database routing over the Assist Mesh) to external [Model Context Protocol (MCP)](/add-ons/assist/reference/glossary.md#mcp) clients such as Claude Code, Codex CLI, Gemini CLI, or Cursor.

{% hint style="info" %}
Assist is built for interactive, in-IDA use. For bulk, headless analysis or integration into agentic pipelines, see [IDA MCP](/add-ons/mcp/overview.md).
{% endhint %}

## Agent backends

Under **Settings → Preferences… → Agent** (or `/agent`), you can connect the subscriptions and API keys you already use (consumer account subscriptions and inference API keys are distinct credentials; a consumer subscription cannot be pasted as an API key):

* **Assist agent loop** (built-in native agent):
  * **ChatGPT account** (browser sign-in)
  * **Grok** (browser sign-in)
  * **Claude Code** (local `claude` CLI)
  * **Antigravity CLI** (local `agy` CLI)
  * **API key or OpenAI-compatible endpoint** — more than 170 built-in presets across 130+ model providers, gateways, and local servers, plus any custom OpenAI-compatible HTTP/HTTPS endpoint
* **External agents · separate process**:
  * **OpenCode** (local `opencode` CLI over [ACP](/add-ons/assist/reference/glossary.md#acp))

The built-in **Assist agent loop** unlocks Assist's full session feature set — conversation rollback and branching, the visual conversation tree, dedicated right-click action conversations, and full binary triage (`/fulltriage`). See [Getting Started → Choosing an agent](/add-ons/assist/getting-started.md#choose-and-configure-a-model) for the feature comparison and [Requirements & Support → OpenAI-compatible provider presets](/add-ons/assist/reference/requirements.md#openai-compatible-provider-presets) for supported providers.

{% hint style="info" %}
For a local-only or air-gapped configuration, point **API key or OpenAI-compatible endpoint** at a locally hosted or internal server (such as Ollama, LM Studio, LiteLLM, vLLM, or `llama.cpp`) and disable **Check for updates automatically** under **Settings → Preferences… → Updates** (`/update`). Separately account for any permitted scripting/shell tools or external agents that can access the network.
{% endhint %}

## What the agent can do

The agent works through more than 130 typed, validated tools that operate on the live database. Broadly, they let it:

* **Read** the disassembly, pseudocode, Hex-Rays ctrees, microcode, control-flow and call graphs, cross-references, strings, imports/exports, segments, and local types.
* **Explain** functions, data structures, and control flow, anchored to concrete evidence in the database.
* **Emulate** code snippets, whole functions, or user-mode PE/ELF/Mach-O processes to recover stack strings, observe memory writes, track taint, and explore branches — supplemented by automatic per-function micro-emulation when inspecting functions. See [Emulation](/add-ons/assist/concepts/emulation.md).
* **Recover types and solve constraints** — struct layouts, vtable/interface layouts, multi-register returns, local variable types (decompiler required), and Z3 path-reachability constraints.
* **Edit and patch** the database — rename, retype, comment, patch bytes, apply FLIRT/C signatures, generate YARA rules, and repair function bounds or prototypes (with post-edit diagnostics) — governed by the [permission model](/add-ons/assist/concepts/permissions-and-privacy.md) and grouped into IDA undo steps (`Ctrl+Z`) when IDA's undo facility is available.
* **Script and automate** — run IDAPython, standalone Python, or shell commands when permitted.
* **Render** structured visual artifacts (graphs, CFGs, tables, byte strips, diff views), capture IDA view screenshots, and generate Markdown reports.

See [Tools & Actions](/add-ons/assist/concepts/tools-and-actions.md) for how the tool and action surfaces are organized.

For ready-to-use example prompts, open the built-in Assist user guide at **Settings → Guide → What it can do**.

## Memory and the Assist Mesh

* **Per-binary memory.** Assist keeps a persistent SQLite knowledge base per binary, keyed to the input file's MD5 (or a hash of the IDB path when no input MD5 exists). Memories are searchable, and relevant global and local facts are injected into the agent's prompt context as you work. See [Memory](/add-ons/assist/concepts/memory.md).
* **Assist Mesh.** Multiple open IDA instances belonging to your OS user account link automatically over local, owner-only sockets or named pipes — without opening a network port by default (an optional temporary TCP endpoint can be enabled for remote or VM-hosted MCP clients) — so you can compare binaries, route tool calls across databases, and share confirmed memories for review. See [Permissions & Privacy → Assist Mesh and external MCP clients](/add-ons/assist/concepts/permissions-and-privacy.md#assist-mesh-and-external-mcp-clients).

## Platforms

Assist is included with **IDA 9.4 SP1 or later** (IDA Home, IDA Pro; 64-bit) on macOS, Linux, or Windows (`x86-64` and `arm64`). See [Requirements & Support](/add-ons/assist/reference/requirements.md) for platform baselines, licensing, decompiler prerequisites, and architecture support.

## What's next?

Check the [Getting Started](/add-ons/assist/getting-started.md) guide to get you ready with Assist.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.hex-rays.com/add-ons/assist/overview.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
