Sections

User Guide

Settings Window

Open the Settings window from the menu bar dropdown — Runyard → Settings… — or with the standard ⌘, shortcut while Runyard is active. The window has four tabs: General, Tools, Advanced, and About.

Most options here mirror fields in config.json. A few don't — global keyboard shortcut, menu bar status text, and config file location are stored per-Mac in UserDefaults.

General tab

Launch at login

Runyard registers itself with macOS so it starts automatically on login. The toggle calls SMAppService directly — there is no launchAtLogin field in config.json. macOS shows the same entry under System Settings → General → Login Items & Extensions.

Global keyboard shortcut

Bind a system-wide hotkey that opens the Runyard menu from anywhere. Pressing the shortcut a second time closes the menu.

To record one:

  1. Click the shortcut field in Settings → General → Shortcut.
  2. A popover appears. Hold any combination of ⌃ ⌥ ⇧ ⌘ plus a non-modifier key.
  3. The shortcut saves immediately and the popover closes. Press Esc to cancel without changing it.

If the combination is already taken by macOS (e.g., ⌘Space for Spotlight), Runyard rejects it and shows an error in the popover. Pick another combination.

To clear the shortcut, click the field and press Esc, or use a different combination.

Show status text

When enabled, Runyard appends a short summary to its menu bar icon:

The two format strings are editable. Click the pencil button next to a field to unlock it, edit, then click the checkmark to confirm. A warning appears if you remove the required token ({names} for starting, {count} for running).

Failing-probe indicator

Independent of the status text, a small red ⚠︎ triangle appears next to the Runyard icon whenever any probe is in the failing state. It clears as soon as the probe recovers. See Health Checks.

Tooltip

Hovering the Runyard icon shows a dynamic tooltip listing every active service with its detected port and a state glyph (●, ◐, ✕). Stopped tools and shortcuts are omitted.

Paths

The same list as the top-level paths array in config.json. Add directories that should be prepended to PATH for every command Runyard spawns. Use the + to add, the to remove (with a confirmation popover).

Files

Config file

Shows the current path to config.json (with ~ and iCloud Drive abbreviated). When using a custom location, a blue Custom Location badge appears.

See Troubleshooting → Syncing Across Macs for the recommended workflow.

Log directory

Shows the read-only path to ~/Library/Logs/Runyard/. The Open in Finder button reveals the folder.

Reload Configuration

Re-parses config.json and rebuilds the menu. Running tools are stopped first. Equivalent to the Reload Configuration menu item.

Tools tab — visual editor

A guided alternative to hand-editing config.json. Saves are written straight to the same file, so the JSON view and this editor stay in sync.

When you save changes, Runyard reloads the configuration in the background — services may briefly stop and restart if their definitions changed.

A list of every top-level tool. Each row has a small badge indicating the type:

Badge Type
⚙️ teal Service
⚡ yellow Shortcut
📁 grey Group
📡 blue Health check (probe)

Detail pane

Editing a tool fills out a form whose sections appear conditionally based on the tool's type:

Identity

Directory (service only)

The project root. ~ is expanded. Commands run from here unless a process overrides it via workingDir.

Options (service only)

Start commands / Stop commands (service only)

Process list editor. Each entry is collapsible and shows fields for command, arguments, working directory, startup check URL, fallback port, request timeout, and waitFor. Use the up/down chevrons on each row to reorder, or the trash icon to delete. Stop commands ignore the startup-check fields.

Health check (probe only)

Actions (service / shortcut / group)

A collapsible list of actions. Click a row to expand it and pick one of: Open URL, Run command, Reveal in Finder, AppleScript (inline), AppleScript file, or Health check. Use the chevrons to reorder, the red minus to delete.

showWhen is exposed for service-tool actions only — Always / Running / Stopped.

keepMenuOpen is a per-action toggle.

Nested tools (group only)

Add Service, Shortcut, or Health Check entries that live inside the group's submenu. Each nested tool expands inline into a sub-form identical to the top-level one. Groups themselves cannot be nested.

Install command (service only)

Toggle on to add a one-shot install (e.g., npm install). Fields: command, arguments, marker path. The install runs once before the first start whenever the marker path is missing.

Paths (service only)

Per-tool path entries that merge with the global paths list. The Replace global paths toggle (visible only when at least one entry is present) sets pathsOverride: true.

Save / Revert

The footer bar shows two buttons whenever you have unsaved changes:

If validation fails, the error message appears on the left of the footer.

Advanced tab

Tunes the timing of process startup, shutdown, and install. All values are optional in config.json (the advanced block); leaving them at their defaults stores nothing.

Each row has a number field, a stepper, and a hint line showing the default, minimum, and maximum. Out-of-range values show an orange warning and are clamped on save. Edits auto-save 300 ms after you stop typing.

Service startup

Field Default Range
Startup timeout 30 s 1–300
Startup poll interval 1 s 0.1–10
Startup request timeout 5 s 1–30

Processes

Field Default Range
Shutdown grace period 3 s 1–30
Install timeout 300 s 10–600
Stop command timeout 30 s 1–300

Reset to defaults

Restores every field to its default and removes the advanced block from config.json.

About tab

Shows the Runyard icon, version, and copyright.