Web Terminal nfltr terminal
nfltr terminal opens a full interactive terminal in your browser using xterm.js over HTTP polling. Unlike the Browser SSH Terminal (which requires an SSH server), this command spawns a real PTY directly — no sshd, no SSH keys, no configuration.
Uses HTTP polling instead of WebSocket. Works through corporate firewalls, HTTP proxies, CDNs, and load balancers that don't support WebSocket upgrades.
Quick Start
# Open a web terminal with password protection
nfltr terminal --basic-auth admin:secret --name my-server
# Custom shell (default: $SHELL or /bin/sh)
nfltr terminal --shell /bin/bash --basic-auth ops:pass
Visit the public URL shown in the terminal. A full xterm.js terminal renders in the browser with the server's shell.
How It Works
The browser sends keystrokes via HTTP POST and polls for output. The agent allocates a real pseudo-terminal (PTY) and spawns your shell. Full ANSI color, cursor movement, and window resize are supported.
Terminal Preview
user@my-server:~$ ls -la
total 48
drwxr-xr-x 6 user user 4096 Mar 29 14:30 .
drwxr-xr-x 3 root root 4096 Mar 15 09:00 ..
-rw-r--r-- 1 user user 220 Mar 15 09:00 .bash_profile
drwxr-xr-x 4 user user 4096 Mar 28 11:23 projects
user@my-server:~$ ▌
Web Terminal vs Browser SSH Terminal
| Feature | Web Terminal (nfltr terminal) | Browser SSH (nfltr tcp 22) |
|---|---|---|
| SSH server required | No — spawns PTY directly | Yes — requires sshd |
| Transport | HTTP polling | WebSocket |
| Proxy/firewall compatible | Works through any HTTP proxy | Requires WebSocket support |
| Authentication | HTTP Basic Auth | SSH password or public key |
| Multiple sessions | Single PTY per agent | One session per SSH connection |
| Latency | Slightly higher (polling interval) | Lower (persistent connection) |
| Best for | Quick access, restrictive networks | Full SSH features, SCP |
Features
🖥️ Full xterm.js
256-color, mouse events, scrollback, clipboard. xterm.js 5.5.0 with fit addon.
🔌 No WebSocket
Pure HTTP polling. Works through corporate proxies, CDNs, and firewalls that block WebSocket.
🖥️ Real PTY
Allocates a real pseudo-terminal. Full interactive shell with job control, tab completion, vi/emacs.
📐 Auto Resize
Terminal dimensions sync automatically when you resize the browser window.
🔐 Basic Auth
Protect with --basic-auth user:pass. Always use TLS in production.
📱 Mobile Ready
Works on phones and tablets. Touch-friendly with on-screen keyboard support.
Flags
| Flag | Default | Description |
|---|---|---|
--basic-auth | Protect with HTTP Basic Auth (user:pass) | |
--shell | $SHELL | Shell to spawn (falls back to /bin/sh) |
--name | Custom agent name |
Without --basic-auth, anyone with the URL gets full shell access. The terminal runs as the same OS user that started nfltr terminal. Always use authentication and TLS when exposing over the internet.
Full terminal from any browser
No SSH server, no WebSocket, no configuration. Just nfltr terminal and a URL.