EMOS Dashboard

The EMOS Dashboard is a web app that runs on your robot. Once you open it in a browser, you can browse and install recipes, start and stop them, and watch what they do — all without touching a terminal. It’s the recommended way to use EMOS on a freshly unboxed robot.

EMOS Dashboard overview

What you get

  • A home page that shows what your robot is, whether something is running, and one-click shortcuts to start a recipe.

  • A recipes library with a built-in catalog you can install from with one click.

  • A live console that streams a recipe’s output as it runs.

  • A system page that tells you the robot’s name on the network, the URLs to open from other devices, and a QR code to scan with your phone.

You don’t need to install anything extra to use the dashboard — it ships with EMOS.

Open it for the first time

After you install EMOS, open a terminal on the robot and run:

emos serve

You’ll see a block like this:

EMOS DASHBOARD

Robot identity: rugged-juniper
Reach the dashboard from a browser:
  http://rugged-juniper.local:8765
  http://localhost:8765
  http://192.168.1.42:8765
  http://emos.local:8765

Pairing code (shown once): 482917
Save it now — it is not stored in plaintext on disk.

  ▄▄▄▄▄▄▄  ▄ ▄▄  ▄▄▄▄▄▄▄
  █ ▄▄▄ █ ▀▄ ██  █ ▄▄▄ █ ...

Three things to notice:

  1. Robot identity — your robot has been given a friendly name (rugged-juniper here). This is how you’ll find it from your laptop or phone.

  2. The URLs — pick whichever one your laptop can reach. From the same Wi-Fi, http://rugged-juniper.local:8765 usually works directly. If .local doesn’t resolve (most Android phones), use the IP address — e.g. http://192.168.1.42:8765.

  3. The pairing code — six digits, shown only on first launch. You’ll type it into the browser to grant that browser access.

Important

The pairing code is shown once. If you lose it, you can mint a new one any time with emos config rotate-pairing.

Pair the browser

EMOS serve pairing flow

Open one of the URLs in your browser. The dashboard notices it’s the first visit and shows a Pair screen — type the six-digit code from the terminal and you’re in. The browser remembers the pairing for ~90 days, so you won’t have to do this again unless you clear cookies, switch browsers, or revoke the access.

To pair a phone the same way, point its camera at the QR code that the terminal printed; the QR opens the same Pair screen with the code pre-filled.

Dashboard views

The dashboard has six pages. The sidebar (or the command palette — press Ctrl+K / +K to open it) lets you jump between them.

Home

EMOS Dashboard Home

A one-glance view of the robot: identity, install status, how long it’s been up, and what (if anything) is running right now. If you haven’t installed any recipes yet, you’ll see a friendly card suggesting one to try first.

Recipes

EMOS Recipe Pulling

The library, with two tabs:

  • Installed — what’s already on this robot.

  • Catalog — recipes published by Automatika that you can install with one click.

Tap Get on a catalog card and the recipe downloads in the background; the card fills in as it progresses and shows up under Installed when it’s done. If your robot is offline, the Catalog tab will tell you so — your already-installed recipes will keep working, you just can’t browse the catalog until the robot can reach the internet.

Tip

The bar at the top of the page shows whether your robot is currently online. It refreshes itself every few seconds, so you’ll know immediately if connectivity comes back.

Recipe Detail

EMOS Recipe Details

Click any installed recipe to see what it does. The page shows:

  • A short description.

  • The sensors the recipe expects (camera, lidar, microphone, …) — and, when relevant, suggested driver packages to install if a sensor is missing.

  • Recent runs of this recipe.

  • A Run button.

If a sensor your recipe needs isn’t connected, the run will warn you up-front rather than silently hanging.

Runs

A timeline of every recipe you’ve run recently. Click any row to open its console.

Run Console

EMOS Runs Console

The live view of a running recipe. Output streams in real time, with colour and a follow-tail toggle so you can scroll back without losing your place. Closing the browser tab does not stop the recipe — there’s a Stop button for that.

The status pill at the top tells you whether the recipe is starting up, running, finished, failed, or was cancelled.

System

EMOS System View

This is the page you’ll want when you need to invite a phone or another laptop to the same robot. It shows:

  • The robot’s name and how to reach it (mDNS name, IP addresses).

  • A QR code to scan from another device — opens the same Pair screen on that device.

  • A list of paired browsers (you can revoke any of them).

  • Robot install info (mode, ROS distribution, version) and a button to copy any field.

Inviting another phone or laptop

Open the System page on a device that’s already paired, and either:

  • Have the new device scan the QR code, or

  • Type the code into the new device’s browser at the same URL.

Both devices end up paired against the same robot.

I lost the pairing code

The robot doesn’t keep the code in readable form on disk for security reasons. To issue a new one:

emos config rotate-pairing

Already-paired browsers stay paired — this just creates a fresh code for the next device that wants in.

Make the dashboard start automatically

If you’d rather not run emos serve by hand each time, ask the robot to run it at boot:

sudo emos serve install-service

The emos install flow already offers to do this for you. To turn it off later:

sudo emos serve uninstall-service

Naming your robot

Every robot is given a friendly name on first boot — rugged-juniper, swift-eagle, that kind of thing. It survives reboots and reinstalls so you can always type http://<name>.local:8765 and find it. To pick your own:

emos config set name happy-robot
sudo systemctl restart emos-dashboard.service   # if running at boot

Manage paired devices

To see who has access to your robot:

emos config tokens

To remove a single device by its label or short ID:

emos config revoke-token phone

To revoke everyone at once and start over:

emos config rotate-pairing   # fresh code; existing tokens still valid

Tip

You can also see and revoke paired devices from the dashboard’s System page.

A note on browser security warnings

The dashboard runs over plain http:// by default, on your local network only. That’s the right default for a home or workshop — your robot is reachable to devices on your Wi-Fi but not to the wider internet, and the pairing code is what gates access.

If you’d like the lock icon in the browser address bar, there’s an opt-in HTTPS mode using a self-signed certificate — see HTTPS (Optional) in the CLI reference for setup, fingerprint verification, and how to add the certificate to your browser’s trust store so the warning goes away permanently.

See also

CLI Reference for the commands the dashboard runs under the hood. Advanced users who want to integrate with their own tools can look at internal/server/openapi.yaml for the dashboard’s REST API.

Trouble?

See also

Troubleshooting — the Dashboard section covers the common bumps: lost pairing code, can’t open emos.local, the dashboard says “not installed” even though I installed something, and similar.