explaingit

tsl0922/ttyd

11,612CAudience · ops devopsComplexity · 2/5Setup · easy

TLDR

A tool that shares a terminal session through a web browser, run it on any server and anyone with the URL can view or interact with the terminal, with optional password, HTTPS, and file transfer support.

Mindmap

mindmap
  root((repo))
    What it does
      Browser-based terminal
      Remote shell access
      No SSH required
    Features
      Password and HTTPS
      Read-only or writable
      File transfer ZMODEM
      Unicode and image output
    Platforms
      Linux and macOS
      Windows and OpenWrt
      Embedded devices
    Install options
      Homebrew and apt
      WinGet on Windows
      Prebuilt binaries
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Access a remote server shell from a browser when SSH is blocked or unavailable on the network.

USE CASE 2

Share a read-only terminal session so a colleague can watch a live demo without installing anything.

USE CASE 3

Run a web terminal on an embedded device or OpenWrt router that lacks SSH infrastructure.

USE CASE 4

Set up a password-protected HTTPS terminal for a development server accessible from any browser.

Tech stack

ClibuvWebGLJavaScript

Getting it running

Difficulty · easy Time to first run · 5min

Precompiled binaries available via Homebrew, apt, and WinGet, no compilation needed for most platforms.

No license information was mentioned in the explanation.

In plain English

ttyd is a command-line tool that lets you access a terminal session through a web browser. You run a command on your server or computer, and anyone with access to the web address (and optionally a password) can interact with that terminal in their browser, as if they were typing directly on the machine. A common use case is remote access without needing SSH or a VPN: you start ttyd on a server, point it at a shell or any other command, and access it at a URL in a browser. It is also popular on embedded devices and router firmware such as OpenWrt, where full SSH infrastructure is not always available. The tool is built on libuv for networking and uses WebGL for rendering the terminal in the browser, which makes it fast. It supports full-featured terminal behavior including Unicode, Chinese/Japanese/Korean character input, and image output via Sixel (a protocol for displaying images inside a terminal window). File transfers between the browser session and the server are supported through ZMODEM and trzsz protocols. Security options are available: you can require a username and password, enable SSL/TLS encryption so the connection is HTTPS rather than plain HTTP, or restrict access to a single client at a time. By default the terminal is read-only, so remote viewers can watch without being able to type. A writable flag opens up interactive input. ttyd runs on macOS, Linux, FreeBSD, OpenBSD, Windows, and OpenWrt. You can install it through Homebrew on macOS, apt on Debian/Ubuntu, WinGet on Windows, or download a precompiled binary from the project's releases page.

Copy-paste prompts

Prompt 1
I installed ttyd on my Linux server. Show me the command to start a password-protected bash session on port 7681 with HTTPS using a self-signed certificate.
Prompt 2
Help me configure ttyd as a systemd service on Ubuntu so it starts automatically on boot and exposes a read-only terminal.
Prompt 3
I want to use ttyd on an OpenWrt router to get a browser-based shell. Walk me through installing the package and securing it with a username and password.
Prompt 4
Show me how to configure ttyd to allow only one connected client at a time and to close idle sessions after 30 minutes.
Open on GitHub → Explain another repo

← tsl0922 on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.