Poolside pool

A coding agent that runs in your terminal or any ACP-compatible editor, reviewing and editing code and automating dev tasks.

Source repo
poolsideai/pool
Stars
★ 441
Last updated
2mo ago

At a glance

How it runs
CLIIDE extensionMCP server
Works with
Universal · cross-platformOpenAI API
Cost
Free software; you pay for model usage
Setup effort
Low · running in minutes
You'll need
Poolside API key or OpenRouter/Ollama/OpenAI-compatible endpointShell / CLINetwork accessLocal filesystemMCP Server
Typical use
Quick code review or refactoring in the terminal: run pool in a project, fuzzy-search files with @, and enter read-only planning with /plan.
Not a fit if
  • Teams that cannot send code context to a third-party model provider
  • Teams needing stable releases, not the Windows preview build
Source review
67/100 · Some gaps

What does this agent do, and when should you use it?

pool is Poolside's official coding agent that runs as an interactive TUI in your terminal or as an ACP (Agent Client Protocol) server via pool acp, integrating with editors like Zed, JetBrains, and Xcode. It offers four run modes: standalone terminal app, ACP server, ACP client driving other agent servers (pool --agent-server), and the non-interactive pool exec for scripts and CI. The agent ships four approval tiers (Always ask through Allow all), Build/Plan modes, hooks at six lifecycle events, subagent delegation, and tool/path allow-deny permission rules. It integrates with open agent specs — AGENTS.md, Skills, MCP, and ACP — and can use OpenRouter, Ollama, or any OpenAI-compatible API as its model backend. Configuration lives in ~/.config/poolside/settings.yaml with global and per-project scopes.

pool reads AGENTS.md files from your project for context and instructions, accepts prompts in an interactive TUI, and performs file reads/writes and shell commands via tool calls. pool acp exposes an ACP server supporting session/list, session/load, session/set_config_option, and the poolside/session_steer capability; pool --agent-server can drive third-party ACP servers such as claude-agent-acp or codex-acp, and remote ACP agents over streamable HTTP transport. pool exec -p "..." -o runs a single prompt non-interactively and emits JSON output. pool mcp add/list/get/remove manages MCP servers over stdio, HTTP, and SSE transports; Auto approval mode uses a configurable classifier model (auto_mode_classifier or POOL_AUTO_MODE_CLASSIFIER_MODEL) to triage permission requests by risk. Hooks run shell commands at PreToolUse, PostToolUse, UserPromptSubmit, Stop, PreCompact, and SessionStart events, and can inspect or rewrite tool calls and prompts.

  1. Quick code review or refactoring in the terminal: run pool in a project, fuzzy-search files with @, and enter read-only planning with /plan.
  2. Editor users: point Zed or JetBrains ACP configuration at pool acp for session persistence and mid-turn steering.
  3. Developers wanting one TUI for multiple agent backends: connect Claude or Codex via pool --agent-server claude-agent-acp.
  4. CI or security engineers: run pool exec -p "scan cmd/cli code for vulnerabilities" -o --unsafe-auto-allow in a pipeline.
  5. Local/private model users: drive pool through Ollama (ollama launch pool) or an OpenAI-compatible endpoint such as llama.cpp or vLLM.
  6. Teams needing enforced permission boundaries: configure tool wildcard and path read/write allow/deny rules in .poolside/settings.yaml.

How do you install or deploy this agent?

Linux/macOS: curl -fsSL https://downloads.poolside.ai/pool/install.sh | sh. Windows (preview): irm https://downloads.poolside.ai/pool/install.ps1 | iex. To update, exit any session and run pool update; startup also prompts when a newer version exists. First use requires pool login (e.g., OpenRouter account), or set POOLSIDE_API_KEY and POOLSIDE_STANDALONE_BASE_URL in credential-less environments.

How do you use this agent?

Run pool in any project directory for interactive mode; pool -h lists all options. In-session: / slash commands, @ fuzzy file search, ! shell mode, double esc to rewind, Shift+Tab to cycle approval modes, /plan for Plan mode. Editor integration: set ACP config to {"command": "pool", "args": ["acp"]}. Connect other backends: pool --agent-server codex-acp, or configure remote HTTP ACP agents under agent_servers in settings.yaml. Non-interactive: pool exec -p "prompt" -o . Manage MCP: pool mcp add filesystem -- node filesystem-server.js.

What are this agent's strengths and limitations?

Pros
  • Four run modes — TUI, ACP server, ACP client, and non-interactive pool exec — cover both interactive and automation use cases
  • Highly open model backend: native support for OpenRouter, Ollama, and any OpenAI-compatible API (llama.cpp, vLLM, etc.)
  • Fine-grained permission system: tool wildcard rules and path read/write rules across three scopes, with deny overriding allow
  • Hooks and subagents (including the zero-config general subagent) enable context-isolated delegation and lifecycle automation
Limitations
  • Hooks are not a security boundary: they run without approval prompts and fail open, so enforcement must rely on permissions and sandboxes
  • Auto approval mode requires configuring a separate classifier model, adding setup cost
  • Returning from Plan to Build mode always requires review, even under Allow all approval
  • Default reliance on Poolside platform credentials (pool login / POOLSIDE_API_KEY); offline or account-less setups must switch to a third-party backend
  • License details are not stated in the README itself; you must check LICENSE.md

How does this agent compare with similar options?

The README positions pool's ACP client mode alongside ACP servers like Claude Agent (claude-agent-acp) and Codex (codex-acp): pool's TUI can drive those backends directly, or they can replace pool entirely; pool's differentiators are its dual ACP server/client architecture plus built-in approval modes, hooks, and subagents.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Poolside pool This agent 67 · Some gaps CLIFree + model costs ★ 441 2mo ago — OpenAI API
fx Coding Agent 63 · Some gaps CLIFree + model costs ★ 3.6k today Zig ChatGPT · Codex · OpenAI API
Kimi Code CLI 50 · Major gaps CLI ★ 8k 1d ago TypeScript —
Alas Agent Workspace 78 · Good Desktop appFree + model costs ★ 21 today Swift Codex · Claude Code

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Some gaps
67/ 100 5-point scale 3.4 / 5
Trust 18/29
Reliability 9/14
Adaptability 15/18
Convention 12/18
Effectiveness 9/13
Verifiability 4/8
Why each dimension lost points
Trust18 / 29 · 3.1/5

Evidence shows default approval, risk-tiered Auto mode, deny-overrides-allow, read-only path defaults, mandatory review to leave Plan mode, and hooks explicitly documented as not a security boundary with fail-open behavior — real design, but hooks run shell commands without approval and fail open, a concrete deduction.

Reliability9 / 14 · 3.2/5

README documents classifier failure behavior, hook timeout/parse handling, and env-var fallback for credential-less environments; internally consistent but purely textual, no tests or code in scope, hence moderate.

Adaptability15 / 18 · 4.2/5

Multiple run modes (terminal, ACP server/client, exec), multiple backends (OpenRouter, Ollama, OpenAI-compatible), three permission scopes, Windows preview — strong environment fit; trigger precision and Auto classifier internals are deferred to external docs.

Convention12 / 18 · 3.3/5

Table of contents, install, and config reference are thorough; but the license is a proprietary EULA link only with unknown metadata, and there is no version number, changelog, or maintenance statement in scope; attribution is brand-level only.

Effectiveness9 / 13 · 3.5/5

Output formats (), session management, /usage accounting, and rewind are described; value proposition is clear but differentiation and cost data are absent.

Verifiability4 / 8 · 2.5/5

Key claims (permissions/classifier details) resolve to docs.poolside.ai outside the repository and cannot be verified statically; README and LICENSE are consistent and facts are generally separable from inference.

Risks and how to mitigate them
  • Hooks execute shell commands automatically without approval and fail open; the docs themselves state they are not a security boundary — do not rely on hooks for enforcement.
  • Auto approval mode depends on an external classifier model; misclassification could auto-approve high-risk actions. The `--unsafe-auto-allow` flag bypasses all approvals in non-interactive mode and should only be used in controlled environments.
  • The license is a proprietary EULA with unknown repository metadata; review poolside.ai/eula before commercial use.
  • Permission wildcards support only `*`; composite shell commands always require manual approval. Configure explicit deny rules for sensitive paths (~/.ssh, .env).
  • Key safety details (classifier inputs, failure behavior, sandboxing) live in external docs at docs.poolside.ai and were not verifiable in this static review.
Evidence confidence: Low Reviewed Sep 10, 2026 Reviewed revision fcabc59ff678
Review evidence README.mdLICENSE.md
See the full review method →

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. v1.0.16
    Release notes excerpt
    ACP agent - Added hooks: run custom commands at six lifecycle seams (PreToolUse, PostToolUse, UserPromptSubmit, PreCompact, SessionStart, Stop), configured in the hooks section of settings.yaml. Hooks can block or rewrite tool calls and prompts, inject context, or ask the agent to keep going at the end of a turn. …
    View on GitHub ↗
  2. v1.0.15
    Release notes excerpt
    ACP agent - Added a separate selector to choose between build and plan modes. Mode selection is now independent of the permission selector. - Added support for encrypted reasoning tokens. - Improved sticky session support for OpenRouter. ACP client (TUI) - Added cache usage information to the context tooltip. Hover over the context info in the status line to see it. - Added model descriptions to the model selector. - Added support for concurrent permission requests. - Added /logout command. - Improved rendering speed when resuming a session (/resume or --resume). …
    View on GitHub ↗
  3. v1.0.14
    Release notes excerpt
    Internal release.
    View on GitHub ↗

FAQ

What model backend does pool use by default?
By default pool login connects to the Poolside platform (inference endpoint https://inference.poolside.ai). You can instead use OpenRouter, Ollama, or any OpenAI-compatible API via the POOLSIDE_STANDALONE_BASE_URL, POOLSIDE_API_KEY, and POOLSIDE_STANDALONE_MODEL environment variables.
Will tool actions run without confirmation?
The default approval mode is Always ask, which prompts for any tool action not already allowed. You can relax it via accept-edits, auto, or always-allow; Auto mode triages by risk (low-risk runs immediately, high-risk opens the approval dialog).
Can it run unattended in CI?
Yes. Use pool exec -p "..." -o with --unsafe-auto-allow, and set POOLSIDE_API_KEY and base URL environment variables in credential-less environments.
Can hooks be used as a security control?
No. The documentation states hooks run without approval prompts and fail open on error, timeout, or unparseable output; they are not a security boundary. Use permission rules and sandboxes (e.g., pool acp --sandbox required) for enforcement.
How do I connect remote or third-party agents?
Use pool --agent-server <command> for local ACP servers (e.g., codex-acp), or configure a remote streamable-HTTP endpoint with URL and custom headers under agent_servers in settings.yaml, then connect with pool -s remote.
View on GitHub ↗ Install ↓

Related agents