pool is Poolside’s coding agent. It can run in several modes:
- In your terminal as a standalone interactive application
- As an ACP server with a compatible editor
- As an ACP client connected to an ACP server
- Non-interactively with
pool exec.
| Ghostty | Terminal.app |
|---|---|
![]() |
![]() |
- Install
- Quick start
- Modes
- Spec support
- Run as an ACP server (
pool acp) - Run as an ACP client (
pool --agent-server) - Run non-interactively (
pool exec) - MCP servers
- Configuration
- Permissions
- Feedback and bugs
Linux and macOS:
curl -fsSL https://downloads.poolside.ai/pool/install.sh | shWindows (preview):
irm https://downloads.poolside.ai/pool/install.ps1 | iexRun pool in any project:
cd your-project
poolRun pool -h to see all available options.
- Slash commands with
/ - Fuzzy search over files and directories with
@ - Shell mode with
! - Rewind to previous messages with double
esc
Enter ? or /help during a session to see all available commands and shortcuts.
By default, pool asks for approval before each tool call. Switch to Accept edits or Allow all when you want it to take actions without prompting.
| Mode | ID | What it does |
|---|---|---|
| Always ask | default |
Prompts for approval on first use of each tool type |
| Accept edits | accept-edits |
Auto-approves workspace file reads and writes |
| Allow all | allow-all |
Approves tool calls automatically |
| Plan | plan |
Plans changes without modifying your codebase |
Press Shift+Tab to cycle through modes, or use /mode <id> to switch directly.
pool implements and integrates with open agent specs:
- AGENTS.md: pool automatically reads relevant
AGENTS.mdfiles from your project for project context and instructions. - Skills: load skills to extend pool with reusable workflows.
- MCP: connect tools and data sources via MCP servers.
- ACP: runs as an ACP server inside editors and as an ACP client driving other agents.
pool acp is an Agent Client Protocol server. Use it from any ACP-compatible client.
pool acp setup --editor zedThis writes Poolside agent configuration to ~/.config/zed/settings.json. Or add it manually:
{
"agent_servers": {
"Poolside": {
"command": "pool",
"args": ["acp"],
"type": "custom"
}
}
}pool acp setup --editor jetbrainsThis writes configuration to ~/.jetbrains/acp.json. Or add it manually:
{
"agent_servers": {
"Poolside": {
"command": "pool",
"args": ["acp"]
}
}
}Point the editor's ACP configuration at pool acp:
{
"command": "pool",
"args": ["acp"]
}To pass flags to the ACP server, add them to the args array, for example ["acp", "--reasoning", "high"].
- Session persistence:
session/listandsession/load - Session config options: mode and model. These can be persisted in
pool.jsonand are sent on startup usingsession/set_config_option - Slash commands advertised to the client
By default pool connects to Poolside's built-in agent through pool acp. You can also connect it to any other ACP server:
# Claude Agent
npm install -g @agentclientprotocol/claude-agent-acp
pool --agent-server claude-agent-acp
# Codex
npm install -g @zed-industries/codex-acp
pool --agent-server codex-acp
# Gemini
npm install -g @google/gemini-cli
pool --agent-server "gemini --acp"To set a non-Poolside server as the default, edit ~/.config/poolside/pool.json:
{
"agent_servers": {
"default": {
"command": "claude-agent-acp"
}
}
}Flags after -- are forwarded to the ACP server pool is running. For example:
pool -- --reasoning highRun pool exec to send a single prompt and exit when the task is complete. Use this for scripts, CI pipelines, and one-off tasks.
# Inline prompt
pool exec -p "scan cmd/cli code for vulnerabilities" -o json --unsafe-auto-allow
# Prompt from a file
pool exec -f prompt.txt -o jsonpool can connect to Model Context Protocol servers to expose extra tools to the agent. Manage them with pool mcp:
# Command-based (stdio)
pool mcp add filesystem -- node filesystem-server.js
# Remote HTTP server
pool mcp add --transport http notion https://mcp.notion.com/mcp
# Remote SSE server
pool mcp add --transport sse linear https://mcp.linear.app/sse
# Pass environment variables or HTTP headers
pool mcp add --env API_KEY=your-key myserver -- npx -y myserver-mcp
pool mcp add --transport http --header "Authorization: Bearer $TOKEN" svc https://example.com/mcp
# Inspect and remove
pool mcp list
pool mcp get <name>
pool mcp remove <name>Servers are stored under mcp_servers in ~/.config/poolside/settings.yaml. You can also edit that file directly, or scope servers per-project by adding them to .poolside/settings.yaml.
Run pool config to print the log, trajectory, and configuration directories, as well as the credentials file path. Run pool config settings to open settings.yaml in your editor.
By default, Poolside stores configuration files in ~/.config/poolside. This includes settings.yaml (CLI settings), credentials.json (API token), and pool.json (agent server defaults).
For automation environments, set POOLSIDE_API_KEY instead of using stored credentials. pool checks it before reading from configuration files.
Permission rules can be set at three scopes:
.poolside/settings.local.yaml– local, per-project (gitignored).poolside/settings.yaml– shared per-project (checked in)~/.config/poolside/settings.yaml– personal defaults across projects
When the same setting appears in multiple files, the most specific file wins.
tools:
shell:
allow:
- "git log *"
- "rg *"
deny:
- "rm *"
- "git push *"How tool rules work:
- Tool rules support only
*wildcards (**is not supported) - The rule string must match the tool call shown in the approval prompt
- Subshells and composite shell commands always require manual approval
- Shell commands that use control operators such as
|are not auto-approved
paths:
allow:
- path: ~/Documents/**
- path: ~/workspace/docs/**
write: true
deny:
- path: ~/.ssh/**
- path: ~/.envHow path rules work:
- Paths are read-only by default;
write: trueallows edits, deletes, moves, renames denyoverridesallow- Path patterns support
*and** - Use forward slashes for all paths, including Windows paths
- In
.poolside/settings.local.yaml, paths must be relative to the project - In
~/.config/poolside/settings.yaml, paths must be absolute or start with~
Run /feedback in an interactive session to send feedback or report a bug. To attach an earlier session, resume it first with pool -r and then run /feedback.
See LICENSE.md.

