
GoTTY
Runs a command-line program and shares it to a web browser.
- Stars
- 19.6k
- Forks
- 1.4k
- Licence
- MIT
- Language
- Go
- Last update
- 2.3 years ago
- Type
- Dev tool
No commits in over a year — check for forks or alternatives before adopting.
What it is
GoTTY is a command line tool that takes a terminal program and serves it as a web page. You start it with a command such as top, then open the address in a browser to see that program running. By default it runs on port 8080 and clients can only watch unless you enable input.
- Watch a process such as top from a browser window
- Share a tmux session with others so they can view your screen
- Run a command inside a Docker container per client using the README example
- Protect access with a username and password or a random URL
Great for
- Developers who want to show a running terminal session to someone in a browser
- People who need to reach a command-line tool from a browser on another machine
- Users who want a quick way to watch a long-running command remotely
- Anyone who will add basic authentication or TLS before sharing
Not ideal for
- Sharing sensitive sessions without TLS, since the README says traffic is not encrypted by default
- Anyone wanting multi-user shared terminals out of the box, since each client gets a new process unless paired with tmux or GNU Screen
- Windows users, since the README says Windows is not supported for building
How to get it
- 1
Install with a package manager
You'll need: Homebrew (optional, for the brew install method) · Go 1.9 or later (only if using go get or building from source)
Install with Homebrew
brew install yudai/gotty/gottyInstall with go get
go get github.com/yudai/gotty - 2
Run it
- Install GoTTY using Homebrew, go get, or a release binary from the Releases page
- Run gotty with a command, for example: gotty top
- Open http://localhost:8080 in your web browser
- 3
Get the most out of it
- Use -c user:pass to enable basic authentication
- Use -t with --tls-crt and --tls-key to enable TLS/SSL
- Use -r to add a random string to the URL
- Use --reconnect or --once to control client reconnection and single-client sessions
- Use a config file at ~/.gotty to set default options
Downloads
Strengths
- Simple: one command turns a terminal program into a web app
- Offers basic auth, random URLs, TLS, and client certificate options
- Open source under the MIT license
Trade-offs
- Input from remote clients is risky; the README warns to be careful with the -w option
- Traffic is unencrypted unless TLS is enabled, and basic auth credentials are sent in plain text
- The README is truncated and the development section is incomplete
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| gotty (this) | 19.6k | Dev tool | beginner | 2.3 years ago | Developers who want to show a running terminal session to someone in a browser |
| ttyd | 12.6k | Dev tool | intermediate | 3 months ago | Developers who want to open a shell on a home server or device from a browser |
| xterm.js | 21.3k | Library | intermediate | 7 days ago | Developers building a browser-based IDE or cloud workspace that needs an integrated terminal |
| upterm | 19k | App | intermediate | 7.5 years ago | Developers who want to try an Electron-based terminal with autocompletion |
| echo | 32.8k | Library | intermediate | 6 days ago | Go developers building REST APIs or backend services |
| brain.js | 14.9k | Library | beginner | 2.1 years ago | JavaScript developers who want to try neural networks without learning a new language |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.