> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging.poolside.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Install Poolside Agent CLI

> Install pool and authenticate.

Install the `pool` command line interface (CLI) to use Poolside from the terminal or in CI.

<Info>
  This documentation describes Poolside Agent CLI v1.0.6. Check your version with `pool --version`. To update, exit any active session and run `pool update` from your terminal. See [pool CLI releases on GitHub](https://github.com/poolsideai/pool/releases) for release history.
</Info>

## Prerequisites

* On macOS or Linux, `curl` or `wget`, and `tar`
* <Badge className="beta-badge" size="sm">BETA</Badge> On Windows, PowerShell and `tar`

## Steps

<Steps>
  <Step title="Install">
    <Tabs>
      <Tab title="macOS or Linux">
        Run either command:

        ```bash theme={null}
        curl -fsSL https://downloads.poolside.ai/pool/install.sh | sh
        ```

        ```bash theme={null}
        wget -qO- https://downloads.poolside.ai/pool/install.sh | sh
        ```

        The installer asks you to accept the Poolside End User License Agreement. In headless environments, run `export POOL_INSTALL_ACCEPT_EULA=1` before you run the installer.

        The script installs `pool` to `~/.local/bin` by default unless `POOL_INSTALL_DIR` or `XDG_BIN_HOME` is set. If that directory is already on your PATH, the CLI is ready to use immediately. Otherwise, the installer either prompts to add it to your shell config or prints instructions to add it manually. You can rerun with `POOL_INSTALL_UPDATE_PATH=1` to update your shell config automatically.
      </Tab>

      <Tab title="Windows (beta)">
        By default, the installer places `pool.exe` in `%LOCALAPPDATA%\Programs\pool\bin` unless `POOL_INSTALL_DIR` is set. It also adds the install directory to your user PATH. To skip the automatic PATH update, set `POOL_INSTALL_UPDATE_PATH=0` before running the installer.

        In PowerShell, run:

        ```powershell theme={null}
        irm https://downloads.poolside.ai/pool/install.ps1 | iex
        ```

        The installer asks you to accept the Poolside End User License Agreement. In headless environments, set `$env:POOL_INSTALL_ACCEPT_EULA = "1"` in the same PowerShell session before you run the installer.

        Before you continue:

        * If the installer indicates that the current session needs a PATH update, restart PowerShell or refresh PATH:

        ```powershell theme={null}
        $env:Path = [System.Environment]::GetEnvironmentVariable('Path', 'User') + ';' + [System.Environment]::GetEnvironmentVariable('Path', 'Machine')
        ```

        * If the installer says `pool` is not on your PATH, follow the printed instructions to add the install directory to PATH.

        After PATH is refreshed, continue to authentication. If your shell does not resolve `.exe` commands, run the CLI as `pool.exe` instead of `pool`.
      </Tab>
    </Tabs>
  </Step>

  <Step title="Authenticate">
    Choose the option that matches where you use Poolside:

    <Tabs>
      <Tab title="Poolside deployment">
        Use this to connect to your Poolside deployment.

        ```bash theme={null}
        pool login --api-url <api-url>
        ```

        Replace `<api-url>` with the API URL for your Poolside deployment. Choose browser login or provide an API token. To sign in again later, run `pool login`.
      </Tab>

      <Tab title="Standalone">
        Use this for the default Poolside cloud experience.

        ```bash theme={null}
        pool login
        ```

        Choose **Log in with Poolside Platform**. This opens `platform.poolside.ai` in your browser. In the browser, create or copy an API key, then paste it into the terminal.
      </Tab>

      <Tab title="OpenRouter">
        Use this to connect `pool` to models through OpenRouter.

        ```bash theme={null}
        pool login
        ```

        Choose **Log in with OpenRouter**. Enter an OpenRouter API key from [OpenRouter API keys](https://openrouter.ai/keys).
      </Tab>
    </Tabs>
  </Step>

  <Step title="Verify">
    ```bash theme={null}
    pool --version
    ```

    Then choose the workflow you want to use:

    * [Interactive mode](/cli/interactive-mode)
    * [Automated mode](/cli/automated-mode)
    * [Editor integration (ACP)](/cli/editor-integration)
  </Step>
</Steps>

<Note>
  For `pool` CLI bugs and feature requests, open an issue on [GitHub](https://github.com/poolsideai/pool).
</Note>

## Configure and inspect paths

Run `pool config` to see where the CLI stores configuration, credentials, logs, and trajectories.

Run `pool config settings` to edit `settings.yaml` in your editor. After the editor exits, the CLI validates the file before saving it.

By default, Poolside stores configuration files in `~/.config/poolside`. This includes `settings.yaml`, which stores the saved API URL and other CLI settings, and `credentials.json`, where the CLI stores your saved auth token. If your environment uses a custom configuration directory, `pool` uses that location instead.

Set `POOLSIDE_API_URL` to override the API URL saved in `settings.yaml` without changing the file.

## CI and automation

Use environment variables instead of stored credentials in non-interactive environments.

| Variable           | What it sets                                            |
| ------------------ | ------------------------------------------------------- |
| `POOLSIDE_API_KEY` | Auth token for a Poolside deployment or standalone mode |
| `POOLSIDE_TOKEN`   | Alternative auth token for a Poolside deployment        |
| `POOLSIDE_API_URL` | API URL, overrides the saved setting                    |

`pool` checks these before reading from configuration files.

For authentication, `pool` checks in this order:

* When connected to a Poolside deployment: `POOLSIDE_API_KEY`, `POOLSIDE_TOKEN`, then `credentials.json`
* In standalone mode: `POOLSIDE_API_KEY`, then `credentials.json`
