tmux
tmuxセッションをリモートで制御し、キーストロークを送信してペイン出力をキャプチャすることで、Python、Node、gdbなどのインタラクティブなCLIを操作できます。
description の原文を見る
Remote control tmux sessions for interactive CLIs (python, node, gdb, etc.) by sending keystrokes and capturing pane output.
SKILL.md 本文
🚀 tmux スキル
tmux セッションをプログラムで制御して、対話的なターミナルアプリケーション(REPL、デバッガ、データベース)をノンブロッキングで実行します。
📋 クイックスタート(簡単な方法)
自動出力キャプチャ + AI 分析用に LogPilot を使用します:
# Install LogPilot
cargo install logpilot
# Watch your tmux session
logpilot watch mysession --pane mysession:0.0
# Ask AI about what's happening
logpilot ask "What errors appeared?"
logpilot summarize --last 5m
Claude Code に追加: claude mcp add --scope user logpilot -- logpilot mcp-server
📋 手動制御(生の tmux)
個人用 tmux との競合を避けるために独立したソケットを使用します:
# Setup socket
export SOCKET="${TMPDIR:-/tmp}/ai-tmux-sockets/agent.sock"
mkdir -p "$(dirname "$SOCKET")"
# Create session and run
SESSION=agent-py
tmux -S "$SOCKET" new -d -s "$SESSION"
tmux -S "$SOCKET" send-keys -t "$SESSION" 'python3 -q' Enter
# Capture output manually
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION" -S -100
# Cleanup
tmux -S "$SOCKET" kill-session -t "$SESSION"
📋 コアコマンド
| 操作 | コマンド |
|---|---|
| 新規セッション | tmux -S "$SOCKET" new -d -s NAME |
| キー送信 | tmux -S "$SOCKET" send-keys -t NAME 'cmd' Enter |
| リテラル送信 | tmux -S "$SOCKET" send-keys -t NAME -l 'text' |
| 出力をキャプチャ | tmux -S "$SOCKET" capture-pane -p -J -t NAME -S -N |
| セッション一覧 | tmux -S "$SOCKET" list-sessions |
| セッション終了 | tmux -S "$SOCKET" kill-session -t NAME |
コントロールキー: C-c (SIGINT)、C-d (EOF)、C-z (中断)、Escape
📋 対話的なレシピ
🔁 Python REPL
SESSION=agent-py
SOCKET="${TMPDIR:-/tmp}/ai-tmux-sockets/agent.sock"
tmux -S "$SOCKET" new -d -s "$SESSION"
tmux -S "$SOCKET" send-keys -t "$SESSION" 'PYTHON_BASIC_REPL=1 python3 -q' Enter
sleep 1
tmux -S "$SOCKET" send-keys -t "$SESSION" -l 'print(2+2)'
tmux -S "$SOCKET" send-keys -t "$SESSION" Enter
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION" -S -10
tmux -S "$SOCKET" kill-session -t "$SESSION"
🔁 GDB デバッガ
SESSION=agent-gdb
SOCKET="${TMPDIR:-/tmp}/ai-tmux-sockets/agent.sock"
tmux -S "$SOCKET" new -d -s "$SESSION"
tmux -S "$SOCKET" send-keys -t "$SESSION" 'gdb --quiet ./program' Enter
tmux -S "$SOCKET" send-keys -t "$SESSION" 'set pagination off' Enter
tmux -S "$SOCKET" send-keys -t "$SESSION" 'run' Enter
# ... later ...
tmux -S "$SOCKET" send-keys -t "$SESSION" C-c
tmux -S "$SOCKET" send-keys -t "$SESSION" 'bt' Enter
tmux -S "$SOCKET" send-keys -t "$SESSION" 'quit' Enter 'y' Enter
Node.js / psql など
同じパターン: new → send-keys → capture-pane → kill-session
📋 LogPilot リファレンス
| タスク | コマンド |
|---|---|
| セッション監視 | logpilot watch SESSION |
| ペイン監視 | logpilot watch SESSION --pane TARGET |
| AI サマリ | logpilot summarize --last 10m |
| 質問 | logpilot ask "Why is it failing?" |
| ログ付き | logpilot ask "Explain" --include-logs |
| ステータス | logpilot status |
MCP セットアップ
{
"mcpServers": {
"logpilot": {
"command": "logpilot",
"args": ["mcp-server"]
}
}
}
または: claude mcp add --scope user --transport stdio logpilot -- logpilot mcp-server
🎨 ベストプラクティス
- LogPilot を使用する — 出力をキャプチャして分析する最も簡単な方法です
- 常に
-S "$SOCKET"を使用する — ユーザーの tmux との競合を防ぎます -lフラグを使用する — リテラルテキスト、シェル展開の問題がありませんPYTHON_BASIC_REPL=1— 対話的な Python に必須です- 完了時にセッションを終了する — リソースリークを防ぎます
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- jellydn
- リポジトリ
- jellydn/my-ai-tools
- ライセンス
- MIT
- 最終更新
- 2026/5/10
Source: https://github.com/jellydn/my-ai-tools / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。