# Install and set up (/studio/install)

# Install and set up [#install-and-set-up]

There are two ways to use Studio, and both read and write the same
`.stuntdouble/` files in your project:

- **From your coding agent.** Install the plugin once, then set up each
  project. Your agent's session is the actor.
- **[In your browser](#open-studio-in-your-browser).** Run
  `npx stuntdouble studio` in a project, on a model connection you set up.

## Before you start [#before-you-start]

- **Node 22.18 or later.** Check with `node --version`.
- **Google Chrome.** Or Playwright's Chromium, if you'd rather not install
  Chrome (`npx playwright install chromium`).
- **A coding agent or a model key.** Claude Code gets the full plugin: the
  local server, the Studio commands
  (`/stuntdouble:setup`, `/stuntdouble:run` and the rest) and the
  [cloud runs](/studio/cloud-runs) server. Studio in your browser needs an
  Anthropic API key or an OpenAI-compatible endpoint instead.

## Install in Claude Code [#install-in-claude-code]

<Steps>
<Step>

### Add the plugin [#add-the-plugin]

```sh
claude plugin marketplace add stunt-double/stuntdouble-mcp
claude plugin install stuntdouble@stuntdouble
```

Plugins load when a session starts, so start a new Claude Code session after
installing.

</Step>
<Step>

### Set up your project [#set-up-your-project]

Open Claude Code in your project folder and run:

```text
/stuntdouble:setup
```

Setup runs [doctor](/studio/troubleshooting#doctor) first and tells you how
local runs are billed. It then asks for three things:

- the URL to test (localhost is fine),
- who the user is,
- what must be true when they're done.

From your answers it writes `.stuntdouble/` with an actor, a checklist of 3 to
8 checks and a `.gitignore`. See [files and commands](/studio/files-and-commands)
for what each file holds.

</Step>
<Step>

### Run it [#run-it]

```text
/stuntdouble:run <checklist>
```

Replace `<checklist>` with the checklist's file name, without `.json`.
[Run a checklist](/studio/run-checklists) explains what happens next.

</Step>
</Steps>

<Callout variant="tip" title="Skip the prompt on every browser action">
  Setup offers to allow Studio's browser tools for this project, so Claude Code
  stops asking before each click. It adds the permission to
  `.claude/settings.local.json` only if you agree.
</Callout>

## Other agents [#other-agents]

Any MCP client can start the local server over stdio:

```sh
npx -y stuntdouble mcp
```

Add that command as a stdio server in your client's MCP settings. The
`/stuntdouble:` commands are Claude Code plugin commands, so in other clients
ask your agent to set up and run a checklist in plain words.

The package is [`stuntdouble` on npm](https://www.npmjs.com/package/stuntdouble),
under the Apache-2.0 license.

## Open Studio in your browser [#open-studio-in-your-browser]

In your project folder, run:

```sh
npx stuntdouble studio
```

Studio opens on `127.0.0.1` and covers setup, actors and checklists, runs,
the live view and results. A project with no `.stuntdouble/` yet asks for the
address to test and starts you with a first actor and checklist to edit.

Set the model in Settings: an Anthropic API key (or `ANTHROPIC_API_KEY` from
your environment), or an OpenAI-compatible endpoint such as OpenAI,
OpenRouter, or a local model in Ollama or LM Studio. The key stays in
`~/.stuntdouble/credentials.json`, readable by you only, and never goes into
the project. Studio never uses a Claude subscription.

A run your agent starts shows up in Studio, and the other way round. To run a
checklist from the terminal on the same connection:

```sh
npx stuntdouble run <checklist>
```

## No account needed [#no-account-needed]

Studio never asks you to sign in. You only need a Stunt Double account when you
move a checklist to [cloud runs](/studio/cloud-runs).
