Every revision, in the order it shipped
This is the revision record for rbterm — what changed in each release, written for the person using it rather than the person who wrote it. 37 entries, from the first unversioned builds through v0.3.66.
Current revision
rbterm auto-updates in place — Settings → Check for updates — or take the current build from the download page.
v0.3.66
Latest Aug 2026Closing a split no longer locks up the window on Windows — and the Windows build is now tested as hard as the Mac one
- Closing a pane could freeze everything on Windows. Shutting a pane down meant waiting for Windows to hand back the last of its output — but rbterm had already stopped listening for it, so the wait never ended. One click could lock the whole window for two minutes or more, with nothing to do but force-quit. rbterm now keeps reading until Windows has finished, and does the rest of the cleanup in the background, so the window stays responsive either way.
- Accented and non-Latin text now survives scripting on Windows. Sending something like
café_naïve_Ωto a pane withrbterm @arrived mangled — the Ω quietly became a plainOand the é a question mark. Both directions are fixed, so scripts that pass names, paths or messages in any language work as written. - Panes could open empty and vanish when rbterm was started with its output captured. Launching rbterm from a wrapper script, a service or a scheduled task that redirected its output meant the pane’s shell attached to that redirect instead of to the pane itself — so the pane came up blank and the window closed straight away. Starting rbterm normally from the desktop was never affected, which is why this went unnoticed for so long.
- The Windows build now runs the same test suite as macOS and Linux. 205 checks against a real Windows Server, on every change — which is how both problems above were found. Checks that Windows genuinely cannot answer are skipped with the reason printed, rather than quietly counted as passes.
v0.3.65
Aug 2026Scripting works on Windows now — and the test suite runs there too
- The
rbterm @scripting API works on Windows. It used to print “not supported on Windows yet” and stop. The same commands, the same syntax, the same scripts now work on all three platforms — so anything you automate on a Mac runs on a Windows box unchanged. That includes the agent workflow: status badges,display-image, and the wait-loops that watch a herd of them. - Windows can act on what is running in a pane. Stopping a runaway process from a script works, and every tab now reports the real process id of its shell, so you can target one precisely instead of guessing.
- A password on remote control now genuinely protects it on Windows. Encrypted control needs a library the Windows build does not ship, so rather than quietly opening an unprotected connection, rbterm refuses to enable remote control at all and tells you why.
- Two freezes fixed, on every platform. A script that asked for a lot of text and then stopped reading could hang the whole window until you force-quit it; and quitting while remote control was on could leave rbterm stuck in the background with no window. Both are gone.
- The test suite runs on Windows. All 246 checks, including new ones covering Windows-only behaviour — the ConPTY backend, tab titles, process ids, and fonts loading from the executable’s own resources.
0.3 series
Point releases from v0.3.64 back to v0.3.42, newest first.
v0.3.64
Aug 2026The tab bar now scrolls — open as many tabs as you like without losing the buttons
- No more buried buttons — with enough tabs open, the tab strip used to grow underneath the settings / record / screenshot / split / help buttons in the top-right corner, hiding them while stray clicks still landed on them. Tabs now stay in their own lane, and the strip scrolls sideways when it fills up.
- Scroll it your way — swipe or mouse-wheel over the tab bar, or click the
‹›arrows that appear at the edges when tabs are hidden off-screen. - The active tab is always visible — switching tabs (click,
Cmd+1…9,Cmd+[/], opening a new tab) automatically scrolls it into view, so the agent-status badges on the tab you're working with are never hidden.
v0.3.63
Aug 2026Built for AI agents: show images in the terminal, and tab badges that tell you when an agent needs you
- Agents can show you images — a new
rbterm @ display-imagecommand pops any image as a click-to-dismiss overlay in a pane. An AI agent (Claude Code) working in a tab can display the screenshot, chart, or Playwright capture it just produced right where it's working — no more opening a file manager to see what your agent made. See the new Claude page. - Images land in the right tab — every pane exports a stable
RBTERM_PANE_ID, and commands sent from inside a pane target that pane automatically. Run many agents in many tabs; each one's images appear only in its own. This survives quitting and reopening rbterm — reattached sessions keep their ids. - Agent status badges in the tab bar — a spinner while a command runs, a green/red dot when it finishes with success/failure, and an attention badge when a program rings the bell or posts a notification (which is how Claude Code says “I'm waiting on you”). Agents and scripts can also set a status explicitly and wait on it (
set-user-vars status=…,match-count -m 'state:done'). - Smarter
rbterm @client — if the socket in a shell's environment points at a previous rbterm instance, the client now finds the live one automatically.
v0.3.62
Jul 2026Fixes the “everything underlined” glitch with Claude Code and other keyboard-protocol-aware apps
- No more surprise underlines — apps that configure xterm’s modifyOtherKeys (Claude Code re-asserts it on every keypress) could leave the entire screen underlined and dimmed after a full redraw; those control sequences were being misread as text styling and are now handled correctly.
- Steadier redraws — kitty keyboard-protocol sequences no longer trigger a stray cursor jump mid-redraw.
- More self-tests — three new checks pin the fix down; the self-test suite now runs 240 checks.
v0.3.61
Jun 2026More faithful VT/ANSI handling, hardened by a much bigger self-test suite
- Stronger terminal correctness — the self-test suite grew from ~40 to 235 checks that hammer the VT parser, surfacing and fixing a batch of edge cases real terminal apps rely on.
- Cursor & editing fixes — cursor moves with omitted parameters (e.g.
CSI ;5H) now land in the right place, insert mode shifts text correctly, and tab stops are honoured — forward/back tab and custom stops all work. - Modes & resets — origin mode, soft reset, the screen-alignment test, and the legacy alternate-screen modes are now supported, and
clearwipes scrollback as expected. - Robustness — the saved-cursor pair now restores the active character set, and malformed/overlong UTF-8 is rejected cleanly instead of mis-rendering.
v0.3.60
Jun 2026Scripting API, headless mode, and a terminal that tests itself
- Remote control / scripting API — drive a running rbterm from the shell with
rbterm @ …: open tabs, type into panes, read the screen back, recolor, resize, screenshot, and record video clips of a session. Works over a private local socket or an in-band escape sequence (even over SSH), with optional end-to-end encryption. See the API and Claude pages. - Headless mode — run with a hidden window so automation and CI can screenshot or record without anything appearing on screen or stealing focus.
- CLI-tool demo tooling — capture a screenshot or a video (gif/webp/mp4) of any command-line tool in one command, ready for a README.
- Self-hosted test framework — rbterm now tests itself through its own API, pixel-verifying what it renders. See the Testing page.
- Rendering fixes: non-ASCII text (emoji, accents, CJK) sent over the control channel, and X11
rgb:colour specifications now render at full brightness.
v0.3.59
Jun 2026Faster at swallowing plain-text floods
- A new batched write path makes dumping large amounts of plain text —
cata big file,tail -fa log, watch a noisy build — about 18% faster to ingest, with byte-for-byte identical output.
v0.3.58
Jun 2026New windows show their prompt right away
- Opening a second window (⌘N) or a new tab inside one no longer shows a blank pane until you press a key — the shell prompt now appears immediately.
v0.3.57
Jun 2026Extra windows actually show their contents (for real this time)
- Opening a second window with ⌘N on macOS now renders the full window — tab bar, shell, output, and the system HUD — at the correct size. (The previous build only painted a corner of the window, which usually looked blank.)
v0.3.56
Jun 2026Extra windows actually show their contents
- Opening a second window with ⌘N used to give you an empty black window on macOS. Extra windows now render their tab, shell, and output correctly — at the right size and sharpness.
v0.3.55
Jun 2026Copy a wrapped path, paste it whole
- Selecting a long path or command that wraps across two lines now copies as a single unbroken string — no more stray line break landing in the middle when you paste it back.
v0.3.54
Jun 2026Logs that can't fill your disk
- Session logging now rotates each log file at a size cap — default 50 MB, keeping a few older generations — so an enabled log can't quietly grow to gigabytes and fill your disk. Set the cap under Settings → Logging → Max log size.
- Logging stays off by default: it's opt-in and records raw terminal output, which grows fast.
- Double-clicking inside a URL now selects just the URL, not the surrounding words.
v0.3.53
Jun 2026Multiple windows
- Closing a window now returns focus to the most recently used window, instead of whatever the OS picks next.
- Fixed: Cmd+W in a freshly opened window closed the original window's tab instead of the new one's.
- Fixed: opening a third (or further) window could silently fail.
v0.3.52
Jun 2026- Fixed a crash when closing a window's last tab with the × button — it could take the whole app down, including other windows.
v0.3.51
Jun 2026- Window size & position persist across auto-updates — an update no longer reopens the window on a different monitor or at a different size.
- A clean Cmd+Q now closes your shells and shuts down the background session helper, instead of leaving it running. (Crashes and auto-updates still preserve sessions for recovery.)
- More reliable drag-to-install DMG layout — rbterm on the left, an arrow, the Applications folder on the right.
v0.3.50
Jun 2026- Inline kitty-protocol graphics now render at pixel resolution — graphics demos and image tools show real pixels instead of an ASCII fallback. rbterm reports its pixel geometry (cell size) to programs so they can choose pixel mode.
- Fixed a freeze / runaway memory use under heavy continuous graphics output (millions of queued events no longer pile up).
- Kitty image scaling to a cell area (
c=/r=) and image deletion.
v0.3.49
Jun 2026- DMG installer icon-position fixes.
- The hold-Cmd+Q-to-quit countdown overlay now shows on every window, not just the first.
v0.3.48
Jun 2026- Standard drag-to-Applications DMG installer.
v0.3.47
Jun 2026- Multiple windows in one process: Cmd+N opens a new window (a single Dock icon), Cmd+` cycles between them.
- Right-click or scroll-wheel on the tab bar cycles the active tab.
v0.3.46
Jun 2026- Kitty graphics: raw RGB / RGBA pixel formats and the graphics-capability probe.
v0.3.45
2026- Fixed a stray green “?” that could paint over bold glyphs drawn from a fallback font.
v0.3.44
2026- New local shells now open in your home directory instead of “/”.
- Rebuilt against raylib 6.0.
v0.3.43
2026- Text selection now stays glued to its content when the terminal scrolls underneath it.
v0.3.42
2026- Added synchronized-update (DECSET 2026) support so full-screen apps repaint without tearing.
Consolidated revisions
Earlier point releases, grouped by the run of versions they shipped across.
v0.3.38–.41
2026- Manually-renamed tabs keep their names across background-helper restarts.
- Left/Right arrow keys cycle through the tab strip.
- Fixed reattached local panes showing “?” in the system-info HUD.
v0.3.34–.37
2026- Multi-pane split layouts are restored across restarts via session reattach.
- Optional local-scroll mode lets the terminal own the mouse wheel even inside mouse-aware apps like tmux.
- Double-clicking a bracketed word no longer includes the wrapping brackets.
- Custom tab titles persist, and SSH tabs no longer show local machine stats in the HUD.
v0.3.31–.33
2026- Fixed the system-info HUD showing the local machine instead of the remote host on session-routed SSH tabs.
- Performance: faster wakeups on SSH output, link-time optimization in release builds, and quicker glyph lookup.
- Fixed far-tab reordering to rotate the strip instead of swapping.
v0.3.28–.30
2026- Added a complete user manual (markdown + PDF) and a manual landing page.
- Async per-pane SSH connect for splits and saved layouts — no more multi-second freeze per pane.
- Local drag-select now works even while a mouse-aware app has focus; the settings tab bar wraps to two rows past eight tabs.
- Idle CPU floor dropped to roughly 0.1% when unfocused.
- Fixes: pasting no longer drops bytes when the input queue fills; closing the active tab returns you where you came from; tab order survives relaunch.
v0.3.23–.27
2026- Added an iTerm2-style green progress stripe shown while a command runs.
- Truecolor is now preserved in scrollback (previously lost when scrolling in tmux).
- The window titlebar now follows the active tab/pane when you switch.
v0.3.20–.22
2026- Added a macOS menu-bar status item and debounced the Quake toggle.
- Recording gained a “Reset effects” button.
- Native MP4 recording on Windows via Media Foundation (dropped the bundled ffmpeg).
- QR-code SSH pairing: scan via webcam on the Mac, render on your phone.
- Available via a Homebrew tap, plus a major idle-CPU reduction using external GLFW.
v0.3.15–.19
2026- Native MP4, APNG, and WebM recording encoders on macOS — no ffmpeg dependency.
- Paints throttle to 2 Hz when the window is unfocused to save power.
- Fixed htop rendering at the wrong width and made the Game Boy effect preset readable.
v0.3.5–.14
2026- Many session-helper reliability fixes: faster Cmd+T, no duplicate helpers, PID-file locking to stop orphans, and helper shells cleaned up on quit.
- Set TCP_NODELAY on SSH sessions for snappier remote typing.
- Fixed multi-second freezes on Cmd+A select-all and during HUD probes.
- Auto-update relaunch no longer doubles your tabs.
v0.3.0–.4
2026- Introduced the background session helper that keeps local shells (and SSH sessions, HUD, SFTP, port forwards) alive across app restarts and updates.
- Crash banner and idle-exit polish for the helper.
v0.2.6–.9
2026- Session restore on update relaunch — your tabs come back after auto-updating.
- Cmd+W now dismisses any open modal.
- Quake-mode windows re-show on app activation, with the HUD drag clamped strictly inside the terminal.
v0.2.0–.5
2026- Added the in-app update channel: signed manifest, an “Updates” settings tab, and one-click auto-install on macOS (with optional background install and relaunch hint).
- The system-info HUD became draggable, resizable, and freely positionable without bleeding into selection.
First builds
Everything before the first numbered release, grouped by milestone rather than by version.
v0.1.x
2026 · first buildsThe early, unversioned era — from the first commit through the first numbered release. Grouped by milestone.
Foundation & core terminal
- Initial raylib-rendered terminal emulator in pure C, with a VT/ANSI parser, glyph atlas, and Core Text colour-emoji and font-substitution on macOS.
- Tabs, scrollback with reflow on resize, OSC colour-palette support, and current-working-directory tab labels.
- Cross-platform PTYs: macOS/Linux via
forkpty, Windows via ConPTY, plus a WebAssembly demo build.
Graphics & display
- Sixel and kitty inline-graphics protocols, DEC Special Graphics box-drawing, mouse reporting, focus events, OSC 10/11/12, OSC 52 clipboard, bracketed paste, and synchronized updates.
- An underline menagerie (curly / dotted / dashed), DECSCUSR cursor shapes, and OSC 9 desktop notifications.
Panes, selection & navigation
- Split panes (vertical/horizontal) growing into a full recursive split tree, with pane maximize (Cmd+Z), directional focus, and broadcast input to every pane.
- Search-in-scrollback (Cmd+F) with live highlighting, plus caret and shift-click selection.
- Smarter word/line selection that follows auto-wrap across rows, clickable URLs with hover underline, and a background-tab activity indicator.
Shell integration
- OSC 8 hyperlinks, OSC 7 cwd inheritance for new tabs, and OSC 133 prompt marks with gutter badges, jump-to-prompt, and select-output.
SSH
- Embedded libssh client with a connection form (host/port/user/key), password and per-identity/agent auth, a saved-hosts sidebar from
~/.ssh/config, and trust-on-first-use host keys. - SFTP upload & download (including recursive directories) with progress toasts, per-host init dir/command, per-host tab accent colour and HUD config, and a native SSH key manager (generate / install / delete keys in-app).
- Local / remote / dynamic SOCKS port forwards (-L / -R / -D), per-host saved split layouts replayed on connect, async parallel connects with placeholder loading tabs, and a dedicated SSH reader thread.
Appearance & fonts
- Embedded themes with Dark/Light filtering and live preview, and 37 bundled monospace fonts (including ligature-capable faces) with a live-preview picker.
- Ligature shaping via HarfBuzz, letter-spacing and glyph-centering controls, a supersampled atlas for crisper text, and a per-host / app-wide cursor colour setting.
Recording & effects
- Per-pane session recording exportable to cast / txt / gif / mp4 / webm / apng / webp.
- 20 cinema / movie / hardware effect presets and active-pane screenshot (Cmd+Shift+S).
System-info HUD
- Per-pane overlay showing host, IP, load, memory, disk, and a CPU sparkline, with per-field colour/size controls and remote stats gathered over SSH.
Settings & startup
- Tabbed settings modal with persistent defaults (Save as Default), font and theme pickers, session logging, key-repeat sliders, and a help modal.
- Settings → Launch to choose startup tabs (local / SSH), and Settings → Window startup modes (Small / Medium / Large / Fill / Borderless / Fullscreen).
- macOS Quake-style global hide/show hotkey (Cmd+CapsLock) and hold-Cmd+Q to quit.
Performance & distribution
- Reader threads for local PTYs, a DSR fast-path answering cursor queries in microseconds, and idle-frame render skipping that drops idle CPU toward ~0%.
- GitHub Actions CI building Linux and Windows binaries (Windows embeds fonts and ffmpeg), and a signed/notarized macOS
.appbundling its dependencies.
Get the current build
v0.3.64 for macOS, Windows and Linux — one self-contained binary, roughly 19 MB.
Already running rbterm? It updates itself
Open Settings → Check for updates and rbterm installs the new revision in place, keeping your window size, position and open sessions. If you would rather take the file yourself, every artifact and its sha256 checksum is on the download sheet.