Process supervisor

gtl start runs your dev server under a Unix socket supervisor that injects allocated env vars, streams logs to your terminal, and accepts remote stop/restart commands from any other process.

How it works

  1. You run gtl start in your terminal. The supervisor starts and launches your dev server.
  2. Server output streams to your terminal. You see every log line.
  3. An agent (or any process) calls gtl restart from another terminal. The supervisor bounces the server.
  4. Logs resume in your original terminal. No detached sessions, no hidden processes.
  5. Ctrl+C in your terminal fully exits the supervisor and the server.

Commands

Command Behavior
gtl start Launches supervisor + server. If supervisor is already running, resumes the server process.
gtl stop Stops the server process. Supervisor stays alive so the server can be resumed.
gtl stop --kill Shuts down the supervisor entirely. Equivalent to Ctrl+C from a remote process.
gtl restart Atomic stop + start. Bounces the server in one step.
Ctrl+C Fully exits the supervisor and the server. The socket is cleaned up.

Configuration

The supervisor uses the commands.start field from your .treeline.yml:

.treeline.yml
commands:
  start: bin/dev

Security

The supervisor communicates over a Unix socket with 0600 permissions (owner-only). Read deadlines and client timeouts prevent hung connections. The socket path is derived from a SHA-256 hash of the worktree path.

TUI dashboard

gtl dashboard (aliases: gtl dash, gtl ui) opens a full-screen terminal UI showing every worktree grouped by project. The detail panel displays ports, database name, supervisor state, link overrides, router URLs, and tunnel URLs when configured. Polls every two seconds for a live view.

Keyboard shortcuts

  • j / k or arrow keys to move through the list
  • Tab to switch focus between list and detail panel
  • s start or stop the dev server for the selected worktree
  • o open the app in the browser
  • r restart the supervisor
  • e sync env file from .treeline.yml
  • n create a new worktree (prompts for branch name)
  • d release the selected worktree (confirmation prompt)
  • / filter by project, branch, or worktree name
  • ? toggle the full shortcut help overlay
  • q or Ctrl+C quit