computer-use について
computer-useは、仮想XFCEディスプレイを使ってヘッドレスLinuxサーバー上のデスクトップアプリを操作するスキルです。スクリーンショット、マウス、キーボード操作に加え、VNCやブラウザーでのライブ表示にも対応します。
主な機能
- 01Xvfbによる仮想XFCEディスプレイ
- 02画面と指定領域のキャプチャ
- 03マウスとキーボードの操作スクリプト
- 04VNCとブラウザーでのデスクトップ表示
- 05自動再起動に対応するsystemdサービス
活用シーン
- 01ヘッドレスVPSでのデスクトップアプリ操作
- 02画面を確認しながら操作結果を検証
- 03SSHトンネル経由でのリモートデスクトップ表示
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ram-raghav-s/ computer-use --skill computer-useインストール後、Claude Code で/computer-useを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/drag.shcursor_position.shkey.shmouse_down.shhold_key.shminimal-desktop.shscreenshot.shmouse_up.shclick.shscroll.shmouse_move.shsetup-vnc.shtype_text.shwait.shvnc_stop.shzoom.shvnc_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.sh | x y | 指定座標にマウスを移動 |
| 左クリック | click.sh | x y left | 指定座標を左クリック |
| 右クリック | click.sh | x y right | 右クリック |
| 中クリック | click.sh | x y middle | 中クリック |
| ダブルクリック | click.sh | x y double | ダブルクリック |
| トリプルクリック | click.sh | x y triple | トリプルクリック(行を選択) |
| 左クリックしてドラッグ | drag.sh | x1 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.sh | dir amt [x y] | 上/下/左/右にスクロール |
| 待機 | wait.sh | seconds | 待機してからスクリーンショットを撮影 |
| ズーム | zoom.sh | x1 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
ワークフローのパターン
- スクリーンショット — まず画面を確認します
- 分析 — UI 要素と座標を特定します
- 操作 — クリック、入力、スクロールを行います
- スクリーンショット — 結果を確認します
- 繰り返し
ヒント
- 画面サイズは 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