---
title: Quickstart
description: Install the pols CLI, store an API key, create a sandbox, run a command in it and clean up.
---

This takes about five minutes. You need a Linux or macOS machine with `curl` and a pols.so account.

1. **Create an account**

    Sign up at [https://my.pols.so/signup](https://my.pols.so/signup) with your email address. There is no password: pols sends you a login link, valid once for 15 minutes. New accounts are approved by hand; you get an email when yours is ready.

2. **Create an API key**

    Once approved, open your [account page](https://my.pols.so/account) and create an API key. Copy it right away: its secret is shown only once. See [API keys](/account/api-keys/) for expiry and revocation.

3. **Install the CLI**

    ```sh
    curl -fsSL https://pols.so/install.sh | sh
    ```

    The script installs `pols` to `~/.local/bin` (set `POLS_INSTALL_DIR` to choose another directory) and checks the download against its published checksums. If Claude Code is installed and you run the script in a terminal, it also offers to install the [pols skill](/agents/skill/) and register the [MCP server](/agents/mcp/); press Enter to accept.

4. **Log in**

    ```sh
    pols login
    # paste the API key and press Enter
    pols org
    ```

    `pols login` checks the key against the API and stores it in your user config directory, readable only by you. `pols org` shows your org, its quotas and what it uses. To avoid storing the key, export `POLS_API_KEY` instead; it takes precedence over a stored key.

5. **Create a sandbox**

    ```sh
    pols new --name demo --size small
    ```

    The command waits until the sandbox runs, which takes about ten seconds, and prints its ID (`sbx_...`). You can use the ID or the name `demo` everywhere.

6. **Run commands**

    ```sh
    pols exec demo -- uname -a
    pols exec demo -- bash -lc 'git clone https://github.com/octocat/Hello-World && ls Hello-World'
    pols exec demo --root -- apt-get update
    ```

    Output streams as it arrives and `pols` exits with the command's exit code. Use `bash -lc '...'` for pipes, `cd` and `&&`. See [Commands and files](/sandboxes/commands-and-files/).

7. **Copy files**

    ```sh
    pols cp ./notes.md demo:/home/user/notes.md
    pols cp demo:/home/user/Hello-World/README ./README
    ```

8. **Stop or delete it**

    ```sh
    pols stop demo     # keeps the disk; stopped time is not billed
    pols resume demo   # boots it again from the same disk
    pols rm demo       # deletes the sandbox and its disk for good
    ```

## Next steps

- Add `--json` to any command (except `pols mcp`) to get one JSON document on stdout, errors included. Use it in scripts.
- Keep API keys and passwords in the [vault](/sandboxes/vault/) and pass them with `--secret` instead of `--env`.
- Connect your coding agent with the [MCP server](/agents/mcp/) or the [agent skill](/agents/skill/).
- Look up every command in the [CLI reference](/reference/cli/).
