Web-based terminal emulator. Opens a real PTY in the browser over WebSocket.
- Real PTY with full job control, signals, and terminal capabilities
- Persistent sessions — reconnect without losing state
- Scrollback replay (configurable, 256 KiB default)
- Session sharing — multiple clients on one session
- View mode — read-only observers with automatic window size sync
- Lightweight binary WebSocket protocol
- Single static binary (frontend embedded via
rust-embed) - Multi-arch Docker images (
amd64/arm64) — minimal scratch and playground variants
tty-web --address 127.0.0.1 --port 9090 --shell /bin/zshOr with Docker:
docker run --rm -p 9090:9090 ghcr.io/alviner/tty-web:playgroundThe default latest tag is a minimal scratch image for COPY --from:
COPY --from=ghcr.io/alviner/tty-web:latest /tty-web /usr/local/bin/tty-webFull documentation is available at alviner.github.io/tty-web.
make build # debug
make release # release
make docker # docker image