Documentation

Startup performance

How toowl keeps cold start fast and how we benchmark it.

Launch speed is a first-class metric for toowl. The core terminal loads without spawning plugin subprocesses, without loading every bundled font face, and without blocking on tab restore.

Targets

MetricTarget
Cold start (first frame)<80ms on Apple Silicon
Plugin cost at launch0ms unless Perch opened
Idle RAM~80MB resident

What stays off the critical path

  • Feathers — Claude, Nest, MCP Hub, Scout hot-start on Perch open or palette invoke
  • Subprocess plugin discovery — background thread after first frame
  • Claude FS watcher — deferred until first Perch open
  • Font loading — only the configured font_family TTF at startup
  • Tab restore — first tab interactive immediately; remaining tabs restore asynchronously

Measure it yourself

Time a cold start with hyperfine (or /usr/bin/time if you'd rather not install it):

hyperfine --warmup 3 'toowl --version'

For a live view of the frame loop, set TOOWL_PERF=1 — toowl logs a one-second summary of frames, skipped redraws, and render time:

TOOWL_PERF=1 RUST_LOG=toowl::perf=info toowl

A high skipped count usually means a redraw path is not latching; a high max_render_us points at GPU work rather than parsing.

CI gate

Every build runs the startup benchmark and fails if cold start regresses more than 10% against a pinned baseline, so the number at the top of this page is enforced rather than aspirational.