JetBrains ACP Setup: Add AI Agents to IntelliJ IDEA and Rider
A step-by-step guide to JetBrains ACP: install an agent from the ACP Registry, add your own in acp.json, give it MCP tools and fix the errors you are most likely to hit.
Dmytro Vavreniuk
Product Engineer
Short version: open AI Chat, choose Install From ACP Registry (or Settings | Tools | AI Assistant | Agents), install an agent and sign in on first use. For an agent that is not in the registry, use Add Custom Agent, which opens ~/.jetbrains/acp.json, and point command at the agent's full path with its ACP argument.
JetBrains ACP support lets IntelliJ IDEA, Rider and the other JetBrains IDEs host coding agents from different vendors behind one chat and one diff viewer. If you want the background first, read how the ACP Agent Registry changes vibe coding. This post is the hands-on part: what to click, what to put in the config file, and what to check when an agent will not start. The steps follow the JetBrains AI Assistant documentation; menu names can shift between IDE versions, so treat the official help for your build as the source of truth.
Before you start
- A recent JetBrains IDE with the AI Assistant plugin (IntelliJ IDEA, Rider, PyCharm and so on use the same AI Chat). Our earlier article cites IDE 2025.3.2 or newer with a current JetBrains AI plugin as the baseline for the registry; newer builds only add more.
- An account or API key for the agent you want. A JetBrains AI subscription is not required just to connect ACP agents.
- Not on WSL: the documentation lists ACP agents as unsupported there.
- On a managed team setup, an administrator using JetBrains IDE Services can limit the registry, disable agents or block custom ones. If options are missing, ask them first.
Step 1: install an agent from the ACP Registry
- Open the AI Chat tool window.
- Open the chat mode selector (the chevron) and pick Install From ACP Registry. Alternatively go to Settings | Tools | AI Assistant | Agents.
- Install the agent you want. Two optional switches decide what the agent can use: Pass custom MCP servers and Pass IntelliJ MCP server.
- Click OK. The IDE downloads the agent and, if needed, a Node.js or Python runtime (or reuses one you already have).
- Pick the agent in AI Chat and send a first message. Many agents ask you to authenticate at that point.
Some agents ship with the IDE (the JetBrains docs list Junie, Claude Agent and Codex, plus GitHub Copilot as an option), so you may be able to start without any registry step. Updates and removal live on the same Agents page: click Update when the blue dot appears, or Uninstall.
Step 2: add a custom ACP agent
If the agent is not in the registry, such as an internal tool or a fresh open-source project like OpenCode, register it yourself:
- In AI Chat click the more (three dots) button and choose Add Custom Agent. This creates and opens
~/.jetbrains/acp.json. - Add an entry under
agent_servers. The key becomes the agent's name in AI Chat. - Save the file and select the agent in AI Chat.
{
"default_mcp_settings": {
"use_idea_mcp": true,
"use_custom_mcp": true
},
"agent_servers": {
"My Internal Agent": {
"command": "/full/path/to/your-agent",
"args": ["acp"],
"env": { "SOME_VAR": "value" }
}
}
}The fields are simple: command is the executable (use the full path), args are the arguments that switch the agent into ACP mode (often acp, but check your agent's documentation), and env sets environment variables for the process. The IDE can also detect agents already installed on your machine and offer an Add to configuration button.
Step 3: authenticate without leaking secrets
Registry agents may ask for an API key on first use. Most custom agents do not need one in the config: run the agent once in a terminal, sign in as its instructions say, and the IDE-launched process reuses that login. Credentials you type into the IDE are stored in your user configuration. Keep API keys out of any acp.json you commit or share, and review each agent's license and privacy terms before giving it access to a private repository; each one has its own.
Step 4: give the agent tools with MCP
An agent that can only read files is limited. The default_mcp_settings block controls what local agents may use: use_custom_mcp exposes the MCP servers you configured (default on), use_idea_mcp exposes the IDE's own MCP server (default off), and idea_mcp_allowed_tools can narrow the IDE tools to a short allow-list. You can override this per agent on the Agents page.
This is where it gets useful for debugging: connect the LogNroll MCP server and the same agent can pull a real recorded user session and its console and network logs while it edits your code. That turns "users say checkout is broken" into a reproducible starting point; see debugging frontend bugs with session replay.
Troubleshooting
| Symptom | What to check |
|---|---|
| Agent not listed | Is acp.json valid JSON? Restart the IDE after fixing it. |
| Agent fails to start | Use the full executable path in command, verify args, and run the same command in a terminal. |
| Asks to sign in every time | Authenticate in a terminal first, or enter the key once in the Agents page. |
| No agents in the menu | Your organization may restrict the registry or custom agents; also note WSL is unsupported. |
| Need more detail | AI Chat, three dots, Get ACP Logs. For verbose logs enable the llm.agent.extended.logging registry key and restart; those logs can contain chat content, so do not share them blindly. |
Tips for working with several agents
Features such as plans, modes, slash commands and session loading differ per agent, so do not expect identical behavior. Keep diff review inside the IDE and treat the agent as swappable: if one provider has an outage or a model underperforms on a task, switch to another configured agent in the same project. Put shared project rules in one file that every agent reads. To decide which agents deserve a slot, see our OpenCode vs Claude Code vs Cursor comparison, and for the privacy side read local vs remote AI agents.
Next: give your agent real user sessions
An IDE agent is only as good as its context. LogNroll records real sessions, console errors and network calls, so your ACP agent can start from the exact failing journey. New to the idea? Read what session replay is and how it works.
Frequently asked questions
What is ACP in JetBrains IDEs?
ACP is the Agent Client Protocol, an open standard that lets an editor talk to any coding agent that implements it. In JetBrains IDEs it powers the AI Chat agents: you pick an agent, the IDE shows its plan and diffs, and you review changes inside the IDE regardless of which agent produced them.
Does ACP work in Rider?
ACP agents are an AI Assistant feature of the JetBrains IDE platform, and Rider uses the same AI Chat and Settings | Tools | AI Assistant | Agents page as IntelliJ IDEA. Menu names can differ slightly between IDE versions, so check the AI Assistant help for your build.
Do I need a JetBrains AI subscription to use ACP agents?
According to the AI Assistant documentation, no JetBrains AI subscription is required to connect and use ACP agents. Each agent brings its own license, account or API key, so you pay the agent provider (or nothing, if the agent can run a local model).
Where is the acp.json file?
Custom agents live in ~/.jetbrains/acp.json. The easiest way to create it is AI Chat, the more (three dots) menu, Add Custom Agent, which creates and opens the file for you.
Why does my custom agent not appear in AI Chat?
The usual causes are invalid JSON in acp.json, a command that is not a full executable path, or an agent that does not actually start in ACP mode. Validate the JSON, restart the IDE, and run the same command with its args in a terminal to see the real error.
Let your AI agent debug with real sessions. Try LogNroll for free.