
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
Beam your terminal to any device — mobile-optimized web terminal with multi-session support
TermBeam lets you access your terminal from a phone, tablet, or any browser — no SSH, no port forwarding, no configuration needed. Run one command and scan the QR code.
https://github.com/user-attachments/assets/9dd4f3d7-f017-4314-9b3a-f6a5688e3671
![]() | ![]() | ![]() | ![]() |
npx termbeam
Or install globally:
npm install -g termbeam
termbeam
Scan the QR code printed in your terminal, or open the URL on any device.
termbeam # tunnel + auto-password (default)
termbeam --password mysecret # custom password
termbeam --no-tunnel # LAN only
termbeam -i # interactive setup wizard
default and the server auto-spawns it on startup, so connecting any client lands on a ready terminal. Preferences (theme, fonts, defaults, custom keys, workspaces) are persisted server-side in ~/.termbeam/prefs.json and sync across devices..md files rendered with GitHub Flavored Markdown directly in the browserTermBeam starts a lightweight web server that spawns a PTY (pseudo-terminal) with your shell, serves a mobile-optimized xterm.js UI via Express, and bridges the two over WebSocket. Multiple clients can view the same session simultaneously, and sessions persist when all clients disconnect.
flowchart LR
A["Phone / Browser"] <-->|WebSocket| B["TermBeam Server"]
B <-->|PTY| C["Shell (zsh/bash)"]
B -->|Express| D["Web UI (xterm.js)"]
B -.->|Optional| E["DevTunnel"]
| Flag | Description | Default |
|---|---|---|
--password <pw> | Set access password | Auto-generated |
--no-password | Disable password protection | — |
--tunnel | Create an ephemeral devtunnel URL | On |
--no-tunnel | Disable tunnel (LAN-only) | — |
--persisted-tunnel | Reusable devtunnel URL (stable across restarts) | Off |
--port <port> | Server port | 3456 |
--host <addr> | Bind address | 127.0.0.1 |
--lan | Bind to all interfaces (LAN access) | Off |
--public | Allow public tunnel access (no Microsoft login) | Off |
-i, --interactive | Interactive setup wizard | Off |
--log-level <level> | Log verbosity (error/warn/info/debug) | info |
For all flags, subcommands, and environment variables, see the Configuration docs.
Run TermBeam as an always-on background service using the built-in PM2 integration:
termbeam service install # interactive wizard — configures PM2, password, tunnel, boot auto-start
termbeam service status # check process info, uptime, memory
termbeam service logs # tail live logs
termbeam service restart # restart after config changes
termbeam service uninstall # stop and remove the service
The installer checks for PM2 (and offers to install it), then walks you through password, port, access mode, and boot auto-start options. Config is saved to ~/.termbeam/ecosystem.config.js.
For systemd, launchd, and Windows Task Scheduler setup, see the Running in Background docs.
💡 Keep the host awake so the service stays reachable while you're away. macOS: pair with Amphetamine (process trigger on
node) or wrap withcaffeinate -dims. Windows: enable PowerToys Awake and disable network adapter power saving. Linux: usesystemd-inhibitin your unit file. See Keeping the Host Awake for the full setup.
TermBeam auto-generates a password and creates a secure tunnel by default, binding to 127.0.0.1 (localhost only). Auth uses httpOnly cookies with 24-hour expiry, login is rate-limited to 5 attempts per minute, QR codes contain single-use share tokens (5-min expiry), and security headers (X-Frame-Options, CSP, nosniff) are set on all responses.
For the full threat model and safety checklist, see SECURITY.md. For detailed security documentation, see the Security Guide.
Contributions welcome — see CONTRIBUTING.md.
See CHANGELOG.md for version history.
Special thanks to @tamirdresher for the blog post that inspired the solution idea for this project, and for his cli-tunnel implementation.
FAQs
Beam your terminal to any device — mobile-optimized web terminal with multi-session support
We found that termbeam demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.