You and your agents share the same terminals.
phux is a terminal multiplexer whose panes are a view. Underneath, each terminal is an object on a wire: you, Cockpit, a script, or an agent attach to the same live emulator. When the harness emits, blocked is a fact. Join another machine with no account.

A real phux terminal in the browser. The same bytes a GUI, headless tool, or agent consumes.
THE FLEET INBOX
Never hunt for the stuck one.
Agents publish their own work state beside the terminal where it happened. When one needs you, that terminal rises to the inbox with the exact question attached.
$ phux agent run deploy-check
checking migration plan against staging schema…
Panes are a view.
The multiplexer chrome is one consumer. Underneath, each terminal is an object with a stable id. Detach, reattach, share it.
Same objects, many consumers.
CLI, Cockpit, the browser, and agents attach to the same live emulator. Nobody screen-scrapes. Nobody holds a second copy.
Co-presence.
An agent reads, acts, and waits against the terminal you are looking at. When it emits, blocked is a fact on the wire, not a scrape of its UI. OpenCode, Pi, and Claude plug into that loop.
Bytes stay bytes.
The same libghostty engine runs on both ends. Server sends VT; client sends structured input. Nothing in the middle re-parses.
Your machines. No account.
Pair once with phux --remote me@mini. After that the dial is encrypted QUIC with no ssh in the path and no phux account in the middle.
Install the CLI, or Cockpit on macOS.
One command, then phux. Cockpit is the native app for the same terminals.
curl -fsSL https://phux.sh/install | shcurl -fsSL https://phux.sh/install-cockpit | shBoth scripts verify release checksums. Cockpit needs Apple silicon macOS 11+. Homebrew: brew trust --tap no-phux/tap && brew tap no-phux/tap && brew install no-phux/tap/phux. To track green main, add --channel next (curl -fsSL https://phux.sh/install | sh -s -- --channel next). All install methods