Terminal GPU Rendering (Cavrn)
Updated July 4, 2026
crystl’s default terminal renderer is Cavrn, a GPU-accelerated surface that draws the terminal on the GPU with Metal. Cavrn is the default for every new shard, so heavy agent output — build logs, test runs, long diffs — scrolls smoothly without pinning the CPU on paint work.
xterm.js stays available as a fallback engine. If you prefer it, switch the terminal engine to xterm in Settings; xterm can render with its standard canvas renderer or with the WebGL GPU renderer enabled.
How it works
With GPU rendering enabled, crystl sends terminal cell and glyph-atlas data through the renderer’s GPU pipeline instead of relying on CPU drawing for every frame. The terminal still has to parse PTY output and maintain its scrollback buffer on the CPU, so GPU rendering is not a magic speed switch, but it can reduce paint cost when the screen is changing quickly.
Renderer support:
| Terminal engine | Rendering |
|---|---|
| Cavrn (default) | GPU, drawn with Metal |
| xterm.js (fallback) | WebGL (GPU) or Canvas (CPU) |
Fonts
A terminal font picker in Settings lists your installed monospaced fonts — including Nerd Fonts installed through Font Book — so agent TUIs that lean on powerline or icon glyphs render the way they were designed to.
Table copy
Cavrn recognizes tables in terminal output — both box-drawing tables that TUIs draw and markdown tables agents print. Hovering a detected table shows a ⋯ button just to its right; click it to copy the table as raw text, CSV, or JSON, so tabular agent output goes straight into a spreadsheet or script instead of being drag-selected across wrapped lines.
What you’ll notice
- Smoother scrolling: Large command outputs and log streams scroll without stutter
- Lower paint CPU: The CPU spends less time drawing text, so your machine can stay more responsive during heavy terminal output
- Faster rendering: Screen updates are snappier, especially when Claude produces long outputs or when tailing verbose logs
Changing rendering
To change the terminal engine:
- Open Settings > General (
Cmd + ,) - Find Terminal Rendering
- Cavrn is the default; pick xterm.js if you want the fallback
New rendering settings apply to new shards. Existing shards keep the terminal engine they were created with, so close and reopen a shard if you want it to pick up the new renderer.
When to disable
Most users should keep GPU rendering on. You might want to disable it if:
- You’re running on a Mac with limited GPU resources and notice graphical glitches
- You’re troubleshooting a display issue and want to rule out the GPU pipeline
- You’re using a custom font or rendering setup and want to compare CPU vs GPU behavior
Availability
Terminal GPU rendering options are available in both Free and Guild tiers.