Skip to main content
Use settings.yaml to configure how Poolside behaves in the pool CLI. This page is a reference for the top-level settings you can define in Poolside settings files. For task-based guidance, see the related feature pages linked from each section.

File locations and precedence

Poolside reads settings.yaml from three locations. When the same setting appears in multiple files, the most specific file usually takes precedence:
  1. .poolside/settings.local.yaml
  2. .poolside/settings.yaml
  3. ~/.config/poolside/settings.yaml
Some settings combine across files instead. The relevant sections below describe those exceptions and any file-location restrictions.

Top-level settings

Poolside settings files support the following top-level keys.

pool settings

Use pool to configure the saved API connection and CLI launch settings. The CLI reads pool settings only from ~/.config/poolside/settings.yaml. POOL_AUTO_MODE_CLASSIFIER_MODEL overrides pool.auto_mode_classifier for the current process. An explicitly empty value disables Auto mode even when the personal settings file configures a classifier.
Poolside still accepts a top-level api_url key for compatibility, but use pool.api_url in new settings files.

Tools

Use tools to turn off tools or configure approval rules. Each tool key can include: The allow and deny lists combine across all settings files. Poolside enables tools by default. If any settings file sets disabled: true for a tool, Poolside disables that tool. Another settings file cannot enable it with disabled: false.
Tools example for .poolside/settings.yaml

Tool rule syntax

  • Tool rules support * wildcards. ** is not supported.
  • The rule string must match the tool call shown in the approval prompt.
For composite-command matching and approval behavior, see Tool rules.

Paths

Use paths to control which files agents can access through explicit file tools. paths supports: Each path entry supports: The allow and deny lists combine across all settings files.
Paths example for .poolside/settings.yaml

Path rule behavior

  • Poolside treats paths as read-only by default.
  • write: true allows edits, deletes, moves, and renames.
  • deny overrides allow.
  • Path patterns support * and **.
  • Use forward slashes for all paths, including Windows paths.
  • Windows-volume paths do not match on Linux, and Linux paths do not match on Windows.
  • *:/Program Files/** matches any Windows volume.
  • In .poolside/settings.local.yaml and ~/.config/poolside/settings.yaml, paths must be absolute or start with ~.
  • In .poolside/settings.yaml, paths must be relative to the project.

Secrets

Use secrets to configure secret approvals, fallback default redaction patterns, and user redaction patterns. The allow and redact_patterns lists combine across all settings files. Each redact_patterns entry supports:
Secrets example
For more information, see Secrets.

MCP servers

Use mcp_servers to configure personal MCP servers in your settings file. Each server entry can include: transport supports:
MCP servers example for .poolside/settings.yaml
For more information, see MCP servers.

Sandbox

Use sandbox to configure local sandbox behavior for user-managed runs. Sandbox settings include:
Sandbox example for ~/.config/poolside/settings.yaml
Supported values: Use allowed_domains, allowed_cidrs, or both under network.egress. Use env_vars to pass string environment variables into the sandbox container. Use secrets to list the names of secrets that the sandbox can request. For more information, see Secrets. For filesystem.mounts:
  • host must be an absolute path on the host
  • sandbox must be an absolute path inside the container
  • Mount targets must be unique
  • Host mount paths cannot overlap with workspace directories already mounted by Poolside
For more information, see Local sandbox and Sandboxes. Use web_search to configure the search provider for web_search and enhanced web_fetch content extraction. The web_fetch tool works by default with no configuration. The web_search tool activates after you set a provider and an API key.
Web search example for ~/.config/poolside/settings.yaml
Keep api_key in a personal settings file, not in shared project settings. For more information, see Web search and fetch.

Hooks

Use hooks to run commands at six agent lifecycle events: PreToolUse, PostToolUse, UserPromptSubmit, PreCompact, SessionStart, and Stop. The hooks section supports these keys: Each hook entry supports these keys: Event lists combine across settings levels from least specific to most specific, which is also their run order. See hook configuration levels and merge order. A named hook declared again replaces the earlier definition in its original position. Unnamed hooks combine.
Hooks example for .poolside/settings.yaml
For event payloads, decisions, matching, failures, limits, and security, see Hooks.

Subagents

Use subagents to configure agents that the main Poolside agent can delegate work to. Subagent definitions merge across settings levels. More specific scalar values override earlier values, while env and session_config_options combine by key. Changing type clears launch fields from the previous type.
Subagents example for .poolside/settings.yaml
For defaults, validation, permissions, and usage accounting, see Subagents.

Agent servers

Use agent_servers in ~/.config/poolside/settings.yaml to configure ACP-compatible agent servers that pool can launch or connect to with --agent-server or -s. For these options, pool reads agent server configuration only from personal settings. Subagents are the exception. When a subagent uses type: agent_server, Poolside also reads agent_servers from project settings files to resolve the reference. When pool starts, it migrates legacy ~/.config/poolside/pool.json agent server configuration into settings.yaml and removes pool.json. Each agent_servers entry must set either command for a local stdio server or url for a remote network server. Do not set both. Use args and env with command; use headers with url. Set pool.default_agent_server to the agent_servers key that pool should use when you do not pass --agent-server.
Agent server example for ~/.config/poolside/settings.yaml
For more information, see Use other agent servers.

Example settings files

Personal defaults (all projects):
Personal defaults example ~/.config/poolside/settings.yaml
Personal, project-specific:
Personal project-specific example .poolside/settings.local.yaml
Shared, project-specific:
Shared project-specific example .poolside/settings.yaml