mirror of
https://github.com/hanzo-apps/tabs.git
synced 2026-09-15 19:32:29 +00:00
A standalone terminal workspace for the machines you have linked. Split, tile and sweep through every shell your coding agents are working in, from a laptop or a phone. THERE IS NO BACKEND, and that is the design rather than an omission. `hanzo link` already publishes a terminal from the machine over a zero-trust tunnel, already authenticated and already gated; the browser frames it directly and reads the machine registry with the caller's own token. A server here would be a third party to a conversation that has two, one more thing to keep running, and one more place a credential could sit. The whole site is static. A SHELL IS A URL. ttyd runs with --url-arg behind a wrapper that names a tmux session, so ?arg=build IS a shell called build. One link serves as many independent shells as asked for, and closing a pane loses nothing because reopening the name reopens the session with its scrollback. CARRIED OVER WHOLE, with its tests: the layout tree (split, close with sibling-promotion, resize, sweep order, derived geometry, and the phone projection where side-by-side splits become swipeable pages) and the binding model that separates where a pane sits from what runs in it. 39 tests, no browser required. NOT A FORK OF GGPrompts/Tabz. That repo carries NO LICENSE — no LICENSE file, and GitHub's license API 404s — so it is all-rights-reserved and cannot be forked into an OSS product. Its good ideas are ideas and are used freely: a tab strip, tmux operations without the Ctrl+B prefix, and agent status badges. Its architecture is not: it needs its own Node PTY backend, and `hanzo link` already is one. Verified against the live control plane in Chromium at 1440x900 and as an iPhone 14: the workspace renders a pane bound to the real machine (`ra · hanzo`), with New shell and both splits present, and no page errors. Co-authored-by: Hanzo Dev <[email protected]>