Use this file to discover all available pages before exploring further.
To keep things simple, we’ve provided a getting-started repository that contains everything you need to create a release. Follow along with us by cloning the repository.
Releases are defined by the config schemas they contain. The getting-started repository contains two sets of schemas for each of the supported schema languages:
Empty schemas - regard all config instances as valid
Strict schemas - constrain the valid fields, types, and values for instances of the config type they belong to
For this tutorial, choose one of these schema sets to create your release with.If you’re unfamiliar with schema languages, we recommend starting with JSON Schema. If you don’t currently use a schema, we recommend starting with an empty schema and gradually adding constraints as needed.
Each of the above schema examples are annotated with the x-miru-config-type and x-miru-instance-filepath fields. These annotations are crucial metadata that Miru uses to process the schema and deploy config instances to the correct location on the device.
The config type is a required annotation that identifies the config type to which a schema belongs. Below is the syntax for annotating a schema with a config type slug.
x-miru-config-type: "{config-type-slug}"
If the provided config type slug does not yet exist, it is automatically created. To edit a config type after creation, visit the config types documentation.Examples: mobility, communication, perception
The instance file path is the absolute file system path where config instances for this schema are written on the device.
The Miru Agent ships with out-of-the-box access to /srv/miru. To deploy configurations to a custom directory, please visit the File Permissions page.
Instance file paths control the type of file that config instances are deployed as. Currently, JSON (.json) and YAML (.yaml, .yml) are supported.This annotation is optional and defaults to /srv/miru/configs/{config-type-slug}.json.
Next, we’ll install the CLI—the primary method of creating releases in Miru.Creating releases via the CLI is a deliberate design choice. We believe a release’s schemas should live in a Git repository. This allows them to be versioned alongside the code that uses them and encourages better software development practices.While this tutorial covers creating releases on your local machine, the CLI can also be used to create releases in a CI pipeline.InstallThe CLI is only available on macOS and Linux. Windows is not supported.
macOS
Linux
Install via Homebrew.
brew install mirurobotics/cli/miru
If you are not seeing the latest CLI version, refresh Homebrew with brew update.
The CLI is distributed to Linux as a Debian package. Other package formats are not yet supported.We recommend using apt to install the CLI. However, you can manually install the Debian package by downloading it from GitHub and installing it with dpkg.
APT
Manual
1
Set up
Set up Miru’s apt repository.
# ensure the appropriate dependencies are installedsudo apt-get updatesudo apt-get install -y ca-certificates curl gnupg# add Miru's signing keysudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://packages.mirurobotics.com/apt/miru.gpg -o /tmp/miru.gpg.armorsudo gpg --dearmor -o /etc/apt/keyrings/miru-archive-keyring.gpg /tmp/miru.gpg.armorrm /tmp/miru.gpg.armorsudo chmod a+r /etc/apt/keyrings/miru-archive-keyring.gpg# add the repository to your sources listsudo tee /etc/apt/sources.list.d/miru.sources > /dev/null <<EOFTypes: debURIs: https://packages.mirurobotics.com/aptSuites: stableComponents: mainArchitectures: $(dpkg --print-architecture)Signed-By: /etc/apt/keyrings/miru-archive-keyring.gpgEOF
2
Install
After configuring the apt repository, install the CLI.
sudo apt-get updatesudo apt-get install miru-cli
Install a specific version with sudo apt-get install miru-cli=<version> (e.g. 0.9.1, 0.10.0, etc.).
1
Download
All Miru CLI releases are available as Debian packages on GitHub. You can find the latest release here.To download the CLI, drop down the Assets section for the desired release. The assets ending with the .deb extension are the Debian packages for the Miru CLI.
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-cli_<version>_amd64.deb package. If your robot is an aarch64 machine, you’ll want to download the miru-cli_<version>_arm64.deb package.
2
Install
After downloading the package, install it using dpkg.
sudo dpkg -i <...>.deb
LoginTo log in, run the login command.
miru login
Retrieve your authentication token from the Secrets page.
You must be an user to retrieve an authentication token.
Paste the token into the CLI.
Please retrieve your authentication token from the following URL:🔗 https://app.mirurobotics.com/settings/cli-token🔑 Paste your authentication token: **********Validating authentication token...✅ Successfully logged in as Benjamin
With the CLI setup, we are ready to create a release in Miru.Navigate to the root of the getting-started repository and create the release with a schema set of your choice.
Git metadata is pulled from the local Git repository that the schemas are defined in.
To view the release in Miru, navigate to the releases page and click into the release.
Then select the overview tab at the top of the page to view the release’s details.
For a more comprehensive guide on creating releases, visit the create releases documentation. For a concise reference of the CLI command, visit the CLI Reference.