# Studio (/docs/studio)



Studio starts with the stack at `http://localhost:4161`. Open the login URL
that `nylorun up` printed, or mint a fresh one:

```sh
npx nylorun studio
```

## Your first session [#your-first-session]

With `npm run dev` running in your project:

1. Pick your project's Tenant.
2. Select **Order assistant** and start a session.
3. Ask **Look up order demo-123**.

The agent calls the `lookup_order` tool in your project process, which returns
`shipped`, and the Runtime records the whole turn. Open the session's events to
see the model step, the tool action, and its result.

If the agent does not appear, check that `npm run dev` is running and connected
to the same Tenant (`npx @nylorun/cli tenant current`).

## What you can do [#what-you-can-do]

Studio lists each Tenant's agents, workflows, and sessions. From there you can
send input, restore history, follow live events, cancel a turn, and change the
Tenant's model settings.

Tenant pages live under `/tenants/<id>/…`; `/` shows a Tenant picker. Studio
can inspect every Tenant on the machine's Runtime.

## Logging in [#logging-in]

The login token is single-use and valid for two minutes. It sets an
`HttpOnly`, `SameSite=Strict` session cookie. Restarting the Studio container
ends Studio sessions; run `npx nylorun studio` again to log in.

## Security boundary [#security-boundary]

Studio is a local development tool for operators, not a production dashboard.

* Studio derives a separate Studio key for each Tenant from the Runtime's admin
  key. No Runtime or provider credential reaches the browser.
* Its proxy accepts only `localhost` or `127.0.0.1`, checks `Origin`, and sends
  no CORS headers. Reach it on another machine through an SSH tunnel.

Tenants created before Studio keys were introduced must be recreated. The
hosted dashboard, pairing fragments, `--local-ui`, and `nylorun-studio` no
longer exist.

## Next step [#next-step]

<Cards>
  <Card title="Your project" description="See the generated files, scripts, and where state lives." href="/docs/project" />

  <Card title="Build" description="Change the agent and add tools." href="/docs/build" />
</Cards>
