---
title: The Machines panel
description: "Work on many machines from one desktop thread: see their health, select them, check them, run a runbook, and see exactly what ran on each."
new_in: "2.2"
---

The **Machines panel** shows, beside a thread, every machine the thread can
reach through a [gateway](../gateways/overview.md) and everything that has run
on them. Use it to check a fleet’s health, select machines, and run a runbook
on them from the conversation. Open it with the **Machines** button in the
thread’s header; for the workspace’s full list, see [Machines](machines.md).

## The rule

The panel knows machines by name only. Its footer says so: *Addresses and
keys stay on edge-gw. Ysra only knows names.*

| Part | What it does |
|---|---|
| The header | **through *gateway* · online**, or **offline** |
| The left edge | Drag it to resize the panel |
| **Open as a page** | Gives the panel the whole window |

## The four tabs

| Tab | Shows |
|---|---|
| **Machines** | Every machine, with its health |
| **Runs** | Runs started from this thread, with each machine’s result |
| **Approvals** | Signed approvals. See [Approvals and automatic runs](../machines/approvals.md) |
| **Schedules** | Runs that repeat |

**Runs**, **Approvals** and **Schedules** appear in threads that work through a
gateway.

## The health bar

A bar at the top counts machines by state:

| Count | Meaning |
|---|---|
| ***n* ok** | The last check was fine |
| ***n* fixed** | A check failed and Ysra fixed it |
| ***n* need you** | Something needs a person. Always shown, even at zero |
| ***n* not answering** | The gateway couldn’t reach them |
| ***n* not checked** | Ysra hasn’t looked at them yet |

Click a count to show only those machines. Click it again to clear the filter.

## Find machines

The search box (**Find, or kind:jetson status:person**) takes plain words and
prefixes. Every word has to match.

| Prefix | Matches | Examples |
|---|---|---|
| `kind:` | The kind of machine | `kind:linux`, `kind:jetson`, `kind:esxi`, `kind:network`, `kind:oss` |
| `status:` | Its state | `status:ok`, `status:fixed`, `status:person`, `status:down`, `status:unchecked` |
| `group:` | A group’s name | `group:cameras` |
| `site:` | The gateway that reaches it | `site:edge-gw` |
| `tag:` | A tag. `tag:prod` also matches production machines | `tag:gpu` |

A plain word matches a machine’s name, kind, groups or tags.

**By group**, **By kind** and **By gateway** change how the list is grouped.
Machines in no group appear under **Not in a group**.

## Cards and tiles

Up to 24 machines are shown as **cards**; more than that, as small **tiles**,
so a large fleet fits on one screen.

A machine carries a badge when it needs noticing: **Fixed**, **Needs you** or
**Not answering**. It also shows **production**, and **can change** or
**look-only**.

## Select machines

| | Cards | Tiles |
|---|---|---|
| Open one | Click | Double-click |
| Select | ++cmd+"Click"++ (++ctrl+"Click"++ on Windows and Linux) | Click |
| Select a range | ++shift+"Click"++ | Drag a box |
| Select a whole group | **Select** on the group’s heading | **Select** on the group’s heading |

With machines selected, a bar at the bottom shows ***n* selected** and three
buttons:

| Button | What it does |
|---|---|
| **Clear** | Clears the selection |
| **Check** | Ysra looks at those machines again, read-only |
| **Run…** | Opens the run sheet for those machines |

## Run a runbook

**Run…** opens a sheet titled **Run a runbook**.

| Field | Options |
|---|---|
| **Runbook** | A saved runbook and its version |
| **Run on** | **A group**, **These machines**, or **The *n* selected** |
| **Run automatically (with your approval)** | Off: a dry run that changes nothing. On: a dry run on each machine first, then the steps |
| **When** | **Now** or **On a schedule** |

With **Run automatically** ticked, the sheet checks whether a signed approval
covers every step before you can start:

| The sheet says | Meaning |
|---|---|
| “✓ Covered by your signed approvals. If a step fails, I look into it and fix it only from your runbook or documents.” | You can start |
| “! Not covered: no signed approval covers every step.” with **Approve…** | The start button stays off. **Approve…** opens the approval form |

The button reads **Start the dry run**, **Start the run** or **Save the
schedule**, depending on your choices.

## Follow a run

The **Runs** tab lists each run with its runbook, version and machines, then a
running count or the result, such as *3 done, 1 fixed and done, 1 need a
person, 0 not ready, 0 not answering, 0 skipped*.

Each machine in a run shows one of **ready**, **not ready**, **not answering**,
**skipped**, **done**, **Fixed**, **failed** or **needs a person**, with the
step it stopped at.

The thread says the same in words when a run starts and when it finishes.

## Open a machine

Open a machine to see everything about it:

| Section | Shows |
|---|---|
| **Findings** | What Ysra found on its last look |
| **Kind**, **Groups**, **Tags**, **Reached via**, **Approval** | Its labels, its gateway, and the approval a change ran under |
| **What ran · open one to see its output** | Each command: its kind, when, and its exit code |

**Check it** (or **Check again**) looks at the machine now. **Copy name**
copies its name.

Open a command to read its output. The viewer has **Find**, **Wrap**, **Copy**
and **Open in a window**.

## When the gateway is offline

The panel still opens, and says *edge-gw isn’t connected. I can only show the
machines this thread already looked at.* Start `ysra serve` on the gateway to
see the rest.

## Threads that need you

A thread whose latest run left machines needing a person is listed under
**Needs you** in the sidebar, like any thread waiting for an answer. It says,
for example, *3 machines need a person after “Camera check”.*

## Related

- [Machines](machines.md): the workspace’s whole list of machines.
- [Runbooks](../machines/runbooks.md): what a run does on each machine.
- [Approvals and automatic runs](../machines/approvals.md): signing, and
  running without asking at each step.
