Remote companions and relays
Clients that observe or steer a session owned by another machine or product.
| Criterion | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product identity | ||||||||||||||||||
| Source model | Open source↗ | Open source↗ | Open source↗ | Open source↗ | Open source↗ | Open source↗ | Open source↗ | Unknown | Proprietary↗ | Open source↗ | Open source↗ | Proprietary↗ | Open source↗ | Open source↗ | Open source↗ | Open source↗ | Proprietary↗ | Open source↗ |
| Primary workflow object | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ | Remote session↗ |
| Product status | Active↗ | Beta↗ | Active↗ | Active↗ | Active↗ | Active↗ | Active↗ | Active↗ | Beta↗ | Active↗ | Active↗ | Active↗ | Active↗ | Active↗ | Active↗ | Active↗ | Active↗ | Active↗ |
| Execution and data boundary | ||||||||||||||||||
| Execution location | Paired machine, Vendor cloud↗ | Local daemon, Paired machine, Vendor cloud, User cloud↗ | Local daemon, Paired machine↗ | Paired machine↗ | Local daemon, Vendor cloud↗ | Local daemon, Paired machine, User cloud↗ | Local daemon, Paired machine↗ | Paired machine↗ | Paired machine, Vendor cloud↗ | Local daemon, User cloud↗ | Local daemon, User cloud↗ | Ssh host, Container, User cloud↗ | Local daemon, Paired machine, Vendor cloud↗ | Local daemon, Paired machine, Vendor cloud, User cloud↗ | Local daemon, User cloud, Paired machine↗ | Local daemon, Paired machine↗ | Paired machine↗ | Local process, Ssh host↗ |
| Client | ||||||||||||||||||
| Web or mobile client | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ |
| Native iOS client | Built in↗ | Built in↗ | Not available↗ | Unknown | Not available↗ | Unknown | Limited↗ | Limited↗ | Built in↗ | Unknown | Unknown | Unknown | Unknown | Unknown | Built in↗ | Unknown | Built in↗ | Unknown |
| Native Android client | Built in↗ | Built in↗ | Not available↗ | Unknown | Not available↗ | Unknown | Unknown | Unknown | Built in↗ | Unknown | Unknown | Unknown | Unknown | Unknown | Built in↗ | Unknown | Unknown | Unknown |
| Browser or PWA client | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Unknown | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Unknown | Built in↗ | Built in↗ | Unknown | Unknown |
| Session ownership | ||||||||||||||||||
| Connects to an existing session | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Limited↗ | Limited↗ | Limited↗ | Limited↗ | Limited↗ | Built in↗ | Limited↗ | Built in↗ | Built in↗ |
| Session host ownership | Existing session on paired machine↗ | Existing or Happier-launched session on a connected machine↗ | Existing multiplexer panes on the operator-owned host↗ | Operator machine↗ | Agent CLI processes and session files on the operator's local machine↗ | Existing or dashboard-launched pi session on the connected dashboard host↗ | Local command or PTY on host Mac↗ | Existing tmux session on paired machine↗ | Existing local CLI or VS Code session↗ | Self-hosted remote editor workspace↗ | Self-hosted Code OSS server↗ | SSH host, container, WSL, or tunnel workspace↗ | Command launched on paired host↗ | Hosted command or tmux attachment↗ | Remote SSH/RDP/VNC/Telnet host↗ | Command or PTY on self-hosted machine↗ | Operator-owned SSH host↗ | Operator machine↗ |
| Interaction | ||||||||||||||||||
| Remote approvals and follow-ups | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Unknown | Built in↗ | Built in↗ | Unknown | Unknown | Unknown | Unknown | Unknown | Limited↗ | Unknown | Unknown | Unknown |
| Live terminal input | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Limited↗ | Built in↗ | Built in↗ | Built in↗ | Limited↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ |
| Remote input model | Follow-ups, terminal control, and approve/deny↗ | Agent messages, approvals, steering, and embedded terminal input↗ | Structured prompt answers, text replies, special keys, and raw terminal keystrokes↗ | Agent-aware chat and approval controls↗ | Channel chat messages, Approve or Deny buttons, slash commands, and quoted-message routing↗ | Agent prompts and commands, queued input, structured dialogs, and integrated terminal input↗ | Raw interactive terminal input↗ | Terminal input, prompts, and structured approve/deny↗ | Follow-ups and structured approvals↗ | Full browser IDE, terminal, and file editing↗ | Full browser IDE, terminal, and file editing↗ | Full desktop IDE, terminal, and file editing↗ | Raw collaborative terminal input↗ | SSH terminal input↗ | SSH terminal and remote desktop input↗ | Raw browser terminal input↗ | Native SSH terminal, Command Dial, and SFTP image insertion↗ | Live terminal↗ |
| Security | ||||||||||||||||||
| End-to-end encryption documented | Limited↗ | Built in↗ | Limited↗ | Unknown | Limited↗ | Limited↗ | Unknown | Unknown | Limited↗ | Unknown | Unknown | Unknown | Built in↗ | Limited↗ | Unknown | Unknown | Limited↗ | Built in↗ |
| Relay and hosting boundary | Limited↗ | Built in↗ | Loopback bridge behind Tailscale Serve or an operator-managed reverse proxy↗ | Unknown | Built in↗ | Local daemon or operator-hosted dashboard with optional zrok tunnel and OAuth allowlist↗ | Built in↗ | Unknown | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | tmate relay or self-hosted server↗ |
| Relay deployment | Hosted encrypted sync relay; self-hostable server↗ | Happier Cloud or self-hosted relay↗ | No vendor relay; Tailscale Serve or operator-managed proxy or tunnel↗ | Unknown | No Lucarne vendor relay; Telegram and WeChat clouds connect to the local daemon↗ | Direct LAN or mDNS, operator-hosted Docker or remote server, or optional zrok tunnel↗ | LAN, SSH/VPN, or user-supplied tunnel↗ | Unknown | Anthropic-hosted relay↗ | Direct self-hosted server; user supplies proxy/VPN↗ | Direct self-hosted server↗ | SSH, container transport, WSL, or VS Code tunnel↗ | Hosted relay↗ | Hosted or self-hosted uptermd relay↗ | Self-hosted Termix service↗ | Direct self-hosted WebSocket service↗ | No vendor relay; direct SSH↗ | Built in↗ |
| Transport security | End-to-end encrypted session content↗ | End-to-end encrypted by default; configurable self-hosted storage policy↗ | Deployment-dependent HTTPS with device pairing; no documented end-to-end content encryption↗ | Unknown | Channel-provider transport and authorized-user controls; no documented application-level end-to-end encryption↗ | Deployment-dependent; tunnel access can use OAuth and an allowlist, while localhost is unguarded↗ | Deployment-dependent↗ | Unknown | Outbound HTTPS with scoped credentials↗ | Deployment-dependent TLS or secure tunnel↗ | Deployment-dependent↗ | Selected transport↗ | Argon2-derived AES end-to-end encryption↗ | SSH transport↗ | Protocol and deployment-dependent↗ | Deployment-dependent TLS↗ | SSH transport security↗ | SSH↗ |
| Compatibility | ||||||||||||||||||
| Named agent harnesses | Built in↗ | Built in↗ | Any terminal agent; named support for Claude Code, Codex, OpenCode, and pi↗ | Claude Code↗ | Claude, Codex, Gemini, GitHub Copilot CLI, pi, and Grok Build↗ | pi only; Oh My Pi is explicitly unsupported↗ | Built in↗ | Built in↗ | Built in↗ | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Any CLI or TUI reachable over SSH↗ | Any terminal program↗ |
| Understands agent state and approvals | Built in↗ | Built in↗ | Limited↗ | Built in↗ | Built in↗ | Built in↗ | Limited↗ | Built in↗ | Built in↗ | Limited↗ | Limited↗ | Limited↗ | Limited↗ | Limited↗ | Limited↗ | Limited↗ | Unknown | Unknown |
| Attention | ||||||||||||||||||
| Push or attention notifications | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Unknown | Built in↗ | Built in↗ | Unknown | Unknown | Unknown | Unknown | Unknown | Built in↗ | Unknown | Not available↗ | Unknown |
| Continuity | ||||||||||||||||||
| Session history or recording | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Built in↗ | Unknown | Unknown | Unknown | Unknown | Unknown | Built in↗ | Unknown | Unknown | Unknown |
| Session durability boundary | Survives client disconnect while host session runs↗ | Persistent host sessions with restart resume and tmux-backed terminal resume↗ | Owned by the host multiplexer while that multiplexer remains running↗ | Unknown | Provider history is resumable; live sessions are daemon-managed with a configurable idle timeout↗ | Host-persisted pi JSONL history with resume and fork support↗ | Browser reconnect + recorded PTY; host process must remain↗ | Owned by tmux; survives browser and client exit↗ | Survives remote client disconnect; local session must remain↗ | Server workspace survives browser close↗ | Server workspace survives browser close↗ | Remote workspace persists; IDE connection can reconnect↗ | Host command must remain running↗ | Host command or tmux attachment must remain↗ | Saved connection and shared-session history↗ | Host command must remain running↗ | Provided by tmux or herdr on the host↗ | Built in↗ |
| Open-source project | ||||||||||||||||||
| Repository metric scopeWhat the joined repository represents for this product column. | Product repository↗ | Product repository↗ | Product repository↗ | Product repository↗ | Product repository↗ | Product repository↗ | Product repository↗ | Not tracked | Not tracked | code-server checked-in source; shallow checkout excludes the uninitialized VS Code submodule.↗ | Full Code OSS fork; contributor count covers this fork rather than all upstream VS Code authors.↗ | Not tracked | Product repository↗ | Product repository↗ | Whole Termix monorepo, including server and desktop/mobile/web clients.↗ | Product repository↗ | Not tracked | Product repository↗ |
| Latest verified release | None published↗ | stack-v0.2.15↗ | v1.18.0↗ | macos/v1.140.1+264↗ | v0.5.2↗ | v0.9.0↗ | v1.0.0-beta.18 · repository tag↗ | Not tracked | Not tracked | v4.141.0↗ | openvscode-server-v1.109.5↗ | Not tracked | v0.4.1↗ | v0.36.0↗ | sdk-v1.0.4↗ | 1.7.7↗ | Not tracked | 2.4.0↗ |
| Release date | Not applicable↗ | 2026-10-08↗ | 2026-10-08↗ | 2026-10-03↗ | 2026-08-02↗ | 2026-10-06↗ | Not applicable↗ | Not tracked | Not tracked | 2026-10-08↗ | 2026-02-20↗ | Not tracked | 2025-02-12↗ | 2026-10-06↗ | 2026-10-08↗ | 2024-03-30↗ | Not tracked | 2019-11-16↗ |
| Repository license | MIT↗ | MIT↗ | MIT↗ | MIT↗ | MIT↗ | MIT↗ | MIT↗ | Not tracked | Not tracked | MIT↗ | MIT↗ | Not tracked | MIT↗ | Apache-2.0↗ | Apache-2.0↗ | MIT↗ | Not tracked | ISC↗ |
| Repository stars | 24.1K↗ | 1.9K↗ | 1.3K↗ | 1.1K↗ | 339↗ | 315↗ | 4.7K↗ | Not tracked | Not tracked | 79.6K↗ | 6.2K↗ | Not tracked | 7.7K↗ | 1.3K↗ | 15.4K↗ | 12.5K↗ | Not tracked | 6.1K↗ |
| Repository forks | 2.1K↗ | 169↗ | 153↗ | 115↗ | 17↗ | 48↗ | 335↗ | Not tracked | Not tracked | 6.9K↗ | 608↗ | Not tracked | 309↗ | 87↗ | 731↗ | 1.2K↗ | Not tracked | 335↗ |
| Open repository issues | 1.1K↗ | 207↗ | 12↗ | 19↗ | 19↗ | 44↗ | 61↗ | Not tracked | Not tracked | 150↗ | 131↗ | Not tracked | 29↗ | 12↗ | 1↗ | 118↗ | Not tracked | 130↗ |
| Contributor entries | 81↗ | 84↗ | 76↗ | 20↗ | 2↗ | 23↗ | 60↗ | Not tracked | Not tracked | 303↗ | 2.9K↗ | Not tracked | 6↗ | 24↗ | 11↗ | 70↗ | Not tracked | 49↗ |
| Source lines at measured refPinned to a verified stable release, a clearly labelled prerelease, or an exact default-branch commit. | 205.4K↗ | 3.2M↗ | 283K↗ | 238.6K↗ | 146.5K↗ | 801K↗ | 169.8K↗ | Not tracked | Not tracked | 12.1K↗ | 1.6M↗ | Not tracked | 9.1K↗ | 55.1K↗ | 463.4K↗ | 19.2K↗ | Not tracked | 39.5K↗ |
| Primary language | TypeScript 95.84%↗ | TypeScript 90.1%↗ | TypeScript 97.63%↗ | Dart 69.55%↗ | Rust 99.54%↗ | TypeScript 82.07%↗ | TypeScript 50.14%↗ | Not tracked | Not tracked | TypeScript 81.88%↗ | TypeScript 95.57%↗ | Not tracked | Rust 45.36%↗ | Go 97.64%↗ | TypeScript 97.06%↗ | C 56.07%↗ | Not tracked | C 90.63%↗ |
| Repository size | 221.3 MB↗ | 721.5 MB↗ | 27.7 MB↗ | 598.9 MB↗ | 10.8 MB↗ | 132.7 MB↗ | 1008.2 MB↗ | Not tracked | Not tracked | 54.1 MB↗ | 1.1 GB↗ | Not tracked | 992 KB↗ | 173.2 MB↗ | 81.3 MB↗ | 20.1 MB↗ | Not tracked | 7.8 MB↗ |
| Repository last push | 2026-10-09↗ | 2026-10-09↗ | 2026-10-08↗ | 2026-10-03↗ | 2026-08-02↗ | 2026-10-08↗ | 2026-08-05↗ | Not tracked | Not tracked | 2026-10-08↗ | 2026-09-24↗ | Not tracked | 2026-09-21↗ | 2026-10-08↗ | 2026-10-09↗ | 2026-08-12↗ | Not tracked | 2026-10-06↗ |
| Repository status | Active repository↗ | Active repository↗ | Active repository↗ | Active repository↗ | Active repository↗ | Active repository↗ | Active repository↗ | Not tracked | Not tracked | Active repository↗ | Active repository↗ | Not tracked | Active repository↗ | Active repository↗ | Active repository↗ | Active repository↗ | Not tracked | Active repository↗ |
| Repository data refreshed | 2026-10-09↗ | 2026-10-09↗ | 2026-10-09↗ | 2026-10-09↗ | 2026-10-09↗ | 2026-10-09↗ | 2026-10-09↗ | Not tracked | Not tracked | 2026-10-09↗ | 2026-10-09↗ | Not tracked | 2026-10-09↗ | 2026-10-09↗ | 2026-10-09↗ | 2026-10-09↗ | Not tracked | 2026-10-09↗ |
No comparison rows match this view.
