TailCode — TailscaleでOpenCodeを簡単公開するターミナルウィザード

DevOps

概要

TailCodeはローカルで動くOpenCodeインスタンスをTailscaleのtailnet経由で公開するためのシンプルなターミナルウィザードです。ユーザーがTailscaleに接続していない場合はサインインを促し、ローカルでopencodeを127.0.0.1にバインドして起動する手順を案内します。その後、tailscale serveでサービスを公開し、tailnetアクセス用のURLとQRコードを表示してスマートフォン等からも簡単にアクセスできるようにします。コマンドの存在チェックやエラーチェック、対話型プロンプトを組み合わせて、手作業を減らすことが目的です。

GitHub

リポジトリの統計情報

  • スター数: 36
  • フォーク数: 1
  • ウォッチャー数: 36
  • コミット数: 5
  • ファイル数: 11
  • メインの言語: TypeScript

主な特徴

  • Tailscaleとopencodeのインストール/接続をチェックして対話的に導くCLIウィザード
  • ローカルでopencodeを127.0.0.1で起動することを推奨し、安全に公開するワークフロー
  • tailscale serveを用いたtailnet内での公開と、アクセス用URLとQRコードの生成・表示
  • 軽量でシンプル、限定された目的(OpenCode公開)に特化した実装

技術的なポイント

TailCodeはTypeScriptで書かれた小さなCLIツールで、実装上のコアは「外部コマンドの存在確認」「対話的プロンプト」「プロセス管理」「公開URLの取得と表示」の4点に集約されます。まず起動時にtailscaleコマンドとopencodeコマンドの存在を確認し、なければ案内を出すことで前提条件の不足を防ぎます。Tailscaleに未ログインの場合はサインインフロー(CLIのQRコード/ブラウザフロー)に誘導し、ユーザーがtailnetに参加できるようにします。

ローカルのopencodeは127.0.0.1で起動するように促され、これにより外部からの直接アクセスを防ぎつつtailscale serveによってtailnet上で公開する安全なモデルを採用しています。ツールはopencodeを子プロセスとして起動するか、既存のローカルサーバーを利用することを想定しており、必要に応じてプロセスの開始・終了を管理します。公開手順ではtailscale serveコマンドを発行し、その結果からtailnet向けの公開URLを抽出して表示、さらに端末上でQRコードを生成してスマホでも素早くアクセスできるようにします。

設計面では依存する外部コマンドの出力に依拠するため、各コマンドのエラーハンドリングとタイムアウト、ユーザーへの明確なフィードバックが重要です。また、127.0.0.1バインド+tailscale経由での公開はセキュリティ上の利点があり、認証・公開範囲はtailnetのポリシーに依存します。クロスプラットフォームでの実行を意識した実装(シェルコマンドの呼び出しやパス解決)や、ユーザーフィードバックのための対話型UI(プロンプト、ステータス表示、QRコード)に重点が置かれています。小規模プロジェクトのため内部は単純明快で、拡張や自動化への取り込みも容易です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • .oxfmtrc.json: file
  • AGENTS.md: file
  • CLAUDE.md: file
  • LICENSE: file

…他 6 ファイル

まとめ

Tailscaleを使ったローカル公開の手間を大幅に削減する、実用的で軽量なCLIツールです。

リポジトリ情報:

READMEの抜粋:

TailCode

TailCode is a small terminal wizard that sets up remote access to OpenCode over your Tailscale tailnet.

It walks you through:

  • connecting/logging into Tailscale
  • starting opencode serve on 127.0.0.1
  • publishing it with tailscale serve
  • showing the tailnet URL and a QR code for phone access

How It Works

  • TailCode checks that tailscale and opencode are installed
  • If Tailscale is not connected, it prompts you to sign in (including QR-based flows from Tailscale)
  • I…