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
| Metric | Target |
|---|---|
| Cold start (first frame) | <80ms on Apple Silicon |
| Plugin cost at launch | 0ms 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_familyTTF 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.