
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
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-url <url> | Your address when behind your own reverse proxy | — |
--public | Allow public tunnel access (no Microsoft login) | Off |
-i, --interactive | Interactive setup wizard | Off |
--reset-auth | Sign out all devices and remove all passkeys | 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). Each sign-in is a revocable device session in an HttpOnly, SameSite=Strict cookie (remembered devices: 7 days without use, 30 days max, stored only as hashes; without “Remember this device”: 2 hours idle, 12 hours max, never written to disk), passkeys give phishing-resistant one-tap unlock, login is rate-limited to 5 attempts per minute, QR codes contain single-use share tokens (5-min expiry), cross-site API and WebSocket requests are rejected, and security headers (X-Frame-Options, CSP, nosniff) are set on app responses (the /preview proxy passes the previewed app's own headers through). termbeam --reset-auth signs out every device and removes every passkey.
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
The npm package termbeam receives a total of 25 weekly downloads. As such, termbeam popularity was classified as not popular.
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.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.