Dashboard

Manage projects, view logs, and monitor services from the Hatch desktop app.

Last updated: March 5, 2025

Dashboard

Hatch includes a desktop GUI for managing projects, viewing logs, and monitoring service health.

Launch

hatch app

This opens the Hatch dashboard as a native macOS window.

The dashboard uses a tab bar across the top with three tabs:

  • Projects โ€” project management grid
  • Logs โ€” real-time log table with filtering
  • Settings โ€” routes, certificates, settings form, and raw YAML config editor

The top bar also shows daemon controls on the right side. When the daemon is running, restart and stop buttons appear. When stopped, a start button appears instead.

A status bar at the bottom shows the daemon state (running/stopped), version, and uptime.

Projects tab

The main view shows all your projects in a grid layout. Each project card displays:

  • Project name and domain
  • Enabled/disabled toggle
  • Service list with proxy targets and subdomain labels
  • Health indicators (green = healthy, red = unreachable)

You can add, edit, and delete projects directly from the dashboard using dialog forms. The add and edit dialogs support command, dir, and env_file fields for process management. Proxy is optional when a command is set.

Process status

Services configured with a command show a process status indicator:

  • Running (green) โ€” the process is alive
  • Stopped (red) โ€” the process has exited

A restart count badge appears when the process has been restarted automatically.

Tunnel controls

Services with a proxy can be exposed to the internet via Cloudflare Tunnels. Each service row shows a tunnel button:

  • Start (cloud icon) โ€” starts a quick tunnel for the service
  • Starting โ€” pulsing badge while cloudflared initializes (can take up to 30 seconds)
  • Running โ€” displays the public URL as a clickable link, with a stop button (cloud-off icon)

Tunnel output from cloudflared appears in the serviceโ€™s terminal viewer alongside process output. See Share a Dev Server for setup.

Logs tab

The log viewer streams daemon logs in real time via server-sent events. When you switch to the Logs tab, it pre-fills with up to 200 recent log entries.

The table has four columns: Time, Level, Source, and Message. Use the toolbar to filter by log level, search across messages, or clear the buffer. The view auto-scrolls to the latest entry; scroll up to pause, then click โ€œJump to latestโ€ to resume.

Settings tab

The Settings tab uses a sidebar with four sections:

  • Routes โ€” all active routes across enabled projects with domain, path, proxy target, and health status
  • Certificates โ€” root CA and intermediate CA details with trust status and expiry dates
  • General โ€” TLD, ports, auto-start, tray icon, log level, and Cloudflare token
  • Advanced โ€” raw YAML editor for config.yml

Changes in General are saved to config.yml and the daemon reloads automatically.

Tray icon

The tray icon in the macOS menu bar provides quick access to all running projects and daemon controls. The tray runs as a separate process from the daemon. Running hatch down or hatch restart stops both the daemon and the tray. Running hatch up or hatch restart relaunches the tray automatically when tray_icon is enabled.

Menu items:

  • Open Dashboard โ€” shows the dashboard window
  • Add Projectโ€ฆ โ€” opens the add project dialog
  • Restart Hatch / Stop Hatch โ€” daemon lifecycle controls
  • Quit โ€” closes the tray app; the daemon continues running

Each project appears as a submenu with its domain, an enable/disable toggle, and per-service health indicators.

Edit on GitHub