> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dreamscalelabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Treat the Dreamscale CLI and Python SDK as the supported public integration surfaces.
> Prefer `dreamscale run <robot>` for supported robots and `dreamscale.connect()` with a context manager in Python.
> Do not infer or recommend internal control-plane APIs.

# Deploy your fine-tune

> Serve your own Isaac 0.5 fine-tune from Hugging Face on your robot, and keep its GPU warm between runs.

A deployment serves your own fine-tune from Hugging Face, shaped to your robot.
It is serverless: a GPU starts when a robot connects, and you pay per session.

## What you need

* Isaac 0.5 enabled for your organization. Email
  [team@dreamscalelabs.com](mailto:team@dreamscalelabs.com) to request it.
* A Hugging Face repo with your Isaac 0.5 fine-tune, exported in full, with the
  normalization statistics from its training data.
* A Hugging Face read token if the repo is private.

## 1. Create the deployment

<Tabs>
  <Tab title="Dashboard">
    1. Open [Deployments](https://app.dreamscalelabs.com/dashboard/deployments)
       and choose **Create deployment**.
    2. Enter the repo as `owner/name`, add a read token if it is private, and
       choose **Detect**.
    3. Check the **Robot** fields. **SO-101** and **Bimanual YAM** presets fill
       them for you; **Custom** takes your own cameras, image size, and widths.
    4. Check **Robot unit conversion** (see below) and pick the region nearest
       your robot.
    5. Choose **Create deployment**.
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    dreamscale deployments inspect hf://your-org/isaac-finetune
    dreamscale deployments create hf://your-org/isaac-finetune --preset so101
    ```

    `inspect` shows the robot the repo declares and the datasets its statistics
    cover. Without `--preset`, `create` uses the robot the repo declares. For a
    private repo, set `HF_TOKEN` in the environment.
  </Tab>
</Tabs>

The first build downloads, converts, and tests your weights on a GPU. It takes
about 15 minutes.

<Check>
  The deployment shows **Ready** and an ID like `ckpt_...`.
</Check>

### Robot unit conversion

The conversion turns the model's outputs into your robot's joint angles, using
your checkpoint's normalization statistics. Each training dataset has its own
statistics. Choose the one recorded **on this robot**, or the robot moves to the
wrong positions. Dreamscale selects it for you when the repo names it or only
one fits.

## 2. Run it

On a supported robot, finish its setup first ([SO-101](/robots/so101) or
[Bimanual YAM](/robots/yam)), then:

<CodeGroup>
  ```bash SO-101 theme={null}
  dreamscale run so101 --model perceptron-isaac05-so101 --deployment ckpt_...
  ```

  ```bash Bimanual YAM theme={null}
  dreamscale run yam --model perceptron-isaac05-yam --deployment ckpt_...
  ```
</CodeGroup>

From Python, on any robot:

```python theme={null}
import dreamscale

with dreamscale.connect("perceptron-isaac05", deployment="ckpt_...") as policy:
    result = policy.predict(observation, instruction="pick up the cube")
```

Build `observation` with [`dreamscale.robot.observe`](/python/models#your-deployment).

## 3. Keep it warm (optional)

A cold start takes 2–3 minutes. Keep-warm keeps the GPU up after the last robot
disconnects, so the next robot connects in seconds.

```bash theme={null}
dreamscale deployments keep-warm ckpt_... 30m     # off, 10m, 30m, 1h, 2h, 6h, 12h
dreamscale deployments keep-warm ckpt_... always  # one GPU ready around the clock
dreamscale deployments keep-warm ckpt_... off
```

<Warning>
  Warm time is billed like GPU time, with or without a robot attached. The
  deployment's **Keep warm** card shows the cost.
</Warning>

* One robot at a time uses the warm GPU. A second robot gets its own cold start.
* Each GPU runs at most 24 hours. A session still connected then ends cleanly,
  so reconnect in long-running code. With **Always**, a replacement is ready.
* To move **Always** to a new deployment without a gap, run
  `dreamscale deployments keep-warm ckpt_new always --take-over-from ckpt_old`.

## Manage deployments

```bash theme={null}
dreamscale deployments list
dreamscale deployments show ckpt_...
dreamscale deployments rm ckpt_...       # owners only
dreamscale deployments restore ckpt_...  # owners only, within 7 days
```

Deleting a deployment ends its running sessions and releases its warm GPU. See
the [CLI reference](/reference/cli#deployments) for every option.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.