汎用ソフトウェア開発⭐ リポ 75品質スコア 78/100
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