---
title: "arkor dev"
description: "Launch Studio in the browser."
---

`arkor dev` boots [Studio](/docs/framework/concepts/studio) on `http://localhost:4000`. Studio is the local web UI where you trigger training runs, watch the run stream, and chat with the resulting model in the Playground.

## Run it

<CodeGroup labels={["pnpm","npm","yarn","bun"]}>

```bash
pnpm dev
```

```bash
npm run dev
```

```bash
yarn dev
```

```bash
bun dev
```

</CodeGroup>

Open the URL the CLI prints. Click **Run training** to spawn a training run against `src/arkor/index.ts`. Live metrics stream in; once the run completes, the Playground lets you chat with the trained model (mid-run checkpoints are reachable from code via [`onCheckpoint({ infer })`](/docs/framework/sdk/callbacks)).

`arkor dev` does **not** start a training run on its own. It only serves the UI plus the small loopback API the SPA talks to. Training is triggered from the UI.

## Need a different port?

Pass `--port`:

<CodeGroup labels={["pnpm","npm","yarn","bun"]}>

```bash
pnpm dev --port 5000
```

```bash
npm run dev -- --port 5000
```

```bash
yarn dev --port 5000
```

```bash
bun dev --port 5000
```

</CodeGroup>

Add `--open` to open the browser automatically.

## Reference

For the full flag list, the loopback / CSRF security model, and the troubleshooting catalog (port collisions, anonymous bootstrap, token expiry, 403 reasons), see the [`arkor dev` reference](/docs/framework/cli/dev).
