shell-use について
shell-useは、Agentがtmuxセッションを通じて対話型CLIアプリケーションを操作できるMCPサーバーです。ターミナルの取得、キー入力、スクロールに対応し、Dockerでデプロイできます。
主な機能
- 01CLIアプリケーションの操作
- 02ターミナル画面のテキスト取得
- 03キー入力とテキスト送信
- 04ターミナル履歴のスクロール
- 05アクセス可能なセッション名の制限
活用シーン
- 01Agentから対話型CLIを操作
- 02tmuxセッションの出力を確認
- 03実行中のプロセスへキー入力
MCP 対応
許可されたセッションの一覧、ターミナルテキストの取得、キーやテキストの送信、セッション履歴のスクロールを行うツールを公開します。ソケット経由でtmuxに接続し、MCPクライアントに設定します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
mcp.json · 共通設定
起動コマンド
docker run -i --rm -e SHELL_USE_SESSIONS -e SHELL_USE_SOCKET ghcr.io/kyuheon-kr/shell-use:1.0.0設定が必要な環境変数
SHELL_USE_SESSIONSComma-separated list of allowed session namesSHELL_USE_SOCKETPath to tmux socket (default: /tmux/tmux.sock in Docker)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
パッケージ
oci
ghcr.io/kyuheon-kr/shell-use:1.0.0stdioツール
ツール一覧はまだ取得されていません
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
shell-use
エージェントが人間のようにシェルを使えるようにします。
機能
- あらゆる CLI アプリケーション(vim、htop、gdb など)を操作します
- 特殊キー(Ctrl+C、Enter、矢印キーなど)を送信します
- 簡単にデプロイできるよう、Docker 化されています
利用可能なツール
| ツール | 説明 |
|---|---|
list_sessions() | 許可されているセッション名を返します |
capture(session, scroll_back?) | ターミナル画面のテキストを取得します |
send_keys(session, keys) | キー入力(例:Enter、C-c)を送信します |
send_text(session, text, enter?) | テキストをそのまま送信します(enter=True で Enter キーを押します) |
scroll(session, direction, amount?) | 履歴をスクロールします |
exit_scroll_mode(session) | コピー モードを終了します |
セットアップ
1. Docker イメージをビルドする
docker build -t shell-use:latest .
2. tmux セッションを作成する
tmux new-session -s dev
2.1. tmux ソケットのパスを取得する
SOCK="$(tmux display-message -p -F '#{socket_path}')"
[ -S "$SOCK" ] || { echo "tmux socket not found: $SOCK"; exit 1; }
3. MCP クライアントを設定する
Claude Code:
claude mcp add shell-use \
-- docker run -i --rm \
-v "$SOCK":/tmux/tmux.sock \
-e SHELL_USE_SOCKET=/tmux/tmux.sock \
-e SHELL_USE_SESSIONS=dev \
shell-use:latest
Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"shell-use": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/tmp/tmux-1000/default:/tmux/tmux.sock",
"-e", "SHELL_USE_SOCKET=/tmux/tmux.sock",
"-e", "SHELL_USE_SESSIONS=dev",
"shell-use:latest"
]
}
}
}
/tmp/tmux-1000/defaultを、次のコマンドで取得したパスに置き換えてください。tmux display-message -p -F '#{socket_path}'。
環境変数
| 変数 | 説明 | 必須 |
|---|---|---|
SHELL_USE_SESSIONS | 許可されているセッション名をカンマ区切りで指定したリスト | はい |
SHELL_USE_SOCKET | tmux ソケットのパス(Docker でのデフォルトは /tmux/tmux.sock) | いいえ |
謝辞
browser-use に着想を得ています。
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。