mcpField
C
computer-use

computer-use

github.com/ram-raghav-sエージェントワークフロー1106 回インストール37 週間前に更新
リポジトリ

computer-use について

computer-useは、仮想XFCEディスプレイを使ってヘッドレスLinuxサーバー上のデスクトップアプリを操作するスキルです。スクリーンショット、マウス、キーボード操作に加え、VNCやブラウザーでのライブ表示にも対応します。

主な機能

  1. 01Xvfbによる仮想XFCEディスプレイ
  2. 02画面と指定領域のキャプチャ
  3. 03マウスとキーボードの操作スクリプト
  4. 04VNCとブラウザーでのデスクトップ表示
  5. 05自動再起動に対応するsystemdサービス

活用シーン

  1. 01ヘッドレスVPSでのデスクトップアプリ操作
  2. 02画面を確認しながら操作結果を検証
  3. 03SSHトンネル経由でのリモートデスクトップ表示

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ram-raghav-s/computer-use --skill computer-use

インストール後、Claude Code で/computer-useを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

scripts/
drag.sh
cursor_position.sh
key.sh
mouse_down.sh
hold_key.sh
minimal-desktop.sh
screenshot.sh
mouse_up.sh
click.sh
scroll.sh
mouse_move.sh
setup-vnc.sh
type_text.sh
wait.sh
vnc_stop.sh
zoom.sh
vnc_start.sh

詳細

コンピューター操作スキル

ヘッドレスの Linux サーバー上で、デスクトップ GUI を全面的に操作できます。仮想ディスプレイ(Xvfb + XFCE)を作成することで、物理モニターのない VPS/クラウドインスタンス上でもデスクトップアプリケーションを実行して操作できます。

環境

  • ディスプレイ::99
  • 解像度:1024x768(XGA、Anthropic 推奨)
  • デスクトップ:XFCE4(最小構成 — xfwm4 + パネルのみ)

クイックセットアップ

セットアップスクリプトを実行して、すべて(systemd サービス、ちらつきのない VNC)をインストールします。

./scripts/setup-vnc.sh

以下がインストールされます。

  • :99 の Xvfb 仮想ディスプレイ
  • 最小構成の XFCE デスクトップ(xfwm4 + パネル、xfdesktop なし)
  • 安定性フラグを設定した x11vnc
  • ブラウザーからアクセスするための noVNC

すべてのサービスは起動時に自動起動し、クラッシュ時に自動再起動します。

アクション一覧

アクションスクリプト引数説明
スクリーンショットscreenshot.sh—画面をキャプチャ → base64 PNG
カーソル位置cursor_position.sh—現在のマウス位置 X,Y を取得
マウス移動mouse_move.shx y指定座標にマウスを移動
左クリックclick.shx y left指定座標を左クリック
右クリックclick.shx y right右クリック
中クリックclick.shx y middle中クリック
ダブルクリックclick.shx y doubleダブルクリック
トリプルクリックclick.shx y tripleトリプルクリック(行を選択)
左クリックしてドラッグdrag.shx1 y1 x2 y2始点から終点までドラッグ
左マウスボタンを押すmouse_down.sh—マウスボタンを押す
左マウスボタンを離すmouse_up.sh—マウスボタンを離す
入力type_text.sh"text"テキストを入力(50 文字ごと、12ms の間隔)
キーkey.sh"combo"キーを押す(Return、ctrl+c、alt+F4)
キーを押し続けるhold_key.sh"key" secs指定時間キーを押し続ける
スクロールscroll.shdir amt [x y]上/下/左/右にスクロール
待機wait.shseconds待機してからスクリーンショットを撮影
ズームzoom.shx1 y1 x2 y2切り抜いた範囲のスクリーンショット

使用例

export DISPLAY=:99

# Take screenshot
./scripts/screenshot.sh

# Click at coordinates
./scripts/click.sh 512 384 left

# Type text
./scripts/type_text.sh "Hello world"

# Press key combo
./scripts/key.sh "ctrl+s"

# Scroll down
./scripts/scroll.sh down 5

ワークフローのパターン

  1. スクリーンショット — まず画面を確認します
  2. 分析 — UI 要素と座標を特定します
  3. 操作 — クリック、入力、スクロールを行います
  4. スクリーンショット — 結果を確認します
  5. 繰り返し

ヒント

  • 画面サイズは 1024x768 で、原点(0,0)は左上です
  • テキストフィールドに入力する前にクリックしてフォーカスします
  • ブラウザーでページの最下部に移動するには ctrl+End を使います
  • 多くの操作では、2 秒後にスクリーンショットが自動撮影されます
  • 長いテキストは 50 文字ごとに分割され、キー入力の間隔は 12ms です

デスクトップのライブ表示(VNC)

ブラウザーまたは VNC クライアントを使って、デスクトップをリアルタイムで確認できます。

ブラウザーから接続
# SSH tunnel (run on your local machine)
ssh -L 6080:localhost:6080 your-server

# Open in browser
http://localhost:6080/vnc.html
VNC クライアントから接続
# SSH tunnel
ssh -L 5900:localhost:5900 your-server

# Connect VNC client to localhost:5900
SSH 設定(推奨)

自動トンネリングを設定するには、~/.ssh/config に以下を追加します。

Host your-server
  HostName your.server.ip
  User your-user
  LocalForward 6080 127.0.0.1:6080
  LocalForward 5900 127.0.0.1:5900

あとは ssh your-server を実行するだけで、VNC を利用できます。

システムサービス

# Check status
systemctl status xvfb xfce-minimal x11vnc novnc

# Restart if needed
sudo systemctl restart xvfb xfce-minimal x11vnc novnc
サービスの連携
xvfb → xfce-minimal → x11vnc → novnc
  • xvfb:仮想ディスプレイ :99(1024x768x24)
  • xfce-minimal:xfwm4 とパネルを実行し、xfdesktop を終了するウォッチドッグ
  • x11vnc:安定性のために -noxdamage を指定した VNC サーバー
  • novnc:接続の安定性を保つハートビート機能を備えた WebSocket プロキシ

アプリケーションを開く

export DISPLAY=:99

# Chrome — only use --no-sandbox if the kernel lacks user namespace support.
# Check: cat /proc/sys/kernel/unprivileged_userns_clone
#   1 = sandbox works, do NOT use --no-sandbox
#   0 = sandbox fails, --no-sandbox required as fallback
# Using --no-sandbox when unnecessary causes instability and crashes.
if [ "$(cat /proc/sys/kernel/unprivileged_userns_clone 2>/dev/null)" = "0" ]; then
    google-chrome --no-sandbox &
else
    google-chrome &
fi

xfce4-terminal &                # Terminal
thunar &                        # File manager

注:Snap 版のブラウザー(Firefox、Chromium)は、ヘッドレスサーバーではサンドボックスの問題が発生します。代わりに Chrome の .deb 版を使ってください。

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt-get install -f

手動セットアップ

setup-vnc.sh を使わずに手動でセットアップする場合:

# Install packages
sudo apt install -y xvfb xfce4 xfce4-terminal xdotool scrot imagemagick dbus-x11 x11vnc novnc websockify

# Run the setup script (generates systemd services, masks xfdesktop, starts everything)
./scripts/setup-vnc.sh

完全に手動でセットアップする場合、setup-vnc.sh スクリプトはすべての systemd サービスファイルをインラインで生成します。正確なサービス定義を確認するには、スクリプトを読んでください。

トラブルシューティング

VNC 画面が黒い
  • xfwm4 が実行中か確認します:pgrep xfwm4
  • デスクトップを再起動します:sudo systemctl restart xfce-minimal
VNC の画面がちらつく/点滅する
  • xfdesktop がマスクされていることを確認します(/usr/bin/xfdesktop を確認)
  • xfdesktop は Xvfb 上で画面の消去→描画を繰り返すため、ちらつきが発生します
VNC が頻繁に切断される
  • noVNC に --heartbeat 30 フラグが設定されているか確認します
  • x11vnc に -noxdamage フラグが設定されているか確認します
x11vnc がクラッシュする(SIGSEGV)
  • -noxdamage -noxfixes フラグを追加します
  • DAMAGE 拡張機能が Xvfb 上でクラッシュを引き起こします

要件

setup-vnc.sh によってインストールされます。

xvfb xfce4 xfce4-terminal xdotool scrot imagemagick dbus-x11 x11vnc novnc websockify

コメント