DrawingRevisions
Sheet11 / 12
Rev0.3.94
Date10-2026
Scale1:1
MaterialC99

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. 64 entries, from the first unversioned builds through v0.3.94.

Rev 0.3.94 · Oct 2026 64 revision entries Updates in place MIT
SEC 01

Current revision

rbterm auto-updates in place — Settings → Check for updates — or take the current build from the download page.

v0.3.94

Latest Oct 2026

Background windows stay up to date

  • A background rbterm window no longer misses its last update. While another app is in front, rbterm slows its repainting to save CPU. A change that landed just after a repaint (the final lines of a build, a prompt, an inline image) could stay off-screen until you switched back or something else happened in the window. It now shows up within half a second.
  • This release is for macOS and Linux. The Windows download stays on 0.3.90.

v0.3.93

Oct 2026

Claude Code renders inline by default

  • Select a whole Claude reply, however long. Settings → Claude → Alternate screen is now on by default, so Claude Code prints into rbterm's normal scrollback instead of taking over the screen. Drag-select past the top of the pane scrolls and keeps selecting, and Cmd+F search covers the session. Before, a reply longer than one page couldn't be selected in full.
  • If you saved your settings before, your saved choice still applies: turn it on in Settings → Claude and press Save as Default. It takes effect in tabs opened afterwards.
  • This release is for macOS and Linux. The Windows download stays on 0.3.90.

v0.3.92

Oct 2026

HUD + Settings polish

  • CPU in the HUD is fully adjustable. Settings → HUD now has a CPU row (the cpu 31% line) and a separate CPU graph row, each with Visible, colour and size like Host, IP, Load, Memory and Disk. The graph keeps its green-to-red load colouring by default, or takes any palette colour.
  • HUD settings now survive a restart. Per-field visibility, colour and size are saved to your config; before, they reset on every launch.
  • Save & Close button in Settings: saves and closes in one click. The footer buttons sit higher so they no longer cover the key hints.
  • Tabs no longer cover the RC ON, REC or BROADCAST pills when many tabs are open.
  • This release is for macOS and Linux. The Windows download stays on 0.3.90.

v0.3.91

Oct 2026

Hardening

  • Two robustness fixes from the latest full static-analysis pass: safer index arithmetic when the font atlas is prepared, and an extra guard in the screen-scrolling code. Neither affected normal use; the scan is clean again.
  • This release is for macOS and Linux. The Windows download stays on 0.3.90.

v0.3.90

Oct 2026

Click anywhere in the command

  • Double-clicking a space inside a command now selects the command. In ! abc 123, the gaps between the words count too, so you can double-click anywhere in it. A space in ordinary text still selects nothing.
  • Windows catches up. This release ships for Windows as well, bringing everything since 0.3.85 to Windows users: double-click selection of Claude Code and Codex commands (including wrapped ones and code lines), right-click to run a selection in a new tab after a confirm, and the RC ON tooltip.

v0.3.89

Oct 2026

Command selection inside tmux

  • Double-click now grabs whole Claude Code commands inside tmux too. Under tmux, Claude Code switches to 256 colours and colours code one word at a time, so double-clicking inline code like G10 L20 P0 Z0.1 used to select a single word. rbterm now recognises that form as well and selects the whole command or code line.
  • This release is for macOS and Linux. The Windows download stays on 0.3.85.

v0.3.88

Oct 2026

Whole code lines from Claude

  • Double-click a line in one of Claude’s code blocks to select all of it. When Claude Code shows code on its own line (like G10 L20 P0 Z0.1), double-clicking any part of it now selects the whole line, not one word. Each line of a block is still selected on its own, and other coloured output (logs, diffs) keeps the usual word selection.
  • This release is for macOS and Linux. The Windows download stays on 0.3.85.

v0.3.87

Oct 2026

Select it, then run it

  • Inline code selects as one piece. Double-click any word of inline code in a Claude Code or Codex reply — like git status --short — and rbterm selects the whole snippet, even when the agent wrapped it onto the next line. It copies back as one line. Plain text, one-colour log lines, coloured file names and syntax-highlighted code blocks keep the usual word selection. See it in action.
  • Right-click to run in a new tab. Right-click a selection and rbterm asks Run in a new tab?, showing the exact command. Confirm and it opens a tab in the same folder and runs it there; or copy it, or cancel. Nothing runs without that confirmation, and Claude’s ! prefix is dropped for you.
  • This release is for macOS and Linux. The Windows download stays on 0.3.85.

v0.3.86

Oct 2026

A hint on the RC ON badge

  • RC ON now explains itself on hover. Like the other buttons at the top right, the amber RC ON badge shows a tooltip when you point at it: remote control is on, and clicking the badge tells you more and lets you turn it off.
  • This release is for macOS and Linux. The Windows download stays on 0.3.85; Windows builds now ship every tenth release.

v0.3.85

Oct 2026

Grab Claude’s commands in one click

  • Double-click a Claude Code command to select all of it. When Claude Code suggests a command for you to run (the coloured ! cmd text), double-clicking any word of it — the !, the command, or any argument — now selects the whole command instead of one word.
  • Long commands come out in one piece. Claude Code splits a long command over several lines on screen. rbterm now selects every line of it, and copies it back as a single line, so pasting it never sends a newline that would run half the command.
  • Separate lines in a code block stay separate, and ordinary text keeps the usual smart word selection.

v0.3.84

Oct 2026

Know when remote control is on

  • Click RC ON to learn what it means. The amber RC ON badge in the tab bar now opens a short explanation: what remote control does, why it matters while it’s on, and how to switch it off. A Turn off button stops it immediately, and Open Settings takes you to Window → Scripting to keep it off at launch. The same window is available as the remote_control_info shortcut action.
  • New test hook for selection. rbterm @ send-click runs the real double- and triple-click selection at a cell and returns the selected text, without touching your clipboard.

v0.3.83

Oct 2026

Security hardening

  • Remote control switches on and off instantly. The Settings → Window → Scripting toggle now takes effect at once — turning it off closes the socket and stops accepting in-pane commands without a restart. An amber RC ON badge in the tab bar shows while it’s live, and toggle_remote_control can be bound to a key.
  • Safer links. Cmd+click only opens http, https and mailto links. A link’s visible text can differ from where it points, so output from a remote host could otherwise have aimed it at a local app. Bare www. addresses open as https.
  • No shell for helper programs. The updater, link opener, log editor and SSH key fingerprints now run programs directly instead of through a shell command line, so an unusual file name can’t be misread as a command.
  • Private temp files. The remote-control socket, recording logs and previews live in a per-user private directory instead of the shared /tmp, and rbterm @ only connects to sockets you own.
  • Stability fixes found by static analysis: out-of-memory handling, a few missing bounds checks, and helper processes that were left behind as zombies.

v0.3.82

Oct 2026

Make every shortcut your own

  • Remappable keybindings. Every rbterm shortcut now lives in one table you can change. Put your own mappings in ~/.config/rbterm/keybindings.conf using kitty’s syntax — map, unmap, clear_all_shortcuts — and the file reloads as soon as you save it. Settings → Shortcuts shows the live table, lets you create and edit the file, and points out any mistakes in it.
  • Leader sequences. Chain keys tmux-style with > (for example a prefix key, then a letter). A hint in the corner of the pane shows when a sequence is waiting for its next key.
  • 49 actions to bind, including sending text, jumping to tab N and running any rbterm @ remote-control command. A shortcut no longer leaks its key into the shell (on Linux, Ctrl+W used to close the tab and send ^W).
  • Cmd+T fix. On macOS, opening a tab could occasionally also send a stray Ctrl+T into the new shell, which printed a load: … cmd: zsh … running status line. Cmd shortcuts now never send Ctrl characters.

v0.3.81

Oct 2026

Select all means all

  • Cmd+A selects everything. Select all used to cover only the lines visible on screen. Now, like iTerm2, it selects the whole scrollback plus the screen — run find ., press Cmd+A, Cmd+C, and every line is on your clipboard, wherever you’re scrolled. Trailing blank lines are left out. In full-screen programs like vim or less it still selects what’s on screen.

v0.3.80

Oct 2026

Easier to diagnose update problems

  • Update snapshot for troubleshooting. Each update now keeps a copy of the tab layout rbterm saved at the moment it restarted (~/Library/Caches/rbterm/tab-order.at-update), so if tabs ever come back wrong after an update, it’s possible to see exactly what was saved.
  • Behind the scenes: new tooling to test the whole update-and-restore path with a local build, so changes to how rbterm keeps your sessions across updates can be checked without shipping a release first.

v0.3.79

Oct 2026

Updates land you back on the tab you were using

  • The selected tab survives an update. After Restart and update, rbterm used to always select the first tab. It now re-selects the tab you had open, along with your shells, splits and the focused pane in each tab.

v0.3.78

Oct 2026

Restored tabs keep surviving updates

  • Tabs rebuilt from a layout survive the next update too. When rbterm had to rebuild your tabs from their saved layout, or when you opened a saved session from Settings → Sessions, those panes ran outside rbterm’s background session service — so the next update came back with fresh shells again. They now run in the service like every other pane, and carry over like everything else.

v0.3.77

Oct 2026

Updates bring back your actual shells, not just the layout

  • Your shells really survive an update. After Restart and update, rbterm could bring back your tabs and splits but with fresh, empty shells — anything you had typed or running was gone. This happened when rbterm’s background session service had built up a long list of old, finished sessions: rbterm only looked at the first sixteen and missed yours. It now reads the whole list, so the shells you left are the ones you come back to.

v0.3.76

Oct 2026

Sharper, brighter text on Retina Macs

  • Retina rendering. On macOS, rbterm used to draw its window at half resolution and let the system stretch it to fit a Retina screen, which made text look soft and a little grey next to other terminals. It now draws at your display’s full resolution, so every letter is crisp and solid. If anything ever renders at the wrong size, launching with RBTERM_NO_HIDPI=1 goes back to the old drawing.
  • Window-size check fixed. The launch-time check added in 0.3.74 could measure the wrong window — most visibly in headless mode, where it shrank rbterm to a tiny size. It now always measures rbterm’s own window, and keeps quietly checking for the whole session so a display change can’t leave text the wrong size.

v0.3.75

Oct 2026

Tidier dialogs

  • No more overlapping text in the SSH dialog’s footer, the Settings → Tmux toggles and the Settings → Sessions caption. (Shipped to the macOS in-app updater only; 0.3.94 includes it everywhere.)

v0.3.74

Oct 2026

Updates keep your splits, and tell you when they can’t install

  • Split panes survive an update. After Restart and update, a tab you had split now comes back split, with the same sizes. Before, a split made after the tab was opened could return as separate tabs.
  • A failed update tells you why. If macOS stops rbterm from replacing itself — usually its App Management protection — rbterm now keeps the version you had, reopens it with your tabs, and shows a notification explaining what happened and how to allow it (System Settings → Privacy & Security → App Management), or to grab the new version from this site. Before, it quietly reopened the old version as if the update had worked.
  • Renaming a tab is easier to finish. Type the new name, then click anywhere or switch to another tab — the name is applied. You no longer have to press Enter, and switching tabs mid-rename no longer sends your typing into the old tab’s title. Esc still cancels.
  • A safety net for the drawing surface on launch. On macOS, if rbterm ever opens with its tab bar hidden under the title bar (so clicks and selection land in the wrong place), it now notices within a few seconds and corrects itself, instead of waiting for you to resize the window.

v0.3.73

Oct 2026

Closed tabs stay closed

  • Closing a tab really ends its shell. Sometimes a tab you closed kept its shell running in the background, and it could reappear as a tab the next time you opened rbterm. Closing a tab or pane now always ends its shell — a shell that ignores the hangup is stopped three seconds later — and a closed tab never comes back.
  • Your tabs survive an update — and only an update. Restart and update still brings back every tab with the same shells and running programs. Any other launch, including one after a crash, starts fresh and cleans up shells a previous rbterm left behind.
  • Key repeat slider makes sense. In Settings → Cursor, dragging Repeat rate to the right used to make held arrow keys repeat slower. It now speeds them up, and shows the rate in repeats per second. Your saved setting is kept — if arrows have felt sluggish, drag it right.

v0.3.72

Oct 2026

Two launch fixes

  • No more blank window when rbterm fills the screen. With the window set to Fill screen (Settings → Window), rbterm on macOS could open to an empty dark window — no tabs, no text — until you resized it. It now opens drawn and filling the screen below the menu bar.
  • No more spinning cursor at launch. If you had started a long-running program such as a tmux server from inside rbterm, it could keep hold of rbterm’s background session socket after rbterm quit, and the next launch would hang. rbterm’s sockets are no longer passed on to programs you start, and if it ever finds a socket that accepts but never answers, it starts a fresh session service after three seconds instead of waiting forever.

v0.3.71

Oct 2026

cat an image or a song — even on a server you’re ssh’d into

  • Images in the pane. cat photo.jpg shows the picture right over the pane — PNG, JPEG, BMP and animated GIFs. Click it to dismiss. It works the same on a remote machine over ssh, because the file travels through the terminal itself.
  • Audio, one click away. cat song.mp3 (or WAV, OGG) puts a small player at the bottom of the pane with play/pause, a seek bar and a close button. Nothing ever plays until you click.
  • Anything else can be saved. Other files sent this way get a Save to Downloads card, and an existing file is never overwritten.
  • How to turn it on: source rbterm’s shell integration (rbterm.com/shell/ — rbterm-shell-integration.zsh or .bash) on your machine and on the servers you use. Text files and pipes like cat log | grep error behave exactly as before. There’s also a standalone rbcat script, and iTerm2’s imgcat works too. Settings → Window → Inline media switches images and the audio player on or off.
  • Select while scrolling. Drag a selection past the top or bottom of a pane and the view now scrolls with you, faster the further you go, so you can select more than fits on screen. Scrolling the wheel mid-drag keeps the start of your selection in place.
  • Better screenshots. rbterm @ screenshot now includes image overlays and player cards, and rbterm @ media controls playback from scripts.

v0.3.70

Oct 2026

The scroll wheel scrolls one thing at a time

  • No more double scrolling in Codex, vim or tmux. When a program uses the mouse itself — OpenAI Codex in its default full-screen mode, vim, or tmux with mouse on — rbterm sent it the wheel and also scrolled its own scrollback, so the program and the terminal both moved at once. Now the wheel goes to the program or to rbterm, never both. Hold Shift to scroll rbterm’s scrollback anyway.
  • Wheel as arrow keys where programs ask for it. Full-screen programs that request “alternate scroll” (Codex’s overlays among them) now get Up/Down from the wheel, three lines per notch, the way other terminals behave.
  • rbterm @ send-wheel simulates a wheel movement over a pane and reports where it went, so scripts and the test suite can check scrolling behaviour.

v0.3.69

Oct 2026

OpenAI’s Codex CLI gets the same first-class treatment as Claude Code

  • Codex status on the tab, with nothing to set up. Run codex in a tab and rbterm reads the window title Codex keeps updated: a spinner badge while it’s working, an attention badge when it needs your approval, and a green dot when it finishes in a tab you aren’t looking at. The same states work in rbterm @ ls and -m state:running / state:attention for scripts that babysit agents.
  • Settings → Codex. Three switches. Alternate screen makes Codex draw inline, so scrollback and search keep working. Notifications makes Codex’s alerts carry their text instead of a bare bell. Image skill lets Codex show screenshots right in its pane. Codex has no environment variable for these, so each switch edits exactly one line of ~/.codex/config.toml and leaves the rest of the file untouched; your original is saved once as config.toml.rbterm-backup.
  • Windows test suite is fully green. 221 checks pass on Windows Server 2022 and 2025 with no failures. One window-resize check was occasionally losing a keystroke to the shell’s line editor rather than to rbterm, and it now waits for a fresh prompt first.

v0.3.68

Oct 2026

Windows gets a modern console host on every version, and fast output no longer loses text

  • The same, current console host on every version of Windows. Windows terminals don’t receive a program’s output directly — a console host in the middle re-encodes it first. The one built into Windows 10 garbled a few escape sequences on the way through (insert mode, one form of 256-colour, and erase or scroll-region commands with extra separators). rbterm now ships Microsoft’s own conpty.dll and OpenConsole.exe — the ones Windows Terminal uses — next to rbterm.exe, so Windows 10 and Windows 11 behave the same. Keep those files with rbterm.exe when you unzip; set RBTERM_CONPTY=system if you ever want the built-in host instead.
  • Big bursts of output no longer lose text on Windows. When a program printed faster than rbterm could draw, the oldest unread output was overwritten and silently dropped — large type commands and chatty builds could come out with gaps. rbterm now briefly holds the program back instead, the way a terminal on macOS or Linux does, with a large enough buffer that fast output still runs at full speed.
  • Large pastes stay responsive on Windows. Typing and pasting are now sent from a background thread, so a very large paste can’t stall the window while the program catches up.
  • rbterm @ version prints the version and which terminal backend is in use (on Windows, whether the bundled console host is active).
  • Tested on real Windows machines. The full test suite now runs on Windows Server 2022 and 2025 in the cloud: 219 checks pass on both with no failures.

v0.3.67

Oct 2026

Big output costs far less CPU, old logs clean themselves up, and the last two known terminal bugs are fixed

  • Floods of output use much less CPU. Every new line at the bottom of the screen used to shuffle the whole screen up by one row, so cat-ing a large file or a chatty build kept rbterm busy — more so the bigger the window. Scrolling now just moves a pointer. Printing three million lines takes well under half the CPU it used to, and finishes sooner.
  • Old session logs are deleted automatically. If you use session logging, Settings → Logging has a new Delete after option (30 days by default, or Never). rbterm only removes its own log files that haven’t been written to in that time — never a log an open tab is still writing, and never anything else in the folder. Each log was already capped in size; now the folder is too.
  • Reverse video works. Programs that flip the whole screen to dark-on-light (CSI ?5h, used for “visual bell” flashes and some older tools) now do so.
  • One more truecolor format is understood. The standards-body spelling of 24-bit colour, with an extra colour-space field (38:2::r:g:b), now gives the right colour instead of being ignored.
  • Jumping between prompts shows up immediately. Cmd+Up / Cmd+Down moved the view, but the screen didn’t redraw until you next moved the mouse or pressed a key. Now it does. (And Cmd+Shift+L, which selects the last command’s output, is finally in the manual.)

v0.3.66

Aug 2026

Closing 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 with rbterm @ arrived mangled — the Ω quietly became a plain O and 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 2026

Scripting 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.
SEC 02

0.3 series

Point releases from v0.3.64 back to v0.3.42, newest first.

v0.3.64

Aug 2026

The 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 2026

Built 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-image command 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 2026

Fixes 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 2026

More 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 clear wipes 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 2026

Scripting 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 2026

Faster at swallowing plain-text floods

  • A new batched write path makes dumping large amounts of plain text — cat a big file, tail -f a log, watch a noisy build — about 18% faster to ingest, with byte-for-byte identical output.

v0.3.58

Jun 2026

New 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 2026

Extra 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 2026

Extra 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 2026

Copy 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 2026

Logs 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 2026

Multiple 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.
SEC 03

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.
SEC 04

First builds

Everything before the first numbered release, grouped by milestone rather than by version.

v0.1.x

2026 · first builds

The 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 .app bundling its dependencies.
SEC 05

Get the current build

v0.3.94 for macOS, Windows and Linux — one self-contained binary, roughly 19 MB.

REV 0.3.94 · Oct 2026

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.