---
title: "Quickstart"
description: "From nothing to an AI agent driving a real browser profile: install, sign in, create a profile, connect a client, and the first thing to ask it."
canonical: "https://scalebrowser.net/docs/quickstart"
---

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

# Quickstart

> From nothing to an AI agent driving a real browser profile: install, sign in, create a profile, connect a client, and the first thing to ask it.

The shortest path that ends with an agent working a page. Everything here is covered in depth elsewhere; this page is the order to do it in.

<Note>

**You need a Windows machine with a real GPU.** There is no hosted mode, and Windows is the platform Scalebrowser ships for.

</Note>

<Steps>

<Step title="Install and sign in">

Sign in at [scalebrowser.net](/login), open **Download**, and run the installer. It installs for the current user and asks for no administrator rights.

Start the app and press **Sign in**. A browser window opens, you sign in there, and it closes by itself. The app then downloads and verifies the engine, which takes a few minutes and has to finish before any profile can start.

A trial runs seven days and starts one browser for you. Full detail: [Install & run](/docs/install).

</Step>

<Step title="Create a profile">

In the app, open **Profiles** and press **New profile**. A name is the only thing you have to supply; everything else is drawn from a seed.

Two fields are worth a moment:

- **Proxy.** Leave it empty for now and the profile leaves from your own address. That is fine for a first look and wrong for real work, because where a request comes from is judged before any JavaScript runs. [Proxies & exits](/docs/proxies) is the page for that.
- **Country.** Only meaningful together with a proxy. Under the default `follow_exit` the profile adopts the exit's timezone and locale by itself.

Press **Start** and watch a browser window appear. That is the whole product working: a real Chromium with a persistent identity, on your machine.

</Step>

<Step title="Find your token">

Every interface behind `/v1` needs a bearer token.

The desktop app has it in **Settings, General, Connect an agent**, ready to copy, along with the address it is listening on. If you run the daemon binary on its own, `scalebrowser-daemon --generate-token` prints one and stores it under `<data_dir>/token`.

<Warning>

**The token reaches everything.** Every profile, every stored session, the whole management API. Treat it like a password, and prefer your client's environment-variable syntax over a literal in a file you might commit.

</Warning>

</Step>

<Step title="Connect an agent">

For Claude Code, one command:

```bash
claude mcp add --transport http scalebrowser http://127.0.0.1:8787/v1/mcp \
  --header "Authorization: Bearer $SCALEBROWSER_TOKEN"
```

Then `claude mcp list`, and the server should report as connected.

Every other client is one JSON or TOML entry: [Cursor](/docs/agents/mcp-clients/cursor), [Codex](/docs/agents/mcp-clients/codex), [GitHub Copilot](/docs/agents/mcp-clients/copilot), [Antigravity](/docs/agents/mcp-clients/antigravity), [Claude desktop](/docs/agents/mcp-clients/claude). For a chat service that runs in someone else's cloud, such as ChatGPT or claude.ai on the web, see [Remote access](/docs/agents/remote).

</Step>

<Step title="Ask it to do something">

Try this, in whatever client you connected:

> Open news.ycombinator.com in a Scalebrowser profile, read the front page, and tell me the three stories with the most comments.

The agent takes a lease, which reserves a profile and starts its browser, opens the page, gets a text map of it, reads and answers. Then ask it to release the profile.

If it says it cannot list profiles, the daemon is serving the default tool set only. See [the tool set](/docs/agents/mcp-server#the-tool-set); the desktop app ships three profiles rather than one.

</Step>

</Steps>

## What to read next
Pick by what you are doing, not in order.

<CardGroup columns={2}>
  <Card title="Drive pages with an agent" href="/docs/agents/mcp-server">
    The loop, the page map, the tool set, and what an agent structurally never gets.
  </Card>
  <Card title="Write the automation yourself" href="/docs/cdp">
    Start a profile, take its WebSocket address, and drive Chromium directly.
  </Card>
  <Card title="Manage a fleet" href="/docs/fleet">
    Groups, presets and the bulk endpoints, for when one profile becomes fifty.
  </Card>
  <Card title="Make profiles hold up" href="/docs/coherence">
    What the daemon checks before it lets a profile start, and why a launch is refused.
  </Card>
</CardGroup>

## The three things that surprise people

**A profile without a proxy leaves from your address.** Nothing forces one, and the daemon will happily start such a profile. It just means the strongest signal about you is untouched by everything the browser does. [Proxies & exits](/docs/proxies).

**One profile runs on one machine at a time.** Starting it on a second machine of the same account is refused with `4012`, and the reply names the machine holding it. That is a safety property, not a licence limit. [Machines & sign-in](/docs/account/machines).

**One tool can delete profiles, and the desktop app serves it.** `profile.batch` with `action: "delete"` stops the browser, drops the profile and reclaims its disk, which takes every login inside it. It is part of the `management` set. If that is not a power you want an agent to have, see [the tool set](/docs/agents/mcp-server#the-tool-set).
