github.com/yudai/gotty ↗
Share your terminal as a web application
Open this visualization on its own page →
About yudai/gotty
GoTTY is a command line tool written in Go that exposes terminal sessions as web applications through a simple WebSocket interface. When you run a command with GoTTY, it starts a web server that broadcasts the command's terminal output to connected browsers in real time, allowing you to view and interact with CLI tools from any web browser without needing SSH or special client software.
The application uses xterm.js and hterm JavaScript libraries to render a functional terminal emulator in the browser, while GoTTY itself acts as a lightweight relay server forwarding TTY output to clients and optionally receiving their input back. By default, clients can only view terminal output, but the tool supports write access through command line flags, basic authentication for restricting connections, random URL generation for access control, and TLS/SSL encryption for secure communication. GoTTY also integrates well with terminal multiplexers like tmux and GNU Screen for sharing a single session across multiple clients.
The project is primarily useful for system administrators, developers, and educators who need to share terminal sessions with others over the web, watch remote processes execute, or demonstrate command line operations in a browser-based environment. It offers deployment flexibility through Docker containers and provides various security options for different trust levels, though the architecture keeps traffic unencrypted by default unless explicitly configured otherwise.