Skip to main content
BETA This feature is in beta and may change before general availability.

Overview

Agent Client Protocol (ACP) lets you use Poolside agents in a variety of editors such as JetBrains, Zed, Neovim, and other ACP-compatible tools. For more information, see the ACP clients documentation. Poolside exposes an ACP server through the pool acp command. Editors can connect to this server to send prompts, receive responses, and run agent-assisted workflows directly inside your development environment. Poolside provides ACP on a best-effort basis and may change as the protocol and client ecosystem evolve. For a terminal-based experience, Toad is recommended. Poolside provides automated setup helpers for some editors.

JetBrains

pool acp setup --editor jetbrains
For more information, see JetBrains.

Zed

pool acp setup --editor zed
For more information, see Zed.

Manual setup for other editors

For editors without automated setup support such as Neovim, Emacs, Cursor, or VS Code with third-party extensions, you can manually configure ACP by following your editor’s agent configuration format.

Basic command structure

The core ACP server command is:
pool acp [FLAGS]
Available flags:
  • --agent-name <name> Poolside agent to use.
  • --debug Enable debug logging to /tmp/pool-acp-debug.log.
  • --no-fetch-models Skip fetching available models when the session starts.
  • -v, --version Display version information.

Finding agent names

List available agents:
pool agents list

Configuration format

Most ACP-compatible editors require:
  1. Command: Path to pool executable or pool if it’s in your PATH
  2. Arguments: Array of command arguments including acp and any flags
  3. Protocol settings: Client capabilities and protocol version
Template: Generic JSON-like configuration
{
  "command": "pool",
  "args": [
    "acp",
    "--workspace",
    "/path/to/workspace",
    "--agent-name",
    "laguna_agent_1120",
    "--debug"
  ],
  "protocolVersion": 1,
  "clientCapabilities": {
    "fs": {
      "readTextFile": true,
      "writeTextFile": true
    }
  }
}
Example: Neovim (CodeCompanion) For Neovim users with CodeCompanion.nvim, configure using lazy.nvim:
{
    "olimorris/codecompanion.nvim",
    dependencies = {
        "nvim-lua/plenary.nvim",
        "nvim-treesitter/nvim-treesitter",
    },
    opts = {
        strategies = {
            chat = {
                adapter = "poolside",
            },
            inline = {
                adapter = "poolside",
            },
        },
        adapters = {
            poolside = function()
                -- Use LSP workspace root, fallback to cwd
                local workspace = vim.lsp.buf.list_workspace_folders()[1] or vim.fn.getcwd()
                return {
                    name = "poolside",
                    formatted_name = "Poolside",
                    type = "acp",
                    roles = {
                        llm = "assistant",
                        user = "user",
                    },
                    commands = {
                        default = {
                            "pool",
                            "acp",
                            "--agent-name",
                            "agent_1003_cc_v2_rc-fp8-tpr",
                            "--workspace",
                            workspace,
                        },
                    },
                    defaults = {
                        model = "019b7095-3f98-7140-a876-dfbc2e0462c7", -- malibu_xml_1215
                    },
                    parameters = {
                        protocolVersion = 1,
                        clientCapabilities = {
                            fs = { readTextFile = true, writeTextFile = true },
                        },
                    },
                    handlers = {
                        form_messages = function(self, messages, capabilities)
                            return require("codecompanion.adapters.acp.helpers").form_messages(
                                self,
                                messages,
                                capabilities
                            )
                        end,
                    },
                }
            end,
        },
    },
}

Troubleshooting

If something isn’t working as expected, start by checking the ACP debug logs:
tail -f /tmp/pool-acp-debug.log
Common issues and fixes:
  • pool command not found
    Make sure pool is installed and available in your PATH, or run it using the full path to the executable.
  • Authentication errors
    Run pool login to authenticate with Poolside, then retry your editor connection.
  • Agent not found
    Confirm the agent name is correct by running pool agents list.