pool to open an interactive session. The agent can read your code, run commands, and write files. It asks for approval before taking action unless you switch to Always Allow mode.
For one-shot tasks and scripts, use Automated mode instead.
Start a session
Open a session in your current directory:pool with matching shell environment variables:
Write prompts
Type your prompt in the input area at the bottom and pressEnter to send.
For multi-line prompts, press Shift+Enter or Alt+Enter to add a line without sending.
Use the up and down arrow keys to browse prompt history for the current directory.
Add context with @mentions
Type@ in the prompt to mention a file or directory. pool opens a picker so you can choose what to include.
Answer agent questions
If the agent needs clarification while it is working, it can open a question form in the bottom pane instead of guessing. To trigger this flow, tell the agent to ask when needed, for exampleAsk me a question if anything is ambiguous.
You can select one of the provided options or choose Type your own answer to enter a custom response. Press Esc to decline.
Approve tool actions
When the agent wants to run a command or write a file, it asks for approval:- Allow Once: Approve only that action
- Always Allow: Approve all actions of that type for the rest of the session
- Deny: Decline and let the agent work around it if possible
--unsafe-auto-allow, or switch to Always Allow mode with /mode always-allow.
Modes
| 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, then prompts for everything else |
| Always Allow | always-allow | Approves tool actions automatically |
| Plan | plan | Plans changes without modifying your codebase |
Shift+Tab to cycle through modes, or use /mode <id> to switch directly.
Keyboard shortcuts
| Key | What it does |
|---|---|
Shift+Tab | Cycle through modes |
Ctrl+M | Open the agent selector |
Esc | Interrupt the agent while it is running |
Esc+Esc | Rewind to the previous turn when idle |
Ctrl+C | Clear the input field when idle |
Ctrl+D+D | Exit when idle with empty input |
Ctrl+G | Toggle tool grouping in the conversation |
Page Up / Page Down | Scroll the conversation |
Slash commands
Type/ to open the command menu, or type a command directly.
| Command | What it does |
|---|---|
/model | Open the agent selector for the current session |
/mode | List available modes |
/mode <name> | Switch to a mode, e.g. /mode always-allow |
/plan | Switch to plan mode |
/clear | Clear conversation history and free context window space |
/rewind | Roll back to a previous turn |
/share | Get a link to the trajectory viewer for the current session |
/skills | Refresh and list available skills |
/usage | Show token usage and context window state |
/debug:dump | Write the raw agent-server message log to a local JSON file |
/debug:clear-local-sessions | Delete all locally stored session history |
Change the agent
PressCtrl+M or use /model to change the agent for the current session or set a new default. The command is named /model because Agent Client Protocol refers to agents, as defined in Poolside, as models.
To start a session with a specific model:
Rewind a turn
PressEsc+Esc while idle or use /rewind to roll back the last turn. Rewind removes that exchange from the conversation history so the agent does not see it on the next prompt.
Sessions
pool saves sessions automatically. When you exit, pool prints the --resume command for that session so you can continue it later. If a session ends unexpectedly, pool attempts to recover when you start a new one.
View the trajectory
Use/share during a session to get a link to the web-based trajectory viewer.
After a session, browse trajectory files locally:
Use other agent servers
By defaultpool connects to Poolside’s built-in agent. You can also connect it to any other Agent Client Protocol (ACP)-compatible agent server using --agent-server:
pool reads agent server configuration from ~/.config/poolside/pool.json by default. If your environment uses a custom configuration directory, pool reads pool.json from the equivalent location there. To set a non-Poolside server as the default:
--: