> For the complete documentation index, see [llms.txt](https://docs.drizz.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.drizz.dev/twins/using-twins/web-console.md).

# Web console

Make twins, connect an agent, and watch every call it makes from your browser.

Make twins, connect an agent, and watch every call it makes, from your browser.

{% hint style="info" %}
**Hosted console: coming soon.** The link to a hosted web console will be added here. Until then, you can run the console yourself with the Docker Compose `console` profile on a self-hosted install.
{% endhint %}

|                     |                                                                                         |
| ------------------- | --------------------------------------------------------------------------------------- |
| **Where it runs**   | your browser. It holds no data of its own: every page shows what its twins server holds |
| **You need**        | your work email, with access for your organization from Drizz                           |
| **Your agent gets** | one person's token in a twin, from **Connect**                                          |
| **Watch out**       | an API key and a person token are not interchangeable                                   |

## Prerequisites

* Your work email. Your organization's access comes from Drizz.

## Steps

1. [Sign in](#sign-in) with your work email.
2. On **Run Twins**, [make a twin](#make-a-twin) from a baseline, a size or a written brief.
3. On **Connect**, [copy the line](#connect) that hands the twin to your agent, and run it.
4. Open **Runs** before you start your agent, and [watch the calls arrive](#runs).

## How it works

The web console is the twins in a browser. Make a twin of an app your agent uses, give your agent one person's token in it, and read on the run page everything the agent did there: every call, what changed, and what was refused.

## Sign in

Sign in with your work email. How the sign-in looks depends on how your organization set it up:

| Sign-in            | What you do                                                                                                      |
| ------------------ | ---------------------------------------------------------------------------------------------------------------- |
| Code (the default) | the page shows a code. Approve it in a new tab, at your identity provider                                        |
| Website sign-in    | "Sign in" takes you to your identity provider's page and back, as on most websites                               |
| API key            | on a self-hosted twins server with sign-in sessions turned off, paste an API key your administrator made for you |

When you sign in, the console makes one API key for itself, and revokes it when you sign out. Settings shows it as "this console".

{% hint style="info" %}
If the sign-in says your email has no access yet, ask your Drizz contact. Your organization's access comes from Drizz.
{% endhint %}

## The pages

| Page             | What it does                                                                                                       |
| ---------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Home**         | where to start: make a twin, connect an agent, read its run                                                        |
| **Run Twins**    | make a twin from a baseline, a size or a written brief; reset, renew and delete them                               |
| **Connect**      | one person's MCP address and token in a twin, and the line that hands them to Claude Code, Cursor and other agents |
| **Runs**         | one run per twin: every call it recorded, live, what changed, and what was refused                                 |
| **Environments** | several twins as one unit, raised from a blueprint: one reset, one renewal, one call budget                        |
| **Library**      | scenarios a twin starts from, and blueprints, kept by name for your organization                                   |
| **Baselines**    | the people and events a twin starts with: the built-in ones and your own                                           |
| **Settings**     | your account, API keys, and your organization's people and invitations                                             |

## Make a twin

On **Run Twins**, make a twin from a baseline, a size or a written brief. Each twin you make shows its controls:

* **Reset** returns the twin to how it was seeded. Tokens keep working.
* **Renew** gives it more time before it lapses.
* **Delete** stops the twin for everyone holding a token.

**Baselines** holds the people and events a twin can start with. Use a built-in one, or keep your own.

## Connect

**Connect** shows one person's MCP address and token in a twin, and the line that hands them to Claude Code, Cursor and other agents. Copy the line, run it, and your agent is working in the twin. See [Connect your agent](/twins/using-twins/connect-your-agent.md) for each client.

## Runs

**Runs** has one run per twin. It lists every call the twin recorded, live, as your agent makes it: the operation, how it ended, what it changed, and what was refused. Open it before you start your agent, and watch the calls arrive.

From the CLI, `twin world calls <folder> --follow` shows the same record. See [See what your agent did](/twins/using-twins/see-what-your-agent-did.md#watch-calls-live).

## Twin controls

Each twin has controls beside its run:

| Control                    | What it does                                                                                        |
| -------------------------- | --------------------------------------------------------------------------------------------------- |
| Type and clock             | the twin's type, and what its clock reads, in UTC                                                   |
| **Save as a scenario**     | keeps the twin's current state in your Library, under a name (lowercase letters, digits and dashes) |
| **Wind the clock forward** | moves the twin's clock on by 1 hour, 1 day or 1 week                                                |
| **Make a call fail**       | arms a fault: give an operation, an attempt and a status. The next matching call fails as set       |
| **Load a kept scenario**   | loads a scenario from your Library into the twin                                                    |

{% hint style="warning" %}
Winding the clock, arming a fault and loading a scenario need an owner or an admin of your organization. See [Keys and limits](/twins/reference/keys-and-limits.md#roles).
{% endhint %}

## Environments

**Environments** raises several twins as one unit, from a blueprint. The members reset together, renew together and lapse together, and share one call budget. See [Several twins as one unit](/twins/using-twins/several-twins.md).

## Library

**Library** keeps scenarios and blueprints by name, for your whole organization:

* A **scenario** is a state a twin starts from. Save one from a running twin with **Save as a scenario**.
* A **blueprint** describes an environment: which twins it raises and how they link.

## Settings

**Settings** holds:

* your account;
* **API keys**, which reach the operator API: they make, read and delete twins. CI and `twin login --with-key` use one;
* your organization's people and invitations.

## Two kinds of credential

They are not interchangeable:

| Credential       | Where it comes from   | What it does                                                     |
| ---------------- | --------------------- | ---------------------------------------------------------------- |
| **API key**      | Settings → API keys   | makes, reads and deletes twins. For you, your scripts and CI     |
| **Person token** | each twin, on Connect | acts as one person inside one twin. This is what your agent gets |

See [Keys and limits](/twins/reference/keys-and-limits.md).

## On your own server

If your company hosts its own twins server, the console can run there too. See [Self-hosting](/twins/self-hosting.md).

## Next

* [Several twins as one unit](/twins/using-twins/several-twins.md): raise an environment on the **Environments** page.
* [Connect your agent](/twins/using-twins/connect-your-agent.md): each client, step by step.
* [Keys and limits](/twins/reference/keys-and-limits.md): API keys, roles and limits.

***

*Last updated: 27 October 2026*
