during execution
Direct terminal mirroring
ColliePWA streams raw agent terminal output with full ANSI color support, avoiding lossy transcripts or summaries. The mobile view matches your desktop terminal byte for byte.
ColliePWA mirrors terminal multiplexer agent panes to your phone. See who is waiting, read the screen, and reply from anywhere.
Herdr is the primary backend. tmux and zellij support is experimental. Details in Multiplexers
Static interface capture with mock sessions. The demo interface is non-interactive.
01/In short
02/Demo
This is the production ColliePWA client. Agents, terminals, and responses use mock data replayed locally in your browser. Nothing runs on a server and no network traffic is sent.
03/Front door
ColliePWA listens only on loopback, so nothing on the network reaches it directly. Your phone comes in through one front door that you already trust. Pick the one you run.
The default. collie start runs tailscale serve for you, with HTTPS on your tailnet name. Turn on HTTPS certificates in the Tailscale admin console once.
A public hostname without an open port. Put a Cloudflare Access login in front of it, because the tunnel alone lets the whole internet in.
A reverse proxy with a web UI and Let's Encrypt. It runs in Docker, so give the container host networking to reach loopback.
A WireGuard mesh, like a tailnet. Add a reverse proxy on the host for HTTPS, with a DNS challenge certificate for a private name.
A reverse proxy that gets and renews HTTPS certificates on its own. It is the shortest setup if you have your own domain.
Traefik, plain nginx, ZeroTier or any other proxy works. It must forward to 127.0.0.1 and serve HTTPS on one fixed hostname.
collie pair. Never use tailscale funnel.04/Feature by feature
during execution
ColliePWA streams raw agent terminal output with full ANSI color support, avoiding lossy transcripts or summaries. The mobile view matches your desktop terminal byte for byte.
on input required
Interactive permission prompts render as discrete action buttons. Input is validated against current terminal state before dispatch to prevent desynced submissions.
Newest
03A read-only Changes view
See what an agent changed before you trust it. The list groups files by repository, including a member repo nested inside a workspace, and a filter narrows it by path or by status (modified, added, deleted, renamed, untracked). Tap a file for a phone-sized diff with syntax colour and Previous/Next between files. The view refreshes every five seconds while it is open, and shows the repo's last commit when the agent has already committed its work. Git runs with hooks, filters and network turned off: nothing here edits, stages or commits.
04Prompt cache countdown
Every dashboard row and pane header shows how long that agent's prompt cache stays warm. The bridge reads the harness's own session log, applies the vendor's published cache lifetime, and counts down idle time since the last request. A new request resets the clock. Codex, OpenCode, pi and Claude Code panes all carry the reading, and an optional Web Push warns before a watched pane goes cold.
05Localization support
Interface translations for English, German, Spanish, Korean, Japanese, and Chinese, configured in Settings. Only UI chrome is translated; agent terminal streams remain byte-exact.
06Explicit device authorization
collie pair generates an eight-character token with a ten-minute TTL and five-attempt limit. The client exchanges this for an auth token whose hash is stored by the bridge. Revoking a device drops its next request.
07Voice input transcription
Push-to-talk transcribes directly into the input composer. Supports OpenAI-compatible APIs, local whisper.cpp or parakeet.cpp instances, or existing Codex CLI credentials without separate keys. Requires HTTPS via tailscale serve or a reverse proxy.
08Web Push on state change
Optional Web Push delivers notifications when an agent blocks on input or finishes. Selecting a notification opens that agent. Transition filters and do-not-disturb periods are bridge-wide across every device. Requires HTTPS and collie push-keys.
09Git worktree workspaces
Herdr nests git worktrees directly under their parent repository checkout instead of creating top-level entries. Worktrees are tracked as native workspaces.
10Zen mode
An optional setting that adds a toggle to the pane menu to collapse all navigation and display only the terminal. Leaves a single floating button to exit.
Network topology
11Configurable transport gateway
ColliePWA binds strictly to localhost without public ingress. Transport to mobile devices can use the automated Tailscale configuration in collie start, WireGuard meshes, tunnels, or standard reverse proxies.
12Multi-host crew coordination
A crew is ColliePWA on every machine. Your phone reaches them all through the lead. Uploads, journals, audit logs, updates and failover are per machine, under tmux and zellij too. Herdr's saved machines stay in Herdr's own window. The crew is what your phone sees.
Additional features
05/Who it is for
ColliePWA is for one operator with several coding agents running in terminal panes on one host. It does not replace the terminal. It lets you answer a waiting agent from a phone, then go back to what you were doing.
collie stt setup on an HTTPS origin.collie push-keys.06/Architecture
ColliePWA writes to your interactive terminal sessions with your current user permissions. Any client with network access to the port can read terminal output and execute arbitrary commands.
MIT licensed source. Review the security note for detailed access controls and trust boundaries.
07/Installation
ColliePWA runs next to your agents, on the machine that already has them. The script downloads a release for your platform and verifies it. Building from source needs git and Bun, and is the route for a machine the releases do not cover. Both end with collie on your PATH, and neither one starts anything.
$ curl -fsSL https://colliepwa.dev/install.sh | sh
A short POSIX sh installer. It skips sudo, starts no system services, and isolates files to ~/.local/share/collie and ~/.local/bin. It fetches the latest release, validates the published sha256 hash, writes the binary, and updates PATH. Requires curl, tar, and sha256 tools.
Served locally from this origin. Canonical source is located at scripts/install.sh in the repository. Inspect the script before running:
$ curl -fsSL https://raw.githubusercontent.com/AltanS/collie/main/scripts/install.sh | less$ curl -fsSL https://raw.githubusercontent.com/AltanS/collie/main/scripts/install.sh | sh
Run collie update to fetch, verify, and switch to newer releases. Previous versions remain cached for collie update --rollback. Source builds update git revisions directly without release rollback targets.
Sourced from scripts/install.sh at 2ded11d, 2026-08-31.
One step left: start it.
# one step left. It asks which multiplexer to mirror — herdr, tmux or# zellij — and writes your answer to ~/.config/collie/.env, creating it.$ collie start
Configuration is optional and lives in ~/.config/collie/.env, the file start creates. Set COLLIE_TRUSTED_USER there, and the port or the front door if the defaults do not fit.
Access the generated URL from your mobile device over your local network. Add to home screen for full viewport mode.
Requires private ingress. ColliePWA binds strictly to loopback interfaces. Tailscale is configured by default: collie start runs tailscale serve on your MagicDNS hostname. Custom reverse proxies, meshes, and SSH tunnels are documented in the deployment guide. Single-user architecture only.
08/FAQ
Yes. It is MIT licensed. There is no paid tier, no account and no cloud service behind it.
Yes. The interactive demo runs the real app in your browser, with made-up agents and panes. Nothing is installed and nothing is sent to a server.
No. ColliePWA is a web app that your own machine serves. Open its address on your phone and add it to the home screen. On an iPhone or iPad, use Safari's share sheet for that.
Any agent that runs in a terminal pane. ColliePWA mirrors the pane itself, so it does not need an API from the agent. The prompt cache timer on each pane knows Claude Code, Codex, OpenCode and pi.
Herdr, tmux or zellij. Herdr is the primary backend. tmux and zellij work, but are experimental. collie start finds the ones you have and asks which one to mirror.
The host runs Linux or macOS. On Windows, the bridge runs against the Herdr Windows beta, and that support is experimental. On the phone, any current browser works.
No. Tailscale is the default, because collie start sets it up for you. A reverse proxy, Cloudflare Tunnel, NetBird or another mesh works too. The deployment guide shows each one.
Web Push needs two things: an HTTPS address and a key pair from collie push-keys. Over plain HTTP, the browser does not allow push, and the switch stays off. On an iPhone, add ColliePWA to the home screen first. Safari allows push only for a web app on the home screen.
ColliePWA gives remote shell access to your machine. That is what it is for. Anyone who reaches the address can read your panes and type into them. It listens only on loopback, so keep exactly one private front door in front of it, and pair your phone with collie pair. Never make it public with tailscale funnel. Read the security note before you run it.
No telemetry, no analytics and no crash reports. The only call it makes on its own is an anonymous update check against GitHub's public tags. Push goes through your browser's push service, and only after you turn it on. Voice input uses a cloud service only if you pick one over a local engine.
No. ColliePWA is for one operator. It has no user accounts and no per-person permissions. If you run agents on several machines, a crew puts all of them behind one address, for you alone.
Tap update in Settings on your phone, or run collie update on the host. Older versions stay on disk, so collie update --rollback takes you back.