tmux-terminal について
tmux-terminalは、TUI操作や長時間プロセスの管理、出力の取得に使うターミナルセッション用スキルです。tmuxでキー入力を送り、画面を読み取り、セッションを維持します。
主な機能
- 01デタッチしたtmuxセッションの作成
- 02コマンドやキー入力の送信
- 03ターミナル画面出力の取得
- 04長時間プロセスの維持と停止
- 05TUIの操作と確認
活用シーン
- 01ralph-tuiなどの対話型CLIのテスト
- 02サーバーやループ処理のバックグラウンド実行
- 03QAレポート用のリアルタイム出力収集
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mikeyobrien/ ralph-orchestrator --skill tmux-terminalインストール後、Claude Code で/tmux-terminalを入力して読み込まれたか確認します。
詳細
tmux-terminal
概要
tmux を使用して、ralph-tui などの TUI ワークフローを含む対話型ターミナルセッションを操作します。tmux を使うと、キー入力を送信し、画面出力をキャプチャして、手順の合間もプロセスを実行し続けられます。
使用する場面
ralph-tuiや対話型 CLI プロンプトをテストする場合- 長時間実行するプロセス(ウェブサーバー、ループ、ウォッチモード)を管理する場合
- QA レポート用にターミナルのライブ出力をキャプチャする場合
- 画面を再描画するアプリケーションを操作する場合
前提条件
tmuxがインストールされていること(macOS ではプリインストールされています)
確認します:
tmux -V
基本コマンド
デタッチ状態のセッションを作成します:
tmux new-session -d -s <name>
コマンドを送信します(実行するには Enter を追加します):
tmux send-keys -t <name> "<command>" Enter
画面出力をキャプチャします:
tmux capture-pane -t <name> -p
完了したらセッションを終了します:
tmux kill-session -t <name>
特殊キー
キー名を指定して send-keys を使用します:
EnterC-c(Ctrl-C)C-d(Ctrl-D)TabEscapeUp、Down、Left、Right
例:
tmux send-keys -t <name> Up
tmux send-keys -t <name> C-c
TUI の操作パターン
ralph-tui を起動する
tmux new-session -d -s ralph-tui
tmux send-keys -t ralph-tui "cargo run -p ralph-tui" Enter
TUI 内を移動する
tmux send-keys -t ralph-tui Down
tmux send-keys -t ralph-tui Enter
画面をキャプチャして解析する
tmux capture-pane -t ralph-tui -p -S -200
画面の出力が多い場合は、-S -200 を使用して直近の 200 行をキャプチャします。
長時間実行するプロセスの管理
- サーバーやループは tmux セッション内で起動し、実行し続けるようにします。
capture-paneを使用して状態を確認します(「listening」や「ready」というテキストを探します)。C-cを押してからkill-sessionを実行し、正常に停止します。
例:
tmux new-session -d -s ralph-web
tmux send-keys -t ralph-web "cargo run -p ralph-cli -- web" Enter
tmux capture-pane -t ralph-web -p | rg -n "listening|ready"
tmux send-keys -t ralph-web C-c
tmux kill-session -t ralph-web
注意事項
- セッション名は短く、一意なものにします。
- バックグラウンドプロセスが残らないよう、セッションは必ずクリーンアップします。
- 出力が空に見える場合は、少し待ってからもう一度キャプチャします。
コメント
Markdown 対応