10 · Development
t4 code
host liveOne host, three faces: a native iOS app, a native macOS app, and a terminal UI — all speaking the same omp-app/1 wire to your t4-host, over the tailnet, with pinned wss.
the palette
bg
#000000
panel
#0c0c0e
accent
#c8d6e5
foam
#7fd6c8
iris
#b9a3e3
pine
#7bb8d4
gold
#f6c177
love
#e8919f
ok
#86e0b0
everything in this build
regions
Every pane is a tile: right dock (browser, files, agents, review) concurrent with the transcript and the bottom terminal. Per-session layouts persist.
floating
Any tile pops out into its own floating panel on macOS — and docks back with one click.
settings
Full OMP settings from the app: models per agent role, thinking level, approval mode, provider keys (masked), wss pinning, theme. Writes are confirmed and revision-checked.
fork
Branch any session into a full-history copy — rail row menu, session menu, or the TUI (
f).design mode
Annotate an element in the browser pane, add a note, and a structured prompt lands in the composer.
gallery
The files pane shows real image thumbnails with a full-screen preview.
unread
Accent dots on rail rows with new activity;
⌘⌥U cycles unread sessions on macOS.unread
Terminal mouse reporting — htop, vim, lazygit take clicks and scrolls.
wss
Pinned TLS alongside plain ws on the tailnet — TOFU fingerprint in the Keychain, published on
/healthz.preview
Host-side headless-Chromium preview service: launch, navigate, capture, click/type/scroll, leases — all 22 commands.
t4 tui
The whole product in a terminal: rail, live transcript, composer, fork — one self-contained binary.
in motion
iOS

















macOS













terminal
t4 — 118×32
omp-app/1 · wss
t4 connectedmacbookpro.tail871e8b.ts.net? help
sessions
transcript renderer ref…
⌄ fork · split-pane var…
preview service spike
wss pinning
vault search ui
release notes pass
workingattentionidleunread
you
fork the session and compare both designs side by side
agent
Forked into 019fa1d2 — full history carried over. I'll build
the split-pane variant there while this thread keeps the
drawer approach. Diff at the end.
tool
session.fork → ok · session.prompt → accepted
agent
The rail stays flat — no card stacking — and the drawer
mirrors the desktop narrow-width sheet overlay.
›compare the forks' approaches…enter ↵
j/k move · enter open · 1-5 panes · f fork · x cancel · / filter · ? help






t4 code · omperatorRosé Pine · omp-app/1 · tailnet + pinned wss