saikai 0.5.0
Pane direct view — the browser becomes the claude pane's real terminal
A new mirror mode streams a live pane's raw PTY bytes straight to the
browser's xterm.js: byte-faithful alt-screen, truecolor, native mouse
reporting, real cursor — instead of a re-render of the whole TUI. Toggle
Pane view ⇄ App view from the key bar's More row. Input goes verbatim to
the child (arrows honor DECCKM, composer pastes are properly bracketed).
Hardened across one high-effort review and three external audit rounds
(29 findings fixed, all with regression tests).
Mirror UX
- Fit-to-width: the font scales so the whole grid fits the window
(readability floor 9px — phones keep 1:1 + pan).Fit ⇄ 1:1toggle,
persisted per browser. - Key bar hugs the terminal's bottom edge when the canvas fits — no more
dead space between content and keys on tall windows. - Region-aware selection edge auto-scroll, composer draft survives view
switches.
https on Windows
The mirror's TLS certificate is now minted in-process (cryptography),
so TLS-by-default actually works on Windows where the openssl CLI isn't on
PATH — the QR/URL advertise https everywhere. openssl remains a fallback.
Desktop-SSH mirror sessions
Sessions executed on a REMOTE host via Claude Desktop's SSH integration are
mirrored locally under projects/ssh-*. saikai now badges them (s marker)
and refuses a local resume with an explanatory toast — resuming them for real
(an ssh -t pane + remote discovery) is the 0.6 goal on the
feature/remote-roots branch.
Fixes
- Attention markers no longer freeze until F5 (transcript-growth-aware change
gate). - Host resize / pane switches repaint the mirror correctly (meta-before-seed
ordering, reseeds carry geometry). - Exclusive mouse-protocol tracking matching xterm.js semantics; child
terminal queries (DA/DA2/DECRQSS/XTGETTCAP) stripped from the pane stream
with split-DCS reassembly.
Install / upgrade
uv tool install --force saikai