/install computer-takeover
Computer Takeover
Unattended remote control of paired OpenClaw nodes. Controls the remote device as if physically sitting in front of it — no user presence required on the remote end.
Core Capabilities
- Device Intelligence — List nodes, get device info, health, permissions, battery, storage, network
- Screen Capture — Snapshot or record the remote screen in real-time
- Camera Access — Snap photos or record clips from front/back camera
- Shell Execution — Run commands, scripts, and PowerShell/Bash on the remote device
- File Management — Browse, read, write, delete files on the remote device via shell
- App Control — Install, launch, close, list installed apps
- Process Management — List running processes, kill processes, monitor CPU/memory
- Notifications — Read notifications, trigger actions or replies
- Input Injection — Type text, simulate clicks, keypresses (via shell automation)
- Location — Get GPS coordinates (if device supports it)
- Device Pairing — Initiate pairing or manage existing pairings
Quick Start
Always start by listing available nodes to find the target device:
nodes(action="status")
Then describe the node to confirm it's the right one:
nodes(action="describe", node="\x3Cnode-id>")
Capability Details
Device Intelligence
nodes(action="status") // List all paired nodes
nodes(action="device_info", node="\x3Cid>")
nodes(action="device_health", node="\x3Cid>")
nodes(action="device_permissions", node="\x3Cid>")
nodes(action="device_status", node="\x3Cid>") // battery, storage, network
Screen
nodes(action="screen_record", node="\x3Cid>", outPath="C:/temp/screen.mp4", durationMs=30000)
nodes(action="photos_latest", node="\x3Cid>", limit=5) // screenshots stored as photos
For live screen viewing, use the canvas tool with target="node" and the node's gateway URL.
Camera
nodes(action="camera_snap", node="\x3Cid>", facing="front|back")
nodes(action="camera_clip", node="\x3Cid>", facing="front|back", durationMs=10000)
Shell Execution
Use nodes(action="invoke", node="\x3Cid>", invokeCommand="\x3Ccommand>", invokeParamsJson="{}").
Windows (PowerShell):
{
"invokeCommand": "powershell",
"invokeParamsJson": "{\"command\": \"Get-Process | Select -First 10 Name, CPU, WorkingSet\"}"
}
Android (adb):
{
"invokeCommand": "adb",
"invokeParamsJson": "{\"command\": \"shell dumpsys battery\"}"
}
Linux/macOS (SSH-style):
{
"invokeCommand": "bash",
"invokeParamsJson": "{\"command\": \"ls -la /tmp | head -20\"}"
}
File Management (via Shell)
# Windows: list directory
nodes(action="invoke", node="\x3Cid>", invokeCommand="powershell", invokeParamsJson="{\"command\": \"Get-ChildItem C:/Users/ -Depth 1 | Format-Table Name, Length, LastWriteTime\"}")
# Windows: read file
nodes(action="invoke", node="\x3Cid>", invokeCommand="powershell", invokeParamsJson="{\"command\": \"Get-Content C:/temp/log.txt -Tail 50\"}")
# Windows: write file
nodes(action="invoke", node="\x3Cid>", invokeCommand="powershell", invokeParamsJson="{\"command\": \"Set-Content -Path C:/temp/output.txt -Value 'Hello from remote'\"}")
App Control
nodes(action="invoke", node="\x3Cid>", invokeCommand="powershell", invokeParamsJson="{\"command\": \"Start-Process notepad\"}") // launch
nodes(action="invoke", node="\x3Cid>", invokeCommand="powershell", invokeParamsJson="{\"command\": \"Get-Process | Where Name -eq 'notepad' | Stop-Process\"}") // close
nodes(action="invoke", node="\x3Cid>", invokeCommand="powershell", invokeParamsJson="{\"command\": \"winget install Microsoft.PowerToys --silent\"}") // install
Process Management
nodes(action="invoke", node="\x3Cid>", invokeCommand="powershell", invokeParamsJson="{\"command\": \"Get-Process | Sort CPU -Descending | Select -First 20 Name, Id, CPU, @{N='MEM_MB';E={[math]::Round($_.WorkingSet/1MB,1)}} | Format-Table -AutoSize\"}")
Notifications
nodes(action="notifications_list", node="\x3Cid>", limit=20)
nodes(action="notifications_action", node="\x3Cid>", notificationKey="\x3Ckey>", notificationAction="open|reply|dismiss")
Location
nodes(action="location_get", node="\x3Cid>", desiredAccuracy="precise")
Node Pairing
To pair a new device, use the node-connect skill and follow the pairing flow. Pairing requires the device to have the OpenClaw companion app installed and connected to the same gateway.
Workflow: Full Takeover Session
nodes(action="status")— find the node IDnodes(action="device_info", node="\x3Cid>")— confirm device name/typenodes(action="screen_record", node="\x3Cid>", ...)orcanvastool — see what they're doing- Run commands as needed via
nodes(action="invoke", ...) - Transfer files via base64 encoding through shell or direct path sharing
Important Notes
- Timeout: Default
invokeTimeoutMsis 30000ms. Increase for long-running commands. - Elevation: Some operations (installing apps, killing system processes) may need elevated permissions on the remote device.
- Safety: Always confirm the target node before running destructive commands (delete files, kill processes, etc.).
- Gateway URL: For
canvastool with remote screen, the node must havegateway.remote.urlconfigured and accessible.
References
- Full
nodestool docs: see OpenClaw tool reference for all actions and parameters - Node pairing guide: see
node-connectskill for setup troubleshooting - Gateway configuration:
gateway.remote.urlin OpenClaw config controls accessibility
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install computer-takeover - 安装完成后,直接呼叫该 Skill 的名称或使用
/computer-takeover触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Computer Takeover 是什么?
Full unattended remote control of paired devices (nodes) — screen capture, file management, shell commands, app control, camera, notifications, and process m... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 79 次。
如何安装 Computer Takeover?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install computer-takeover」即可一键安装,无需额外配置。
Computer Takeover 是免费的吗?
是的,Computer Takeover 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Computer Takeover 支持哪些平台?
Computer Takeover 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Computer Takeover?
由 Fuzzyb33s(@fuzzyb33s)开发并维护,当前版本 v1.0.0。