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

# Quickstart

> Install Boat and start your first cloud sandbox in two minutes.

<video controls playsInline preload="metadata" poster="/videos/quickstart.jpg" src="https://mintcdn.com/ariana-1e97e6c3/KkeC9MhSefNUGJb6/videos/quickstart.mp4?fit=max&auto=format&n=KkeC9MhSefNUGJb6&q=85&s=d486be74cd88a6b2e9ee1c501a14404d" className="w-full aspect-video rounded-xl" data-path="videos/quickstart.mp4" />

## 1. Install

<CodeGroup>
  ```bash macOS / Linux theme={null}
  curl -fsSL https://boat.dev/install | sh
  ```

  ```powershell Windows theme={null}
  irm https://boat.dev/install.ps1 | iex
  ```
</CodeGroup>

The installer signs you in through the browser (GitHub, Google, or an emailed code), asks whether the sandboxes are for you or for your users, and opens checkout for a plan with a free 7-day trial. Back in the terminal, you are ready.

## 2. Start a sandbox

```bash theme={null}
boat new
```

A full Linux VM, 4 vCPU / 8 GB, with Docker, Node, Python, Go, Rust and the usual coding agents already installed. It stops itself after an hour unless you say otherwise.

## 3. Use it

```bash theme={null}
boat ssh                      # a shell inside
boat prompt "add tests"       # run Claude Code or Codex inside it
boat stop                     # snapshot and pause billing; boat resume brings it back
```

Every command takes the sandbox id, or `current` for the one you just made.

## From code

The same three steps over HTTP, with an [API key](/api-keys):

<CodeGroup>
  ```bash curl theme={null}
  curl -sS -X POST "https://boat.dev/api/v1/sandboxes" \
    -H "Authorization: Bearer $BOAT_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"ttlSeconds":3600}'
  ```

  ```ts TypeScript theme={null}
  import { BoatApi, Configuration } from "@boatdev/sdk";

  const sandbox = new BoatApi(new Configuration({
    basePath: "https://boat.dev/api/v1",
    accessToken: process.env.BOAT_API_KEY!,
  }));

  const created = await sandbox.create({ ttlSeconds: 3600 });
  console.log(created.sandbox.id);
  ```

  ```python Python theme={null}
  import os
  from boat_sdk import ApiClient, Configuration
  from boat_sdk.api.boat_api import BoatApi
  from boat_sdk.models.create_sandbox_request import CreateSandboxRequest

  config = Configuration(host="https://boat.dev/api/v1", access_token=os.environ["BOAT_API_KEY"])
  with ApiClient(config) as client:
      sandbox = BoatApi(client)
      created = sandbox.create(CreateSandboxRequest(ttl_seconds=3600))
      print(created.sandbox.id)
  ```
</CodeGroup>

## Next

<CardGroup cols={2}>
  <Card title="Pricing" icon="tag" href="/pricing">
    What each size costs per hour, and what a plan buys.
  </Card>

  <Card title="Build a platform on Boat" icon="layer-group" href="/platform-guide">
    Give every user or agent their own sandbox.
  </Card>

  <Card title="Environments" icon="key" href="/environments">
    Repositories, secrets and credentials every new sandbox starts with.
  </Card>

  <Card title="Long-running tasks" icon="clock" href="/long-running-tasks">
    Keep a sandbox up for days; resume and fork.
  </Card>

  <Card title="Accounts & sign-in" icon="user" href="/account">
    Sign-in methods, a second machine, and which surface does what.
  </Card>

  <Card title="API & SDKs" icon="brackets-curly" href="/api/v1">
    Auth, envelopes, errors, and the typed Python and TypeScript clients.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.