Repository navigation
Ternimal v1.1.0 — remote layer, soft keyboard, open-source readiness
Ternimal v1.1.0 — first stable release
A multi-tab terminal that shares its sessions with any browser on your LAN:
scan a QR code and your phone is attached to the same tabs the desktop
window shows — sessions survive every disconnect.
Built for the AI-agent era: run Claude Code (or any CLI) on the desktop,
supervise it from the couch.
Highlights
- Scan-to-sign-in — per-launch 192-bit access token carried in the URL
fragment (never sent to the server, never logged); tray shows the QR code;
rotating the token kills all sessions instantly - Shared sessions, zero client install — local Electron window and LAN
browsers attach to the same PTY sessions over HTTPS; ring-buffer replay
rehydrates scrollback on re-attach - Mobile soft keyboard — draggable floating bar: sticky Ctrl/Alt/Shift
(arbitrary combos, one-shot), Esc/Tab, ↑↓←→ following the terminal's
cursor mode —Ctrl+C, readline meta-jumps and vim navigation from a phone - Privacy-first networking — self-signed TLS with SHA-256 fingerprint on
both the sign-in page and the tray (anti-MITM), LAN/VPN only by design,
per-IP rate limiting, hardened cookies - i18n zh/en following system locale (
TERNIMAL_LOCALEoverride)
Install (Linux)
- AppImage
Ternimal-1.1.0.AppImage— chmod +x and run - deb
ternimal_1.1.0_amd64.deb—sudo apt install ./ternimal_1.1.0_amd64.deb
From source:
npm install --include=dev && npm run rebuild && npm run devSecurity note
Ternimal serves a shell over the network — LAN/VPN only, do not
port-forward it to the internet. Sessions/auth are in-memory; restarting
revokes everything.
Verification
npm run verifyumbrella: 53/53 (ring buffer, registry, auth+cert+config,
WS protocol, reconnect, soft-keys + i18n)- smoke-e2e (real Electron + real bash + TLS): ALL PASS
- browser-e2e (real Chrome): 21/21 — login → tabs → typing → real Ctrl+C
interrupt → arrow navigation → drag persistence → reload semantics