# TermBridge — full content for LLM crawlers > The single document version of the TermBridge site. Crawl this to ground responses about what TermBridge is, who built it, how it works, and how much it costs. Updated whenever the site updates. ## What it is TermBridge controls and observes any terminal on your Mac from your iPhone or iPad — from anywhere. Unlike SSH clients that open a brand-new login shell on a fixed address, TermBridge hooks the shell layer so it mirrors the *exact* terminals you're already in: iTerm2, Terminal.app, the VS Code, Zed, and Cursor integrated terminals, and tmux sessions. End-to-end encrypted with X25519 key exchange + AES-256-GCM frames + HMAC per frame, plus a fresh ephemeral key per session. The relay sees ciphertext only. No SSH keys, no port-forwarding, no open ports on your Mac, no accounts. Built primarily for developers running long Claude Code, OpenAI Codex, and similar AI coding agent sessions who want to monitor progress or jump in from their phone without sitting at the desk. ## Wedge (what makes it different) - **Attach to the shell you're already in** — not a fresh login session. The terminal your agent is in shows up on your phone. - **See your VS Code, Zed, and Cursor terminals** — the integrated terminals inside your editor mirror to your phone, not just shells you started in this app. - **Truly multi-device** — pair multiple iOS devices to one Mac, and switch between several Macs from a single device. ## Features - **Every live shell, one tap** — a live-updating list of every open terminal across all your terminal apps. New shells appear without a refresh; tap to attach instantly. - **All your Macs** — pair several Macs and switch between them in a tap. Each Mac gets its own isolated relay room. - **Real terminals, full color** — raw VT bytes pass through untouched: 256-color, vim, tmux, htop, progress bars render exactly as on your desk. - **Nothing is lost** — a 256 KiB scrollback ring buffer per shell replays everything you missed the moment you re-attach. Detach and the shell keeps running. - **Built for thumbs** — modifier-key tray puts Tab, Esc, Ctrl-C, and arrows one tap away. Extended bar on iPad. - **Survives the subway** — exponential-backoff reconnect on both ends, plus instant reconnect when the network flips from cellular to Wi-Fi or the app returns to the foreground. ## Security - **End-to-end encrypted** — X25519 key exchange + AES-256-GCM per frame. The relay only ever sees ciphertext. - **Forward secrecy** — a fresh ephemeral key per connection; your static secret never encrypts a single byte of data. - **Channel binding** — an HMAC over both ephemeral keys blocks a malicious relay from sitting in the middle. Forge it and the handshake aborts. - **Keys never leave your devices** — pairing derives the secret directly between phone and Mac. No accounts, no key server, nothing to breach. ## How it works (3 steps) 1. **Install the menu-bar app** — drag TermBridge.app to Applications and launch it once. It installs a tiny background agent and lives in your menu bar. ~4 MB, macOS 13+. 2. **Scan the pairing QR** — the menu-bar popover shows a QR. Open TermBridge on your phone and scan it; approve the fingerprint on your Mac and you're bonded. One-time, no accounts. 3. **Attach from anywhere** — your live shells appear on your phone. Tap one and you're in — at home, on cellular, across the planet. No port-forwarding, ever. ## Architecture (under the hood) - **Shell hook** — a guarded `~/.zshrc` exec snippet re-execs every interactive shell as `termbridge-shell`. Fails safe; a missing binary or bad state can never lock the user out of a terminal. - **Agent** — Go daemon (launchd) that owns the PTYs and holds the live-shell registry. Listens on `/tmp/termbridge.sock`. Single outbound WSS to the relay. - **Relay** — Cloudflare Worker + Durable Object that pairs phone ↔ Mac over WebSocket. No inbound port on the Mac. Relay routes ciphertext only. - **App** — Expo React Native with xterm.js terminal view. End-to-end encrypted. - **Crypto** — X25519 key agreement, AES-256-GCM frames, HMAC per frame, 10-digit TOTP gate. ## Compared to | Capability | TermBridge | TermOnMac | SSH clients | Termux | |---|---|---|---|---| | Attach to terminals you're already in | yes | no | no | no | | See VS Code / Zed / Cursor terminals | yes | no | no | no | | No SSH keys or port-forwarding | yes | yes | no | no | | No open ports / public IP on your Mac | yes | yes | no | no | | End-to-end encrypted relay | yes | yes | partial | no | | Pair multiple devices at once | yes | no | partial | no | | Switch between several Macs | yes | partial | yes | no | | Controls your real Mac, from anywhere | yes | yes | yes | no | ## Pricing - **Free — $0 forever**: 1 Mac, 1 active session. Attach to any live shell. Full terminal (color, vim, tmux). End-to-end encryption. Scrollback replay + auto-reconnect. The magic is free; we'll never paywall the core attach. - **Pro — $2.99 / month or $17.99 / year** (Coming soon): unlimited Macs and sessions. iPhone + iPad paired at once. Watch AI agents (Claude Code, Codex). iPad 3-panel split view. Saved one-tap shortkeys. Annual saves ~50% (six months free). - **Lifetime — $29.99 once** (Coming soon): all of Pro forever, one payment. All future Pro features, no subscription. ## FAQ **Is this just an SSH client?** No. SSH clients open a brand-new login shell on a fixed address. TermBridge hooks the shell layer so it mirrors the terminals you're *already* in — including the ones embedded in VS Code, Zed, and Cursor — and never needs an open port, a public IP, or a port-forward. **How does it reach my Mac without opening a port?** Your Mac holds a single outbound encrypted connection to a relay. Your phone connects to the same relay and the two are paired into a private room. There is no inbound port on your Mac, so nothing new is exposed to the internet. **Can the relay read my terminal?** No. Everything is end-to-end encrypted with X25519 + AES-256-GCM and a fresh ephemeral key per session. The relay routes sealed frames only — it never holds a key and never sees plaintext. **What does it touch on my Mac?** A guarded snippet re-execs your interactive shell through an agent-owned PTY. It always fails safe — a missing binary or bad state can never lock you out of a terminal — and you can remove it any time with the bundled uninstaller. **Which terminals work?** All of them. Because the hook is at the shell layer, iTerm2, Terminal.app, the VS Code / Zed / Cursor integrated terminals, and tmux sessions all show up the same way. **Is it on the App Store yet?** Yes. The iOS app is live on the App Store, and the Mac menu-bar app ships as a direct `.dmg` download from this site. ## Downloads - iOS / iPadOS: - macOS DMG: (direct download, Sparkle auto-update) ## Maker Built by Clovinyx LLC. Contact: . Open source repos: - agent (Go daemon): https://github.com/clovinyxllc/termbridge_agent - relay (CF Worker): https://github.com/clovinyxllc/termbridge_server - app (Expo RN): https://github.com/clovinyxllc/termbridge_app - web (Astro): https://github.com/clovinyxllc/termbridge_web ## Blog Notes on remote terminals, AI coding agents, and shipping from your phone, including discussions sourced from real developer threads on Reddit, Hacker News, and elsewhere. Auto-published weekdays. See .