---
title: "JetBrains"
sidebarTitle: "JetBrains"
description: "Run Devin CLI inside JetBrains IDEs as a custom ACP agent in AI Chat, including JetBrains Remote Development."
icon: "code"
keywords: ['JetBrains', 'IntelliJ', 'PyCharm', 'ACP', 'Agent Client Protocol', 'AI Chat', 'AI Assistant', 'custom agent', 'remote development']
---

JetBrains IDEs can run Devin CLI as a custom agent inside **AI Chat** using the
[Agent Client Protocol (ACP)](https://agentclientprotocol.com/). Once configured,
you can drive Devin from the AI Chat panel in IntelliJ IDEA, PyCharm, GoLand, and
other JetBrains IDEs — including over [JetBrains Remote Development](https://www.jetbrains.com/remote-development/).

<Note>
This integration uses JetBrains' built-in ACP support in AI Assistant. For the
upstream reference, see the JetBrains docs on
[adding a custom agent](https://www.jetbrains.com/help/ai-assistant/acp.html#add-custom-agent).
</Note>

## Prerequisites

- A JetBrains IDE with the **AI Assistant** plugin and AI Chat available.
- Devin CLI installed and authenticated. If you haven't installed it yet, follow
  the [Quickstart](/cli/index), then run `devin auth login`.
- The absolute path to the `devin` binary. You can find it with:

  ```bash
  which devin
  ```

  This typically resolves to something like `~/.local/bin/devin`.

<Tip>
For **JetBrains Remote Development**, Devin CLI must be installed on the **remote
host** (where the backend runs), not on your local client. Run `which devin` in a
terminal on the remote host and use that path in the configuration below.
</Tip>

## Setup

<Steps>
  <Step title="Open AI Chat">
    Click the **AI Chat** icon in the right-hand tool window bar.

    <Frame>
      <img src="/images/cli/acp/jetbrains-ai-chat-icon.png" alt="AI Chat icon in the JetBrains tool window bar" />
    </Frame>
  </Step>
  <Step title="Add a custom agent">
    Click the three-dots menu in the top-right of the AI Chat panel, then choose
    **Add Custom Agent**. This opens the `acp.json` configuration file.

    <Frame>
      <img src="/images/cli/acp/jetbrains-add-custom-agent.png" alt="Add Custom Agent option in the AI Chat menu" />
    </Frame>
  </Step>
  <Step title="Configure the Devin agent">
    Add Devin to the `agent_servers` block in `acp.json`. Set `command` to the
    absolute path of your `devin` binary (from `which devin`) and pass `acp` as
    the only argument:

    ```json acp.json
    {
      "default_mcp_settings": {},
      "agent_servers": {
        "devin": {
          "command": "/home/you/.local/bin/devin",
          "args": ["acp"]
        }
      }
    }
    ```

    Save the file. Devin now appears as a selectable agent in AI Chat.
  </Step>
  <Step title="Start chatting with Devin">
    Select **devin** as the agent in AI Chat and send a message to start a
    session. The first time you connect, you may be prompted to authenticate;
    Devin uses the credentials from `devin auth login` (or `WINDSURF_API_KEY` if
    set).
  </Step>
</Steps>

## Managing the integration

The three-dots menu in the AI Chat panel includes a few helpful actions for the
Devin agent:

- **Reset ACP Authentication** — clear stored ACP credentials and re-authenticate.
- **Get ACP Logs** — open the ACP logs, useful for debugging connection issues or
  inspecting what the agent is doing under the hood.

## Notes and limitations

- Devin CLI's terminal/shell output is surfaced through JetBrains AI Chat's ACP
  rendering, which differs from the native Devin CLI terminal UI. Some richer
  interactions are only available in the standalone CLI.
- The `devin acp` subcommand is intended to be launched by an ACP-aware client
  (like JetBrains AI Chat) as a subprocess — it speaks JSON-RPC over stdio and is
  not meant to be run interactively. See
  [`devin acp`](/cli/reference/commands#devin-acp) in the command reference.
