Metalterm
features blocks themes speed faq
beta Download
metal 3 · macOS 14+ · apple silicon

The terminal your
GPU draws.

Every frame goes through Metal 3. A million-line log scrolls at 120 fps, every command is its own block, and search and the palette are one keystroke away.

Download for macOS
2.2 MB · free · no account · apple silicon
metalterm ⌘⇧P
zsh
vite dev
ssh edge-01
cargo build --release1.24s
Compiling mt-gpu v0.1.0
Compiling mt-shell v0.1.0
Finished `release` profile [optimized] in 1.24s
git status --short0.02s
 M crates/mt-gpu/shaders/cell.metal
A  crates/mt-atlas/src/atlas.rs
?? bench/scroll_200mb.log
du -sh bench/*.log | sort -h0.08s
4.0K  bench/atlas_evict.log
1.8M  bench/glyph_upload.log
203M  bench/scroll_200mb.log
~/src/metaltermmain+2~1?3
THEME
14 in the app
120fpssteady, zero dropped frames, scrolling a full buffer
0.22msof GPU time per frame — 3% of the budget
2.2MBone app, zero dependencies
14themesplus your own, in one toml file
FEATURES

Everything you'd otherwise install plugins for

Nothing to configure on day one. All of it is on the moment you open the app.

❯❯ Command blocks Each command and its output is one tracked region, read from the shell's own OSC 133 markers — with how long it ran and a red gutter mark when it failed.
⌘⇧P Command palette Every setting, theme, tab and recent command behind one fuzzy field. It opens in under a frame and remembers what you actually use.
⌘F Find in scrollback Literal or regex, across 10 000 lines, highlighted on the GPU as you type. No lag on the first keystroke, none on the last.
A caret with physics Sub-cell interpolation, three shapes and nine named motion styles — Snap, Spring, Arc, Smear, Phosphor — or switch it all off in one toggle.
⌥⇥ Tabs, splits, sessions Every tab and split keeps its own directory, scrollback and shell. Windows reopen right where you left them on screen.
One plain-text config Everything the Settings window writes lives in ~/.config/metalterm. Commit it, share it, or never open it at all.
BLOCKS

Scrollback stops being a wall of text

Metalterm reads the shell's own OSC 133 markers, so it knows where a command starts, where its output ends and how long it took. A flat buffer gets structure the moment output starts landing.

Command, output and exit status tracked as one region
Every block carries the time it actually took
Failed blocks keep a red mark in the gutter until you clear them
Works with zsh, bash and fish — and never edits a line of your rc files
3 blocks · 1 failed
pnpm test -- --run6.10s
Test Files 18 passed (18)
Tests 204 passed (204)
docker compose up -d18.4s
Container edge-db Started
Container edge-api Started
./scripts/deploy.sh edge-012.03s
ssh: connect to host edge-01 port 22: Operation timed out
exit 255
THEMES

Eight colour roles. Fourteen ways to spend them.

A theme is a background, a foreground, a dim, an accent and four states. Nothing else — which is why every theme looks deliberate instead of decorated.

Metaltermactive
warm graphite, amber prompt
Palenightactive
muted indigo, pastel
Graphiteactive
neutral warm grey
Abyssactive
cool, cyan on ink
Cappuccinoactive
mocha base, soft pastels
Click a theme — the terminal above and the block preview follow it. In the app: ⌘⇧P → Theme · …, the inspector list, or theme abyss.
SPEED

Two passes. 0.22 ms. Every frame.

Text is one Metal pass, ambient light is the other. The glyph atlas stays resident on the GPU, so a 200 MB log costs the same per frame as an empty prompt. When nothing changes, the renderer sends no frames at all — not fewer, none — and gives the battery back.

GPU time0.22 ms
CPU time0.13 ms
frame budget at 120 Hz8.33 ms
two 30 s runs, M3 Max · 118×34 · continuous scroll of a filled scrollback · 119.7 Hz steady, 0 dropped frames

Open it once and you won't go back

Free while in beta. Your shell and your dotfiles stay exactly as they are — Metalterm never edits a line of them.

Download Metalterm
Metalterm.dmg · 2.2 MBmacOS 14 Sonoma or laterapple siliconnotarised by apple
FAQ

Short answers

Do I have to change my shell?No. zsh, bash and fish all work as they are, and blocks need nothing added to your rc files — the integration loads by a route each shell already offers.
Is it really free?Free through the beta, with no account and no telemetry. If a paid tier ever appears, everything on this page stays in the free one.
Windows or Linux?Not yet. The renderer is Metal-only today; a Vulkan backend is the next platform step after 1.0.
Can I turn the motion off?One toggle in Settings → Motion, and every animation falls back to a 90 ms fade. It also follows the system Reduce Motion setting.
What about my old terminal's settings?Nothing is imported — everyone starts on Metalterm's defaults. What you change lands in one readable toml you can edit by hand.
Metalterm beta · built in Metal 3
features faq download support@metalterm.dev