Install
openclaw skills install @wentbackward/remote-clawsFull control of a remote machine via Remote Claws MCP: screenshots, mouse/keyboard, browser automation, run commands, read/write files on the remote host.
openclaw skills install @wentbackward/remote-clawsProvide permission-based access to a remote desktop machine via the remote-claws MCP server (https://github.com/wentbackward/remote-claws) allowing your agent to run in a sandbox.
Four tools, each taking an action parameter: remote_browser, remote_desktop,
remote_exec, remote_files. Read each tool's description for its action
list — an unknown action returns the valid list.
The remote_* tools act on the REMOTE machine. OpenClaw's built-in browser,
exec, read/write/edit act on the LOCAL gateway machine. Never
substitute one for the other. Take care not to confuse remote-claws with remote
SSH commands.
remote_desktop(action="screenshot") before clicking
or typing; use the returned coordinates to target actions. Re-screenshot
after actions — windows move, dialogs appear.remote_desktop for things the
browser can't reach (native dialogs, file pickers).remote_desktop(action= "click_element", ...) targets controls by name — survives window moves.remote_exec(action="run", ...) returns a process_id;
poll with action="get_output" (wait=true blocks), action="send_input"
for stdin, action="kill" when done.The remote-claws MCP server requires a bearer token, configured in
openclaw.json when registering the server. Unauthenticated connections get
401. The server also supports IP allowlisting (allowed_ips), host header
validation (allowed_hosts), and per-action permission policies
(permissions.json). See the setup guide
and README.
remote_desktop(action="screenshot", save_to_disk=true) and download the binary.remote_files(action="read", ...) returns base64
only up to a threshold. Bigger reads fail with "inline read would return N bytes"
to avoid context token explosion. Re-issue the same read with as_url=true and use
the returned URL to download — do NOT retry the plain read. Small chunks via
offset/limit will work.type_text is ASCII only. For Unicode, use browser fill, or clipboard:
remote_exec(action="run", command="powershell", args=["Set-Clipboard", ...])
then remote_desktop(action="press_key", keys="ctrl+v").