TaskJunkyDocs

Menubar App

Native macOS menubar app for monitoring your dev servers at a glance.

Overview

The Switchyard menubar app puts Ward in your menubar — a native macOS app that shows all your running dev servers, their health, and lets you manage them without touching the terminal.

Requires macOS 14+ (Sonoma).

Build & Run

cd app
xcodegen generate
open Switchyard.xcodeproj
# Build and Run (⌘R)

The Ward owl icon appears in your menubar. Click it to open the control panel.

Features

Live process monitoring

Shows both registered processes (from sy register or sy run) and unregistered node processes detected via ps/lsof. Registered processes show their label; unregistered ones show as "untracked" with the package name derived from their working directory.

Refreshes every 5 seconds by default (configurable in Settings).

Health indicators

Each process shows a status dot:

  • Green — online, port listening, memory normal
  • Amber — degraded (expected port not listening, or memory > 500MB)
  • Red — dead (PID no longer exists)

Quick actions

Hover over a process to reveal kill and restart buttons.

Right-click any process for the full context menu:

  • Kill Process
  • Restart (if command is stored)
  • View Logs (opens log file)
  • Copy Port
  • Copy PID
  • Copy Path

Search & filter

When you have 4+ processes, a search bar appears automatically. Filter by label, port number, or PID.

Process groups

Groups defined via sy group create appear as collapsible sections. Each group shows member count and supports bulk kill/restart.

# Set up groups from the CLI
sy group create fullstack
sy group add fullstack frontend
sy group add fullstack api

Notifications

Switchyard fires macOS notifications when:

  • A tracked process dies unexpectedly ("Something derailed")
  • A port conflict is detected

Settings

Click the gear icon in the action bar to access:

  • Refresh interval — 2s, 5s, 10s, or 30s
  • Launch at login — auto-start via macOS Login Items
  • Appearance — system, dark, or light

How it works

The menubar app reads the same data files as the CLI:

  • ~/.switchyard/registry.json — registered processes
  • ~/.switchyard/groups.json — process groups

It also runs its own process detection (same ps/lsof scanning as the CLI) to find unregistered node processes. No daemon or background service is required — the app handles everything in-process.

App icon

The Ward owl: gauge-ring eyes, Y-track beak (railroad switch), signal antenna ear tufts. Renders as a template image in the menubar, adapting to light and dark mode automatically.

On this page