Skip to content

Beam your terminal

Termbridge runs a local server, tunnels it through Cloudflare, and streams your tmux session to any browser.

Terminal
npx termbridge

Latest release 0.3.13 MIT Node 20+, tmux and cloudflared

In practice

Start it on your computer, then open the terminal on another device.

From your laptop to your phone

npx termbridge starts a local server, a tmux session and a Cloudflare tunnel, then prints a QR code with a one-time login link.

Scanning the code redeems the token into a cookie session. Add --proxy 5173 to show your dev server in a Preview view next to the terminal.

Terminal
npx termbridge

Mobile Ready

Scan the QR code and open your terminal in the browser on your phone.

True Terminal

tmux + node-pty feed a real PTY into xterm.js with colors and TUIs.

Cloudflare Tunnel

Quick Tunnel exposes your local server with no port-forwarding.

Token Login

The QR link holds a single-use token valid for 90 seconds. Redeeming it sets an HttpOnly, Secure session cookie, with CSRF checks and 5 redemptions a minute. Sessions do not expire.

Multi-Session

One server can host multiple tmux sessions with in-app switching.

One Command

npx termbridge starts the server, the Cloudflare tunnel and the QR code. Needs Node 20+, tmux and cloudflared on macOS or Linux; Windows is not supported.

CLI First

Designed as a terminal-first tool with TTY status and QR output.

QR Handoff

Each run prints one QR code with a single-use login link. Scan it on the device you want to use.

Dev Server Preview

Proxy your local Vite app and preview it alongside the terminal.

HMR Passthrough

WebSocket proxying keeps Vite's Hot Module Replacement working.

View Switching

Switch between Terminal and Preview from the Views sheet in the bottom bar.

Full-Stack Workflow

Run terminal commands and watch your app update in real-time.

Why Termbridge

No port forwarding or VPN

An account-less Cloudflare Quick Tunnel gives your local server a public HTTPS URL. The device you connect from only needs a browser.

Full-screen programs work

node-pty attaches to tmux and reports a 256-colour terminal, so TUIs such as htop and vim behave as they do locally.

Sessions outlive the bridge

Ctrl+C closes the tunnel and the server but leaves your tmux sessions running. Start again with --session to attach to one you already have.

Runs on your machine

The server, the WebSocket and the terminal registry live on your computer and listen on 127.0.0.1 by default. Termbridge operates no backend of its own.

Compared with

Other ways to reach a terminal from another device, and where Termbridge differs.

Termbridge compared with other tools
ttyd Good atttyd shares any command over the web with CJK and IME input, ZMODEM and trzsz file transfer, Sixel images, SSL and basic authentication, and runs on macOS, Linux, the BSDs, OpenWrt and Windows. Difference with TermbridgeTermbridge adds the tunnel, a single-use QR login link and a phone control bar, and keeps the shell in tmux so it survives a restart. It is built for macOS and Linux.
sshx Good atsshx shares a terminal with anyone in one command, on an infinite canvas where collaborators see each other's cursors, with end-to-end encryption and binaries for Linux, macOS and Windows. Difference with TermbridgeTermbridge is for reaching your own terminal: each run issues one login link that works once, and traffic goes through a Cloudflare tunnel to the server on your machine.
Tailscale SSH Good atTailscale SSH lets Tailscale handle authentication and authorization of SSH connections in your tailnet, encrypted over WireGuard with node keys, from any device running Tailscale. Difference with TermbridgeTermbridge needs no client or private network on the other device. It gives you a public URL and a QR code, and the terminal opens in the browser.

Sources, checked

Questions and answers

Short answers from the Termbridge documentation.

Install Node 20+, tmux and cloudflared, run npx termbridge, and scan the QR code to open your terminal in a browser on your phone.