DrawingComparison
Sheet2 / 11
Rev0.3.66
Date08-2026
Scale1:1
MaterialC99

How rbterm compares to nine other terminals

Every claim on this sheet is a capability check or a measurement, and the trade-offs are written in both directions. 28 rows across five terminals, then a round-trip benchmark of 1000 samples per terminal on one machine.

macOS · Windows · Linux ≈19 MB single binary 0.018 ms round-trip MIT
SEC 01

Feature comparison

rbterm against the four terminals it gets compared to most often. Where a competitor is better, the row says so.

Capability matrix — rev 0.3.66 · a dash means not compared here; measured latencies are charted in SEC 02
Feature rbterm PuTTY iTerm2 Alacritty kitty
Cross-platform binary macOS / Linux / Win Windows only macOS only All three macOS / Linux
GPU-accelerated raylib / OpenGL GDI Metal (macOS) OpenGL OpenGL
Built-in SSH libssh (key + agent) Built-in Needs ssh CLI Needs ssh CLI Needs ssh CLI
SFTP upload / download Built-in modal Separate PSFTP No No No
SSH key manager Generate + install + delete PuTTYgen (separate) No No No
SSH port forwarding (in-app) -L / -R / -D SOCKS5 Manual -L/-R Via ssh CLI Via ssh CLI Via ssh CLI
Tabs Up to 16 No Unlimited No (use tmux) Unlimited
Split panes Vertical + horizontal No Yes No Yes
Themes baked in 252 palettes Manual RGB ~10 presets TOML config conf file
Fonts baked in 37 monospace fonts System fonts System fonts System fonts System fonts
Sixel images Native No Yes No No (kitty protocol)
Kitty image protocol Native No No No Native
Session recording GIF / WebP / MP4 / cast Log to file Replay (proprietary) No No
System-info HUD Per-pane overlay No No No No
OSC 8 hyperlinks Cmd+click No Yes Regex URLs Yes
OSC 133 prompt nav Jump + gutter badges No Yes No Yes
Scrollback search Live substring No Regex Regex (vi mode) Regex
Startup tab config Settings Launch tab No Profiles + arrangements No startup_session
Quake-style global hotkey Cmd+CapsLock No Hotkey window No No
Per-host cursor color App-wide + per-host Manual config Per-profile No No
Ligature shaping HarfBuzz + 7 fonts No Yes Yes Yes
Cinema pane effects 19 presets (CRT, VHS…) No No No No
Single binary, zero deps ≈19 MB ~5 MB ~180 MB .app ~8 MB Python runtime
Round-trip latency 0.018 ms not compared here not compared here not compared here not compared here
Throughput (real-app flood) 185 MB/s not compared here 17 MB/s 161 MB/s 116 MB/s
Idle CPU ~0.1% not compared here not compared here not compared here not compared here
Electron / web tech None None None None None
Language C99 C Obj-C Rust C + Python

Head to head, in detail: PuTTY · iTerm2 · Alacritty · kitty · WezTerm · Ghostty · Windows Terminal · Warp · MobaXterm

SEC 02

Measured, not marketing

Snappiness is easy to claim and hard to prove, so rbterm ships the proof — and the script that reproduces it in any terminal.

Echo round-trip

rbterm
0.018
ghostty
0.034
alacritty
0.057
Apple Terminal
0.075
kitty
3.470
iTerm2
21.288

Milliseconds, median of 1000 samples, lower is better. Logarithmic scale — the field spans three decades.

Bulk output

rbterm
185
alacritty
161
kitty
116
iTerm2
17

Megabytes per second, higher is better. Capture ~10 MB of a real full-screen animation and replay the identical bytes into each terminal.

0.018 ms median round-trip latency. On a tight loop of CSI 6n cursor-position queries — write the query, parse the reply, read the answer — rbterm clocks a 0.018 ms median round-trip. That is roughly 190× faster than kitty (3.470 ms) and about 1,200× faster than iTerm2 (21.288 ms) on the same machine.

And fastest at bulk output, too. rbterm ingests the replayed flood at 185 MB/s — ahead of Alacritty (161), ~1.6× kitty (116), and ~11× iTerm2 (17). Lowest latency and highest throughput.

It is not a cherry-picked demo. Run it yourself: tools/bench-here.sh auto-detects the host terminal and writes the numbers to a file you can diff against any other terminal. Combined with a ~0.1% idle CPU floor on macOS — even with SSH panes and the HUD active — rbterm stays out of your way whether it is working or waiting.

Method. tools/echo_bench.c writes an ANSI DSR query (CSI 6n), waits for the terminal's CSI r;c R reply and records the round-trip — parser plus PTY I/O, nothing else. 1000 samples per terminal, same machine, same session, August 2026. Tail figures: rbterm p99 0.045 ms / worst 0.079 ms; alacritty worst 7.470 ms; kitty worst 15.218 ms.

SEC 03

vs PuTTY

PuTTY is the terminal you learned on. It works, it's small, and it's been rock-solid since 1999. But it was designed for a world where you SSH into one host at a time and scp files separately.

  • No tabs, no panes. Every host is a separate window. rbterm gives you 16 tabs with vertical + horizontal splits, each with its own PTY and theme.
  • SSH + SFTP in one window. PuTTY needs a separate PSFTP program. rbterm has upload and download modals built into every SSH pane — pick a file, watch the progress toast.
  • Theming is manual. PuTTY makes you set 22 RGB values in a dialog. rbterm ships 252 themes — click one, it applies to the active tab instantly.
  • No images. Sixel, kitty graphics, inline images — PuTTY can't render any of them. rbterm handles both protocols natively.
  • Windows-only. If you switch between macOS and Linux, PuTTY isn't there. rbterm builds on all three from the same source.
PuTTY is great if all you need is a single SSH session. Once you want tabs, file transfers, and a modern feature set without installing three separate tools, rbterm replaces the whole stack.
SEC 04

vs iTerm2

iTerm2 is the gold standard on macOS. It's mature, polished, and endlessly configurable. If you live exclusively on a Mac, it's hard to beat. rbterm makes different trade-offs:

  • Cross-platform. iTerm2 is macOS-only. If you also work on Linux or Windows, rbterm is the same binary everywhere — same keybindings, same themes, same config.
  • Everything is baked in. iTerm2 needs you to install fonts, download color schemes, configure profiles. rbterm ships 252 themes and 37 fonts inside the binary — scp it to a bare server and it works.
  • Built-in SSH with SFTP. iTerm2 shells out to ssh. rbterm connects via libssh directly, with per-host theme/font/HUD overrides and integrated file transfers.
  • Tiny footprint. iTerm2 is a ~180 MB macOS app bundle. rbterm is a ≈19 MB self-contained binary.
  • Session recording to GIF/WebP/MP4. iTerm2 can replay sessions in its own format. rbterm records to standard formats you can share anywhere.
  • System-info HUD. Hostname, IP, CPU load, memory, disk — overlaid per-pane, including for SSH sessions (polled over the connection). iTerm2 has nothing equivalent built in.
iTerm2 wins on ecosystem depth (triggers, coprocesses, Applescript). rbterm wins on portability, self-containment, and SSH integration.
SEC 05

vs Alacritty

Alacritty's philosophy is "do one thing well" — be a fast GPU terminal and delegate everything else to tmux. That's a valid design. rbterm's philosophy is "one binary, batteries included."

  • Tabs, panes, search — no tmux required. Alacritty has no tabs and no splits — you need tmux or screen for those. rbterm has them built in, plus in-scrollback search.
  • Built-in SSH. Alacritty doesn't even know what SSH is. rbterm connects to hosts directly, manages saved hosts, and transfers files over SFTP.
  • Inline images. Alacritty deliberately doesn't support image protocols. rbterm renders sixel and kitty images natively.
  • 252 themes, 37 fonts, zero config. Alacritty requires a TOML config file and font installation. rbterm works out of the box with everything embedded.
  • Session recording. Alacritty can't record. rbterm captures to GIF, WebP, MP4, WebM, APNG, or asciicast.
  • Startup tab configuration. Alacritty opens one window. rbterm's Settings Launch tab lets you define which local and SSH tabs open automatically when you start.
Alacritty is for people who already have tmux muscle memory and want the thinnest possible terminal layer. rbterm is for people who want a single app that replaces terminal + multiplexer + file transfer + system monitor.
SEC 06

vs kitty

kitty is the closest competitor in feature set. It has tabs, splits, image rendering, and a scripting layer. The differences are in architecture and philosophy:

  • C99 vs C + Python. kitty's core is C, but its UI and extension system run on Python. rbterm is pure C99 — no runtime interpreter, no garbage collector, no Python dependency chain.
  • Built-in SSH with SFTP. kitty has kitten ssh for shell integration, but it still shells out to ssh. rbterm connects via libssh natively and has built-in upload/download modals.
  • Self-contained binary. kitty installs Python packages alongside the binary. rbterm is one ≈19 MB executable — scp it anywhere and run.
  • Both image protocols. kitty only supports its own image protocol. rbterm supports both sixel and the kitty protocol, so tools targeting either standard work.
  • 252 themes + 37 fonts embedded. kitty needs you to install themes via kitten themes and fonts via your OS. rbterm ships them all inside the binary.
  • System-info HUD. rbterm overlays hostname, IP, load, mem, disk per-pane — including over SSH. kitty has no equivalent.
  • Native recording. rbterm records panes to GIF/WebP/MP4 with built-in encoders. kitty doesn't record.
  • Windows support. kitty doesn't run on Windows. rbterm does (ConPTY backend).
kitty's Python scripting layer makes it deeply extensible if you invest the time. rbterm trades that extensibility for zero-dependency portability and a more integrated SSH workflow.
SEC 07

vs WezTerm

WezTerm is the heavyweight of the modern crop — Rust, wgpu rendering, a Lua config language, and built-in multiplexing that survives disconnects. If you want a programmable terminal and a multiplexer in one, it's excellent. rbterm aims somewhere different: a single binary you don't have to script.

  • Config: GUI vs Lua. WezTerm is configured by writing Lua. rbterm has a Settings modal and an ~/.config/rbterm/config.ini — no programming language to learn, no callbacks to wire up.
  • Built-in SSH UI, not just a CLI. WezTerm has SSH and multiplexing domains, but driving them is config-and-command work. rbterm gives you a connect form, a key manager, SFTP modals, port forwarding, and per-host overrides in the UI itself.
  • Cinema effects. rbterm ships 19 per-pane visual presets (CRT, VHS, and more). WezTerm focuses on faithful, fast rendering and leaves the eye-candy out.
  • Footprint. rbterm is a ≈19 MB single binary with everything embedded. WezTerm's install is considerably larger.
WezTerm wins on programmability and built-in multiplexing depth. rbterm wins on a smaller binary, a click-not-code config, and an SSH workflow that lives entirely in the GUI.
SEC 08

vs Ghostty

Ghostty is the trendy newcomer — a native, fast, single-binary terminal with great defaults and a strong focus on platform-native feel on macOS and Linux. It's genuinely good. The differences are about scope and reach:

  • Windows. Ghostty doesn't ship a Windows build. rbterm has a real ConPTY backend and runs as a single .exe on Windows 10 1809+.
  • Built-in SSH + SFTP. Ghostty is a terminal; SSH is whatever you run inside it. rbterm connects via libssh directly, with a key manager, file transfers, and tunneling.
  • Recording. rbterm records panes to GIF / WebP / MP4 / asciicast with built-in encoders. Ghostty leaves that to external tools.
  • System-info HUD. Per-pane hostname, IP, load, mem, disk — including over SSH. Ghostty has no equivalent.
Ghostty wins on native polish and a thriving community. rbterm differentiates on Windows support and the batteries-included SSH/SFTP/recording/HUD stack.
SEC 09

vs Windows Terminal

Windows Terminal is Microsoft's modern default — tabs, panes, GPU text rendering, and tight integration with PowerShell, WSL, and cmd. On Windows it's the obvious starting point. rbterm offers a leaner, more portable alternative:

  • One file, no Store. Windows Terminal is an MSIX app delivered through the Microsoft Store / App Installer. rbterm is a single ≈19 MB .exe you can drop on a machine and run — same binary concept as on macOS and Linux.
  • Built-in SSH. Windows Terminal launches whatever shell or ssh you point a profile at. rbterm has SSH, SFTP, a key manager, port forwarding, and per-host layouts built into the app.
  • Same everywhere. Windows Terminal is Windows-only. rbterm gives you the same tabs, themes, and keybindings on macOS and Linux too.
  • Images + recording + HUD. Sixel and kitty graphics, session recording, and a per-pane system-info overlay — all built in.
Windows Terminal wins on first-party WSL/PowerShell integration and being preinstalled. rbterm wins on a true single-binary build, cross-platform parity, and an SSH client you don't have to assemble from profiles.
SEC 10

vs Warp

Warp is the slick, AI-forward terminal — blocks, command suggestions, and cloud-backed features wrapped in a polished UI. If those workflows click for you, it's compelling. rbterm sits at the opposite end of the trust spectrum:

  • Open vs closed. Warp is closed-source. rbterm is MIT-licensed C99.
  • No account, no login. Warp gates features behind sign-in and cloud services. rbterm needs no account and works fully offline.
  • No telemetry. Warp's AI features send data to the cloud. rbterm sends nothing — no analytics; the only network call is the optional update-manifest check.
  • Cross-platform single binary. rbterm runs on macOS, Linux, and Windows from one ≈19 MB executable, with built-in SSH/SFTP and recording.
Warp wins if you want AI assistance and command blocks baked into the terminal. rbterm wins if you want an offline, auditable, no-account tool that respects your data.
SEC 11

vs MobaXterm

MobaXterm is the closest peer to rbterm's "SSH workstation" idea — tabbed SSH, an embedded SFTP browser, X11 forwarding, tunnels, and a session manager, all on Windows. If your whole life is remote Windows admin, it's a powerhouse. rbterm covers the same core, smaller and everywhere:

  • The shared ground. rbterm also gives you tunneling (-L / -R / -D SOCKS5), SFTP up/download, a key manager, and saved per-host sessions with layouts — the same workstation toolkit.
  • Cross-platform, not Windows-only. MobaXterm is a Windows application. rbterm is the same binary on macOS, Linux, and Windows.
  • Tiny, not bundled. MobaXterm ships a large bundle of integrated tools (Cygwin utilities, X server, plugins). rbterm is a ≈19 MB single binary with no installer sprawl.
MobaXterm wins on its built-in X11 server and the breadth of bundled Unix tools on Windows. rbterm wins on portability, a tiny footprint, and not being a Windows-only toolbox.
SEC 12

The rbterm pitch

One binary. Every platform. Batteries included.

rbterm is what you get when you stop asking "which combination of terminal + multiplexer + SSH client + file transfer tool + theme manager + font installer should I use?" and just ship all of it in ≈19 MB of C99. It won't replace a decade of tmux muscle memory overnight, and it doesn't try to be an extensible platform like kitty. What it does is give you tabs, splits, a 1,000,000-line scrollback per pane, a full SSH client with port forwarding (-L / -R / -D SOCKS5), SFTP, images, recording, 252 themes, 37 fonts, and a system-info HUD in a single executable you can scp to any machine and run.

And it's fast where it counts: 0.018 ms median round-trip latency — roughly 190× quicker than kitty and about 1,200× quicker than iTerm2 on the same CSI 6n benchmark — while idling at about 0.1% CPU on macOS even with SSH panes and the HUD running. Measured, reproducible, MIT-licensed, offline, and with no account or telemetry.

An rbterm window running a tabbed session, with a coloured shell prompt and command output filling the pane
VIEW A · rbterm, tabbed session
Next step

Try it against whatever you use now

The build is one file for macOS, Windows and Linux, MIT licensed, ≈19 MB. If you run agents in your terminal, the Agents sheet shows the per-tab status badges and the rbterm @ remote control they are built on.