settings.yaml to control what Poolside agents can do when you run pool or pool exec.
For a complete reference of supported settings keys, see Settings file reference.
You can use settings.yaml to:
- Turn off specific tools
- Automatically approve or deny certain tool calls
- Limit which files agents can read or modify through explicit file tools
- Run agents inside a local sandbox with stronger runtime boundaries
Main controls in settings.yaml
Most users interact with three configuration areas. Other supported settings include hooks, personal MCP server configuration, secret rules, prompt defaults, and API connection settings. For the full schema, see Settings file reference.
These settings serve different purposes:
- Tools decide what actions the agent can attempt.
- Paths decide which files the agent can access through file tools.
- Sandbox defines where the agent runs.
tools controls tool availability and approvals. paths controls access through explicit file tools. Neither setting fully sandboxes the agent. If you need an enforced runtime boundary, use a sandbox.The shell tool
Treat theshell tool as high risk. Shell commands can:
- Install software
- Modify files
- Run scripts
shell may read or modify files outside the restrictions defined in paths.
If you need strict file access controls, turn off shell or run agents inside a sandbox.
File locations
Poolside readssettings.yaml from three locations.
Poolside evaluates available files in this priority order:
.poolside/settings.local.yaml.poolside/settings.yaml~/.config/poolside/settings.yaml
allow and deny rules under tools and paths, priority does not cause the rules in one file to replace the rules in another. Poolside combines these rules across all files. A matching deny always overrides allow. Other settings use setting-specific merge behavior.
Use ~/.config/poolside/settings.yaml for personal defaults across all projects. Use .poolside/settings.local.yaml for personal, project-specific restrictions. Use .poolside/settings.yaml for shared project defaults.
For example settings files for each location, see Settings file reference.
Approvals
Approvals let you automatically allow or deny specific tool calls, which reduces repeated confirmation prompts when you trust certain operations. Rules:- If a tool call does not match an
allowrule, Poolside asks for approval. denyrules always overrideallow.
pool session, approval modes give you a quick way to adjust approval behavior without editing settings.yaml:
Press
Shift+Tab to cycle through approval modes, or use /mode to open the approval mode selector. Changing the approval mode does not change rule precedence. A matching deny overrides a matching allow.
Build and Plan are separate agent modes. Changing the agent mode does not change approval behavior. Switching from Plan to Build always requires your review, including when the approval mode is Allow all.
Auto mode
Auto mode is opt-in. To configure it:- Choose a classifier model that is available through the API connection for your session.
-
Add its model ID to your personal settings file:
Auto mode example for ~/.config/poolside/settings.yaml
-
Restart
poolso it loads the classifier setting. -
Run
/modeand select Auto.
POOL_AUTO_MODE_CLASSIFIER_MODEL when you start pool:
pool.auto_mode_classifier, and it enables Auto mode even when no settings entry exists. Setting it to an empty value disables Auto mode for that invocation.
How Auto mode works
Auto mode applies Accept edits first. For each action that would otherwise require approval, pool sends the classifier your current and earlier prompts, working directory, and the pending action with its arguments. The request uses your session’s API connection and credentials. If you connect through a third-party provider such as OpenRouter, that provider receives the classifier request.
The classifier returns one of these results:
An explicitly requested push or pull request can be classified as medium risk when the action stays within the repository and is recoverable. Destructive, unclear, authentication, and secret-handling actions remain high risk. These are classifier guidelines, not fixed rules for every action.
If the model ID is unavailable, the classifier times out, the provider returns an invalid result, or the action cannot be classified, Poolside opens the normal approval dialog. Auto mode stays selected. If every action prompts for approval, verify the classifier model ID and API connection. Auto mode never turns a matching
deny into an approval.
Subagents use Accept edits when the parent session uses Auto. Their permission requests are not sent to the classifier. For other constraints, see Subagents.
Command-line approvals
Inpool, tool calls require approval unless a matching allow rule exists in settings.yaml.
To run pool exec without approval prompts, use --unsafe-auto-allow:
--unsafe-auto-allow is set:
- Tool calls run without prompts.
- Deny rules still apply.
Tool rules
Usetools to turn off a tool or configure its approval rules. Configure file access tools such as read and edit with paths.
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
- Tool rules support only
*wildcards.**is not supported. - The rule string must match the tool call shown in the approval prompt.
- For pipelines, subshells, and other composite commands, Poolside checks each command separately against your rules.
- Poolside can auto-approve the complete tool call through an
allowrule only when every command matchesallowand no command matchesdeny. - If the rules do not determine the result, the active approval mode determines whether Poolside prompts you or runs the call automatically.
Path rules
Usepaths to control which files agents can access through explicit file tools.
Paths example for .poolside/settings.local.yaml or ~/.config/poolside/settings.yaml
- Poolside treats paths as read-only by default.
write: trueallows edits, deletes, moves, and renames.denyoverridesallow.- 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.yamland~/.config/poolside/settings.yaml, paths must be absolute or start with~. - In
.poolside/settings.yaml, paths must be relative to the project.
Read-only configuration
Read-only paths example for .poolside/settings.yaml
Read-write configuration
Read-write paths example for .poolside/settings.yaml
Protect sensitive files across projects
To block access to sensitive files in every project, add deny rules to your personal defaults file,~/.config/poolside/settings.yaml:
Protect sensitive files example for ~/.config/poolside/settings.yaml
deny rules always override allow.
Local sandbox
A sandbox creates a stronger runtime boundary. Sandbox workspace access supports two modes:read-only: The agent stages workspace changes inside the sandbox. Between turns, Poolside prompts you to apply or discard those changes in your host workspace.read-write: The agent writes workspace changes directly to your host workspace.
~/.config/poolside/settings.yaml file.
Sandbox example for ~/.config/poolside/settings.yaml
- Container runtime image
- Workspace file access
- Extra host mounts
- Network destinations
Use volume mounts in local sandboxes
Use volume mounts to mount extra host paths into the sandbox. If your development workflow depends on host resources outside the workspace, add extra mounts undersandbox.filesystem.mounts.
For example, you can mount a persistent host cache directory, the local Docker socket, and a Docker config directory into the sandbox:
Volume mounts example for ~/.config/poolside/settings.yaml
/var/run/docker.sock gives processes inside the sandbox access to your host Docker daemon. Use that mount only when your workflow requires it.
Poolside rejects an extra mount if its host path overlaps a workspace directory. This includes the workspace directory, its subdirectories, and its parent directories.
Best practices:
- Use absolute host paths.
- Put reusable build caches outside the workspace, then mount them into the sandbox.
- Mount config directories as
read-onlyunless the tool must write to them. - Choose a container image that already includes the tools your workflow needs.
Use private or local images
For local sandboxes, Poolside uses your local Docker engine to resolve the sandbox image.Private image example for ~/.config/poolside/settings.yaml
- Use a private image only after Docker on your machine is already authenticated to that registry.
- You can also use an image that you built or pulled locally.
Glob reference
Tool rule syntax
Tool rule behavior:
- In a tool rule,
*matches zero or more characters, including/. - Tool rules do not support
**.
Path rule syntax
Path rule behavior:
- In a path rule,
*matches characters except/. - In a path rule,
**matches across directories. - The path rule
*:/Program Files/**matches any Windows volume.