> ## 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.

# Install

This page details the process of installing the Miru Agent Debian package.

It does not cover provisioning devices for your workspace. Visit the [device provisioning](/cfg-mgmt/provision-devices/overview) documentation to learn how to create and register devices with your workspace.

## 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.

## Install

The Miru Agent is distributed as a Debian package. Other package formats are not yet supported.

We recommend using `apt` to install the agent. However, you can manually install the package by downloading it from GitHub and installing it with `dpkg`.

<Danger>
  [Provisioning tokens](/cfg-mgmt/provision-devices/provisioning-tokens) require Miru Agent `v0.9.0` or later. To install and provision a version that precedes `v0.9.0`, use the legacy [provisioning script](/cfg-mgmt/provision-devices/provisioning-script) instead.
</Danger>

<Tabs>
  <Tab title="APT">
    <Steps>
      <Step title="Set up">
        Set up Miru's `apt` repository.

        ```bash theme={null}
        # ensure the appropriate dependencies are installed
        sudo apt-get update
        sudo apt-get install -y ca-certificates curl gnupg

        # add Miru's signing key
        sudo install -m 0755 -d /etc/apt/keyrings
        curl -fsSL https://packages.mirurobotics.com/apt/miru.gpg -o /tmp/miru.gpg.armor
        sudo gpg --dearmor -o /etc/apt/keyrings/miru-archive-keyring.gpg /tmp/miru.gpg.armor
        rm /tmp/miru.gpg.armor
        sudo chmod a+r /etc/apt/keyrings/miru-archive-keyring.gpg

        # add the repository to your sources list
        sudo tee /etc/apt/sources.list.d/miru.sources > /dev/null <<EOF
        Types: deb
        URIs: https://packages.mirurobotics.com/apt
        Suites: stable
        Components: main
        Architectures: $(dpkg --print-architecture)
        Signed-By: /etc/apt/keyrings/miru-archive-keyring.gpg
        EOF
        ```
      </Step>

      <Step title="Install">
        After configuring the `apt` repository, install the agent.

        ```bash theme={null}
        sudo apt-get update
        sudo apt-get install miru-agent
        ```

        <Tip>
          Install a specific version with `sudo apt-get install miru-agent=<version>` (e.g. `0.7.0`, `0.8.0`, etc.).
        </Tip>
      </Step>
    </Steps>
  </Tab>

  <Tab title="Manual">
    <Steps>
      <Step title="Download">
        All Miru Agent releases are available as Debian packages [on GitHub](https://github.com/mirurobotics/agent/releases). You can find the latest release [here](https://github.com/mirurobotics/agent/releases/latest).

        To download the agent, drop down the **Assets** section for the desired release. The assets ending with the `.deb` extension are the Debian packages for the Miru Agent.

        <Frame>
          <img src="https://assets.mirurobotics.com/docs/v04/images/agent/github-assets.light.png" alt="GitHub release assets" className="block dark:hidden" />

          <img src="https://assets.mirurobotics.com/docs/v04/images/agent/github-assets.dark.png" alt="GitHub release assets" className="hidden dark:block" />
        </Frame>

        Find the architecture that matches your target machine's architecture and download the package.

        For example, if your robot is an `x86_64` machine, you'll want to download the `miru-agent_<version>_amd64.deb` package. If your robot is an `aarch64` machine, you'll want to download the `miru-agent_<version>_arm64.deb` package.
      </Step>

      <Step title="Install">
        After downloading the package, install it using `dpkg`.

        ```bash theme={null}
        sudo dpkg -i <...>.deb
        ```
      </Step>
    </Steps>
  </Tab>
</Tabs>

## Upgrade

The `miru-agent` package can be upgraded via `apt` or by manually downloading the Debian package from GitHub. Since both methods use Debian packages, manual installations can be upgraded via `apt` and vice versa.

<Danger>
  [Provisioning tokens](/cfg-mgmt/provision-devices/provisioning-tokens) require Miru Agent `v0.9.0` or later. If you are running a version that precedes `v0.9.0`, use the legacy [provisioning script](/cfg-mgmt/provision-devices/provisioning-script) to provision instead.
</Danger>

<Tabs>
  <Tab title="APT">
    Upgrade the existing `miru-agent` via `apt`.

    ```bash theme={null}
    sudo apt-get update
    sudo apt-get install miru-agent
    ```

    <Tip>
      Upgrade to a specific version with `sudo apt-get install miru-agent=<version>` (e.g. `0.7.0`, `0.8.0`, etc.).
    </Tip>
  </Tab>

  <Tab title="Manual">
    Manual installations do not have a native upgrade mechanism. Simply repeat the [installation steps](#install) to upgrade to the latest version.
  </Tab>
</Tabs>

## Uninstall

Remove the Debian package.

```bash theme={null}
sudo apt-get purge miru-agent
```

If installed via `apt`, you can also remove the apt source and keyring.

```bash theme={null}
sudo rm /etc/apt/sources.list.d/miru.sources 
sudo rm /etc/apt/keyrings/miru-archive-keyring.gpg
sudo rm /var/lib/apt/lists/packages.mirurobotics.com_apt_*
sudo apt-get update
```

<Info>
  The signing key at `/etc/apt/keyrings/miru-archive-keyring.gpg` is shared with the Miru CLI. Only remove it if you have also uninstalled the Miru CLI.
</Info>

## Poor connectivity

Some environments may have a poor internet connection. Whether located in a remote area or using a cellular connection, downloading the Miru Agent over a network may be impractical in some environments.

In such scenarios, we recommend downloading the Miru Agent to a computer with a stable connection. Then, transfer the package to your target machine and install it.

While this method circumvents the need to *download* the Miru Agent over a network, *provisioning* the agent still requires some level of connectivity to register the device with the Miru control plane.

<Steps>
  <Step title="Download the agent">
    Follow the [installation steps](#install) and select the **Manual** tab to download the Miru Agent to a computer with a stable connection.
  </Step>

  <Step title="Transfer the agent">
    Once you've downloaded the appropriate Debian package, transfer it to your target machine. This can be done via a variety of methods, such as a USB drive.
  </Step>

  <Step title="Install the agent">
    Once you've transferred the package to your target machine, install the `miru-agent` package by running:

    ```bash theme={null}
    sudo dpkg -i <...>.deb
    ```
  </Step>
</Steps>
