Repolode
tsl0922

tsl0922/ttyd

ブラウザ上のxterm.jsターミナルを通じて、任意のターミナルプログラムをWeb上で共有できるコマンドラインツールです。

スター
12,536
フォーク
1,212
未解決の Issue
122
最終コミット
2 か月前

これは何?

ttydは疑似端末でコマンドを実行し、HTTPとWebSocket経由で公開します。リンクを知っている人は誰でもブラウザからセッションを閲覧でき、許可されていれば入力もできます。libuvをベースにCで実装されており、ブラウザ側ではWebGL2描画に対応したxterm.jsを使用します。

CJK文字とIME入力、ZMODEMおよびtrzszによるファイル転送、Sixel画像出力に対応しています。アクセス制御には、Basic認証、リバースプロキシ用の認証ヘッダー、クライアント証明書、OpenSSLまたはMbed TLSによるSSLを利用できます。ポートまたはUNIXソケット、コマンドの実行ユーザーとグループ、読み取り専用・書き込み可能モード、クライアント数の上限などをオプションで設定できます。

macOS、Linux、FreeBSD、OpenBSD、OpenWrt、Windows向けのビルド済みバイナリとパッケージが提供されています。

主な機能

  • 01WebGL2描画対応のxterm.jsを使って、任意のコマンドラインプログラムをブラウザ上で共有できます。
  • 02CJK文字とIME入力に対応しています。
  • 03ZMODEMとtrzszによるファイル転送を利用できます。
  • 04Sixel画像を出力できます。
  • 05Basic認証、認証プロキシ用ヘッダー、クライアント証明書、SSLを利用できます。
  • 06macOS、Linux、BSD、OpenWrt、Windowsで動作します。

ユースケース

  • 同僚やサポートエンジニアに、シェルセッションへの一時的なブラウザアクセスを提供する。
  • OpenWrtを実行するルーターやホームサーバーで、Webからアクセスできるターミナルを動かす。
  • 長時間実行するCLIツールや監視コマンドをWebページ経由で公開する。

クイックスタート

  1. 1

    macOSにHomebrewでインストール

    brew install ttyd
  2. 2

    Debian/Ubuntuにインストール

    sudo apt install ttyd
  3. 3

    WinGetでWindowsにインストール

    winget install tsl0922.ttyd

使う前に知っておきたいこと

  • 一部のインストール方法(Gentoo、Windowsでのコンパイル)では、コマンド1つで済まず、手動の作業が必要です。

収録されている特集

トピック

よくある質問

ttyd とは?
ブラウザ上のxterm.jsターミナルを通じて、任意のターミナルプログラムをWeb上で共有できるコマンドラインツールです。 ttydは疑似端末でコマンドを実行し、HTTPとWebSocket経由で公開します。リンクを知っている人は誰でもブラウザからセッションを閲覧でき、許可されていれば入力もできます。libuvをベースにCで実装されており、ブラウザ側ではWebGL2描画に対応したxterm.jsを使用します。
ttyd は無料で使えますか?ライセンスは?
ttyd は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
ttyd は今もメンテナンスされていますか?
半年以内に更新あり。ttyd の最終コミットは 2026年8月12日 です。
ttyd は何に使えますか?
同僚やサポートエンジニアに、シェルセッションへの一時的なブラウザアクセスを提供する。 OpenWrtを実行するルーターやホームサーバーで、Webからアクセスできるターミナルを動かす。 長時間実行するCLIツールや監視コマンドをWebページ経由で公開する。
ttyd のインストール方法は?
macOSにHomebrewでインストール: brew install ttyd Debian/Ubuntuにインストール: sudo apt install ttyd WinGetでWindowsにインストール: winget install tsl0922.ttyd
ttyd はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/tsl0922/ttyd

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト