For the complete documentation index, see llms.txt. This page is also available as Markdown.

Quick Start

Learn how to install, set up and configure OM1.

System Requirements

Operating System

  • Linux (Ubuntu 20, 22, 24)

  • MacOS 12.0+

Hardware

  • Sufficient memory to run vision and other models

  • Reliable WiFi or other networking

  • Sensors such as cameras, microphones, LIDAR units, IMUs

  • Actuators and outputs such as speakers, visual displays, and movement platforms (legs, arms, hands)

  • Hardware connected to the "central" computer via Zenoh, CycloneDDS, serial, usb, or custom APIs/libraries

Software

Ensure you have the following installed on your machine:

  • Go >= 1.23.0 (installation guide)

  • make build tool

  • portaudio for audio input and output

  • ffmpeg for video processing

  • Get your OpenMind API key here

Go Installation

For other platforms, download from https://go.dev/dl/

PortAudio Library

For audio functionality, install portaudio:

ffmpeg

For video functionality, install FFmpeg:

To install Rust and Cargo (required for building SDKs like cdp-sdk), follow the steps below

CLI

OM1 provides a command-line interface (CLI). The main entry point is the om1 binary built from cmd/main.go which provides the following options:

  • config_name: Name of the config file (without .json5 extension) in the /config directory.

For development with debug logging:

Installation and Setup

  1. Clone the repository

Run the following commands to clone the repository and set up the environment:

What these commands do:

  • make deps - Downloads and installs all Go module dependencies, fetches the zenoh-c library, and ensures your environment is ready for building.

  • make build - Compiles the OM1 binary from source code.

Dependencies are managed via Go modules (go.mod and go.sum).

Adding New Dependencies

To add a new Go package:

Best Practices:

  • Keep dependencies minimal and prefer well-maintained packages

  • Run make check before committing (runs fmt, vet, lint, and test)

  • Use make fmt to format code and make lint to check for issues

  1. Set the configuration variables

Locate the config folder and add your OpenMind API key to /config/conversation.json5 (for example). If you do not already have one, you can obtain a free access key at https://portal.openmind.com/.

Or, create a .env file in the project directory and add the following:

Note: Using the placeholder key openmind_free will generate errors.

  1. Run the Conversation Agent

Run the following command to start the Conversation Agent:

Note: Agent configuration names are only required when switching between different agents.

The conversation agent is just an example agent configuration.

If you want to interact with the agent and see how it works, make sure ASR and TTS are configured in conversation.json5.

ASR configuration (check in agent_inputs)

TTS configuration (check in agent_actions)

During the first build, the system will automatically download the zenoh-c library and resolve all Go dependencies. This process may take several minutes to complete.

Prometheus and Grafana Monitoring

If you have Docker installed, you can use the included Docker Compose configuration to spin up Grafana and Prometheus to monitor real-time AI pipeline metrics (such as LLM response times and ASR latencies).

Run the following command:

Then navigate to http://localhost:3000 (default login: admin/admin). The OM1 Latency Monitoring dashboard is automatically provisioned and will display your latency metrics as you interact with the agent.

Understanding the Log Data

The log data provide insight into how the conversation agent makes sense of its environment and decides on its next actions.

  • First, it detects a person using vision.

  • Communicates with an external AI API for response generation.

  • The LLM(s) decide on a set of actions (dancing and speaking).

  • The simulated robot expresses emotions via a front-facing display.

  • Logs latency and processing times to monitor system performance.

More Examples

There are more pre-configured agents in the /config folder. They can be run with the following command:

For example, to run the greeting_conversation agent:

If you configure a custom agent, replace <agent_name> with your agent and run the below command:

To get started with development, refer here

Last updated

Was this helpful?