tail-pulse

command module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2026 License: MIT Imports: 7 Imported by: 0

README

Tail-Pulse

Tailscale内の全デバイスの稼働状況を監視する、Watch Dogs風デザインのTUIモニタリングツールです。

機能

  • リアルタイム・モニタリング: Tailscale statusを3秒ごとに取得し、全ノードの状態を表示。
  • コネクティビティ・チェック:
    • 各ノードへのPing (レイテンシ) を自動測定。
    • スパークライン(ミニグラフ)による直近の通信品質の可視化。
    • ポートスキャン: SSH(22) / Web(80,443) / RDP(3389) / VNC(5900) の自動検出。
  • デザイン・UI:
    • Charmbracelet Bubble Tea / Lip Gloss を使用したスタイリッシュなTUI。
    • OSごとのアイコン表示。
    • ダイレクト接続/リレー接続の判別表示。
    • ノード詳細パネル(ポートスキャン結果・DNSName・タグ・ルート表示)。
    • SSH接続時のハックアニメーション演出。
  • SSH連携:
    • ノードを選択して Enter で詳細画面を開き、sでSSH接続(SSHポートはssh -Gで自動検出)。
    • ワンキーでIPアドレスやSSHコマンド・Taildropコマンドをクリップボードにコピー。
  • ノード検索: / キーでホスト名・IPによるリアルタイム絞り込み。
  • ファイル転送: Taildrop経由でのファイル送受信(詳細画面でf送信・g受信)。
  • Wake-on-LAN: 設定したMACアドレスにマジックパケットを送信(同一LAN外はSSHプロキシ経由にも対応、詳細画面のw)。
  • デスクトップ通知: ノードのオンライン/オフライン切り替わりを通知。
  • 複数タブ:
    • Devices: ノード一覧(デフォルト)
    • Exit Nodes: Exit Node候補の一覧・切り替え
    • Serve: tailscale serve/funnelのステータス表示
    • Logs: journalctl -u tailscaledのライブログ(エラー/警告を色分け)
    • Daemon: tailscale up/down・Shields up/downの実行

使い方

キーバインド

Devices / Exit Nodes タブ(一覧画面)

キー アクション
j / 下に移動
k / 上に移動
PgUp / PgDn 10行ジャンプ
/ ノード検索
o オンラインのみ表示を切り替え
r 手動リフレッシュ
s ソート順を切り替え(Name → IP → OS → Ping)
Enter 選択中のノードの詳細画面を開く
c 選択中のノードのTailscale IPをコピー
S 選択中のノードへのSSHコマンドをコピー
t Taildropコマンド (tailscale file cp <file> <hostname>:) をコピー
E (Exit Nodesタブのみ) 選択中のノードをExit Nodeに設定
Tab / Shift+Tab タブ切り替え
q / Ctrl+C 終了

詳細画面(一覧でEnter

キー アクション
s SSH接続を実行
f 選択中のノードにファイルを送信(Taildrop)
g 保留中のTaildropファイルを受信
a サブネットルートを許可(tailscale up --accept-routes
w Wake-on-LANパケットを送信
Esc / q / Backspace 一覧画面に戻る

Logsタブ: j/kPgUp/PgDnでスクロール Serveタブ: rで再取得 Daemonタブ: u=up, d=down, s=Shields Up, S=Shields Down

インストール

go installを使う場合(Go 1.21以上)

go install github.com/kuroiko0429/tail-pulse@latest

ビルド済みバイナリを使う場合

ReleasesからOSに合ったバイナリをダウンロードして実行権限を付与するだけ。

chmod +x tail-pulse
./tail-pulse

ソースから実行する場合

git clone https://github.com/kuroiko0429/tail-pulse.git
cd tail-pulse
go run main.go

設定

初回起動時に ~/.config/tail-pulse/config.yaml が自動生成されます。

theme:
  cyan: "#83a598"
  dark_grey: "#928374"
  red: "#fb4934"
  white: "#ebdbb2"
  green: "#8ec07c"
  yellow: "#fabd2f"
  background: "#282828"
  tab_active: "#83a598"
  tab_inactive: "#3c3836"
  highlight: "#d3869b"
show_ping: true
cyber_glitch: true
ping_interval: 15       # 秒
ports: {}                # ホスト名 -> SSHポートの上書き
mac_addresses: {}        # ホスト名 -> MACアドレス(Wake-on-LAN用)
wol_proxy: ""             # 別LANのノードを起こす際に踏み台にするホスト名

デフォルトはGruvboxテーマ。theme以下の色コードを書き換えれば好きな配色にできる。

依存関係

システム要件
  • Tailscale CLI: tailscale コマンドがパスに通っている必要があります。
  • Clipboardツール: コピー機能を使用するために以下のいずれかが必要です。
    • wl-copy (Wayland)
    • pbcopy (macOS)
    • xclip (X11)
  • journalctl: Logsタブはjournalctl -u tailscaledが使える環境(systemd)が前提です。
  • Nerd Fonts: アイコンを正しく表示するために推奨されます。
Goパッケージ
  • github.com/charmbracelet/bubbletea: TUIフレームワーク
  • github.com/charmbracelet/lipgloss: スタイリング・レイアウト
  • github.com/charmbracelet/bubbles: TUIコンポーネント
  • github.com/gen2brain/beeep: デスクトップ通知

作者 / ライセンス

MIT License

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL