Skip to content

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
Step-by-step guide: how to use GoTTYInstall, first run, examples, tips and FAQs

How to get it

  1. 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/gotty

    Install with go get

    go get github.com/yudai/gotty
  2. 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. 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

ProjectStarsTypeLevelUpdatedBest for
gotty (this)19.6kDev toolbeginner2.3 years agoDevelopers who want to show a running terminal session to someone in a browser
ttyd12.6kDev toolintermediate3 months agoDevelopers who want to open a shell on a home server or device from a browser
xterm.js21.3kLibraryintermediate7 days agoDevelopers building a browser-based IDE or cloud workspace that needs an integrated terminal
upterm19kAppintermediate7.5 years agoDevelopers who want to try an Electron-based terminal with autocompletion
echo32.8kLibraryintermediate6 days agoGo developers building REST APIs or backend services
brain.js14.9kLibrarybeginner2.1 years agoJavaScript 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.