Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions content/docs/studio/cloud-runs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,19 @@ The result lands in `runs/` beside your local runs, so the
your plan's limit, Studio tells you and offers a local run instead.
</Callout>

## From the terminal or Studio

Without Claude Code, sign in and run the checklist in the cloud from the
terminal, or from Settings in Studio:

```sh
npx stuntdouble login
npx stuntdouble run <checklist> --cloud
```

It pushes the same files, runs the checklist in your workspace and writes the
result beside your local runs. This path is for workspaces on a paid plan.

## Next

- [Re-check every deploy automatically](/tutorials/building-workflows)
Expand Down
14 changes: 9 additions & 5 deletions content/docs/studio/files-and-commands.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,16 @@ Studio writes the `runs/` folders. Don't edit them by hand.

## The CLI

The `stuntdouble` package takes three commands:
The `stuntdouble` package takes these commands:

```sh
npx -y stuntdouble mcp # the local MCP server over stdio (your agent starts this)
npx stuntdouble view # the viewer over this folder's .stuntdouble/
npx -y stuntdouble doctor # check Node, Chrome, the viewer port and billing
npx stuntdouble studio # open Studio in your browser (--port, --no-open)
npx stuntdouble run <checklist> # run one on your model connection (--resume, --max-steps, --cloud)
npx stuntdouble login | logout # sign in or out for cloud runs (--workspace <slug>)
npx -y stuntdouble mcp # the local MCP server over stdio (your agent starts this)
npx stuntdouble view # the read-only viewer over this folder's .stuntdouble/
npx -y stuntdouble doctor # check Node, Chrome, the viewer port and billing
```

`view` also takes a folder: `npx stuntdouble view path/to/project`.
`studio` and `view` also take a folder: `npx stuntdouble studio path/to/project`.
In a terminal, `npx stuntdouble` on its own opens Studio.
18 changes: 13 additions & 5 deletions content/docs/studio/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description: "Stunt Double Studio is the free local app: run a checklist in Chro

Check your change before you push it. Studio runs a Stunt Double checklist in
a Chrome on your own machine, from the coding agent session you already have
open. Point it at localhost, staging or production. An actor goes through the
open or from Studio in your browser. Point it at localhost, staging or production. An actor goes through the
flow, judges each check and leaves the evidence in your project.

<PageFacts
Expand All @@ -23,9 +23,11 @@ flow, judges each check and leaves the evidence in your project.

- **Runs on your machine.** The actor drives a local Chrome, so it reaches
`localhost`, a staging site behind your VPN, or production.
- **Runs on your existing subscription.** Your coding agent is the actor, so
local runs use your Claude plan (or your API key, if Claude Code uses one).
Stunt Double makes no model calls for local runs.
- **Runs on the model you already have.** From your coding agent, the agent
is the actor, so local runs use your Claude plan (or your API key, if Claude
Code uses one). Studio in your browser uses a connection you set up: an
Anthropic API key or an OpenAI-compatible endpoint. Stunt Double makes no
model calls for local runs.
- **Runs are files.** Actors, checklists and every run live in
`.stuntdouble/` in your project. Commit them, review them in a pull
request, and share them with your team like any other file.
Expand All @@ -47,6 +49,12 @@ Then, in Claude Code:
/stuntdouble run <checklist>
```

Or open Studio in your browser, on your own model connection:

```sh
npx stuntdouble studio
```

[Install and set up](/studio/install) covers each step and other agents.

## Studio and cloud runs
Expand All @@ -62,7 +70,7 @@ needs a public or preview URL for the cloud.
| | Studio | Cloud runs |
| --- | --- | --- |
| Where the browser runs | Chrome on your machine | Hosted browsers |
| Who pays for the model | Your Claude plan or API key | Your Stunt Double plan |
| Who pays for the model | Your Claude plan, or your own API key | Your Stunt Double plan |
| Account | None | A Stunt Double workspace |
| Verdicts | Self-judged by your agent | Independent judge |
| When it runs | When you ask | On demand, on a schedule or on a trigger |
Expand Down
41 changes: 37 additions & 4 deletions content/docs/studio/install.mdx
Original file line number Diff line number Diff line change
@@ -1,20 +1,28 @@
---
title: "Install and set up"
icon: "rocket"
description: "Install Stunt Double Studio in Claude Code or any MCP client, check your machine with doctor, and write your first actor and checklist."
description: "Install Stunt Double Studio in Claude Code or any MCP client, or open it in your browser with npx stuntdouble studio, then write your first actor and checklist."
---

# Install and set up

Install the plugin once, then set up each project you want to test.
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

- **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.** Claude Code gets the full plugin: the local app, the
`/stuntdouble` commands and the [cloud runs](/studio/cloud-runs) server.
- **A coding agent or a model key.** Claude Code gets the full plugin: the
local server, the `/stuntdouble` commands 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

Expand Down Expand Up @@ -89,6 +97,31 @@ 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

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

Studio never asks you to sign in. You only need a Stunt Double account when you
Expand Down
4 changes: 4 additions & 0 deletions content/docs/studio/troubleshooting.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@ If `ANTHROPIC_API_KEY` is set in your environment, doctor adds a note: when
Claude Code uses that key, local runs are billed to it rather than your Claude
plan.

Studio in your browser, and `npx stuntdouble run`, use only the connection
you set in Settings: your Anthropic API key or OpenAI-compatible endpoint is
billed for those runs. They never use a Claude subscription.

[Cloud runs](/studio/cloud-runs) are billed to your Stunt Double plan instead.

## A hosted server in `/mcp` asks to sign in
Expand Down
Loading