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

# Provision a device

Before deploying config instances, we must provision a device with your workspace—the process of installing the Miru Agent onto a machine and registering it with your workspace.

The Miru Agent is a lightweight `systemd` service that runs on your machines, handling the deployment lifecycle of configurations. For more information on the agent, visit the [Miru Agent](/developers/agent/overview) section.

This getting started guide demonstrates the [dashboard](/learn/devices/provision/dashboard). However, you can also use [provisioning tokens](/learn/devices/provision/provisioning-tokens) to provision devices programmatically.

## Supported platforms

The Miru Agent only supports Linux. MacOS and Windows are not supported.

The following operating systems are tested and verified to work with the Miru Agent:

* Ubuntu 20.04, 22.04, and 24.04 LTS
* NVIDIA Jetson JetPack 5.1 and JetPack 6.1
* Raspberry Pi OS (64-bit)

Other Linux distributions and versions may also work, but have not been explicitly tested.

## Create a device

Navigate to the [Devices page](https://app.mirurobotics.com/devices).

<Frame>
  ![Devices Create Page](https://assets.mirurobotics.com/docs/v04/images/devices/create-page.png)
</Frame>

Click the **New Device** button in the top right corner. Enter a descriptive name for your device and click **Create**.

<Frame>
  ![Devices Create Dialog](https://assets.mirurobotics.com/docs/v04/images/devices/create-dialog.png)
</Frame>

## Install the `miru-agent` package

Next, we need to install the `miru-agent` package on your target machine.

Click the **Provision** button on the device you just created.

<Frame>
  ![Device to Provision](https://assets.mirurobotics.com/docs/v04/images/devices/device-to-provision.png)
</Frame>

A dialog will appear prompting you to install the Miru Agent. If the device already has a compatible Miru Agent installed, you can skip this step.

<Frame>
  ![Install Miru Agent Dialog](https://assets.mirurobotics.com/docs/v04/images/devices/provisioning/install-dialog.png)
</Frame>

<Note>
  For more information about installing the `miru-agent` package, visit the [agent installation](/developers/agent/install) documentation.
</Note>

## Provision the device

Once the `miru-agent` package is installed, continue to the provisioning step.

The dialog will present a pre-authenticated command that invokes the `miru-agent` binary with a short-lived token (5 minutes) to provision the device for your workspace

<Frame>
  ![Provision Miru Agent Dialog](https://assets.mirurobotics.com/docs/v04/images/devices/provisioning/provision-dialog.png)
</Frame>

* `sudo -u miru` sets the command to run as the `miru` user.
* `MIRU_PROVISIONING_TOKEN=<token>` authenticates the request.
* `/usr/sbin/miru-agent provision` executes the `miru-agent` binary with the `provision` command.

To provision the device, copy the command from the dialog and paste it into the terminal of the machine you want to provision.

<Tip>
  For more information about Miru's authentication model, visit the [agent security](/developers/agent/security) documentation.
</Tip>

## Verify the installation

To verify the agent was successfully installed and provisioned, navigate to the [Devices page](https://app.mirurobotics.com/devices). You should see your device listed with the status `Activating` before transitioning to `Online`.

<Info>
  The transition from `Activating` to `Online` may take up to 10 seconds, depending on your network connection.
</Info>
