{"skill":{"slug":"clawdos","displayName":"Windows Execution Interface for OpenClaw","summary":"Windows automation via Clawdos API: screen capture, mouse/keyboard input, window management, file-system operations, and shell command execution. Standalone...","description":"---\nname: clawdos\ndescription: \"Windows automation via Clawdos API: screen capture, mouse/keyboard input, window management, file-system operations, and shell command execution. Standalone CLI execution via Python script. Use when the user wants to control or inspect a Windows host remotely.\"\nlicense: \"MIT\"\nmetadata:\n  openclaw:\n    version: \"2.1.1\"\n    display_name: \"Windows Execution Interface for OpenClaw\"\n    author: \"DANZIG MOE\"\n    emoji: \"🐾\"\n    python_requires: \">=3.10\"\n    dependencies:\n      - \"requests>=2.28.0\"\n    requires:\n      env:\n        - \"CLAWDOS_BASE_URL\"\n        - \"CLAWDOS_API_KEY\"\n        - \"CLAWDOS_TIMEOUT\"\n        - \"CLAWDOS_FS_ROOT_ID\"\n    primaryEnv: \"CLAWDOS_API_KEY\"\n    config_schema:\n      base_url:\n        type: \"string\"\n        default: \"http://127.0.0.1:17171\"\n        description: \"Clawdos Windows host service address\"\n      api_key:\n        type: \"string\"\n        required: true\n        description: \"Clawdos API key\"\n      timeout:\n        type: \"integer\"\n        default: 30\n        description: \"Request timeout in seconds\"\n      fs_root_id:\n        type: \"string\"\n        description: \"Sandbox root directory ID for file system operations\"\n---\n\n# Clawdos\n\n## Overview\n\nThis skill exposes a CLI wrapper around the Clawdos REST API, allowing you to operate a Windows machine securely from OpenClaw via shell commands.\nInstead of loading tools, use `exec` to call the standalone python script `scripts/clawdos.py`.\n\n### ⚠️ SECURITY & SANDBOX MECHANISM\n\n**File System Sandbox Protection:**\n- All file system operations (`fs_list`, `fs_read`, `fs_write`, `fs_delete`, `fs_move`) are **restricted to a sandboxed root directory** on the Windows host.\n- The sandbox root is configured via the `CLAWDOS_FS_ROOT_ID` environment variable and enforced server-side.\n- **The Clawdos service prevents access to files outside the designated sandbox directory.** Path traversal attempts (e.g., `../../../`) are blocked.\n- This isolation ensures that skill operations cannot accidentally or intentionally access sensitive system files, user documents, or configuration outside the permitted scope.\n\n**Network Isolation:**\n- The Clawdos service only communicates with the configured `CLAWDOS_BASE_URL` and does not establish unauthorized external connections.\n- All API calls are authenticated via `CLAWDOS_API_KEY` and encrypted over HTTPS when applicable.\n\n### ⚠️ AUTHORIZATION & CAPABILITY WARNINGS\n\nThis skill grants access to **powerful Windows automation capabilities**. Users must explicitly understand and authorize the following operations:\n\n1. **Shell Command Execution** (`shell_exec`)\n   - Can execute arbitrary PowerShell or cmd commands on the Windows host.\n   - Even within the sandbox, commands can potentially modify system state, install software, or alter configurations.\n   - **Only use with trusted sources and explicit user approval.**\n\n2. **File Deletion** (`fs_delete`)\n   - Permanently removes files and directories within the sandbox.\n   - No recovery mechanism exists once deleted.\n   - **Exercise extreme caution; confirm deletion intent before execution.**\n\n3. **File Upload/Download** (`--file`, `--out`)\n   - The CLI script can read local files and upload them to the Windows host (within sandbox).\n   - The script can download remote files from the Windows host to the agent system.\n   - **Do not use with sensitive files or untrusted remote systems.**\n\n4. **Persistent Screen/Window Monitoring**\n   - Visual actions (`screen_capture`, `window_list`, `window_focus`) can observe active GUI content.\n   - If sensitive information is visible on screen, it may be captured.\n\n### ⚠️ Requirements\n**This skill requires a corresponding server running on your Windows host.**\nEnsure the Windows host is running `danzig233/clawdos`. The connection parameters (`CLAWDOS_BASE_URL` and `CLAWDOS_API_KEY`) must be configured via OpenClaw's skill configuration UI or environment variables, as specified in this file's metadata.\n\n## Usage\n\nYou interact with Clawdos by running the `scripts/clawdos.py` CLI using the `exec` tool. The script will automatically pick up the `CLAWDOS_BASE_URL` and `CLAWDOS_API_KEY` environment variables injected by OpenClaw.\n\n**Basic Syntax:**\n```bash\npython3 ~/.nvm/versions/node/v22.22.1/lib/node_modules/openclaw/skills/clawdos/scripts/clawdos.py <action> --args '{\"key\":\"value\"}'\n```\n\n### Available Actions\n\n#### 1. Visual Navigation & System Check\n- `health`: Check service status.\n- `get_env`: Get screen resolution, DPI scale, and active window.\n- `window_list`: List all open windows.\n- `window_focus`: Focus a window. Args: `{\"titleContains\": \"...\"}` or `{\"processName\": \"...\"}`\n- `screen_capture`: Take a screenshot. Use `--out path/to/save.png` to save binary. Args: `{\"format\": \"png\", \"quality\": 80}`\n\n#### 2. Precise Input (Mouse & Keyboard)\n*(Prioritize keyboard/shell when possible to avoid visual estimation errors)*\n- `click`: Click the mouse. Args: `{\"x\": 100, \"y\": 200, \"button\": \"left\"}`\n- `move`: Move cursor. Args: `{\"x\": 100, \"y\": 200}`\n- `drag`: Drag mouse. Args: `{\"fromX\": 100, \"fromY\": 200, \"toX\": 300, \"toY\": 400}`\n- `keys`: Press key combos. Args: `{\"combo\": [\"ctrl\", \"c\"]}`\n- `type_text`: Type text. Args: `{\"text\": \"hello\"}`\n- `scroll`: Scroll wheel. Args: `{\"amount\": -500}`\n- `batch`: Execute multiple input actions sequentially. Args: `{\"actions\": [...]}`\n\n#### 3. File & System Operations\n- `fs_list`: List directory contents. Args: `{\"path\": \"/\"}`\n- `fs_read`: Read a file (prints raw contents to stdout). Use `--out path/to/save.bin` to save binary files. Args: `{\"path\": \"/hello.txt\"}`\n- `fs_write`: Write to a file. Args: `{\"path\": \"/hello.txt\", \"content\": \"hello world\"}`. Or use `--file path/to/local.bin` to upload a local binary file.\n- `fs_mkdir`: Create a directory. Args: `{\"path\": \"/newdir\"}`\n- `fs_delete`: Delete a file or directory. Args: `{\"path\": \"/newdir\", \"recursive\": true}`\n- `fs_move`: Move or rename. Args: `{\"from\": \"/src\", \"to\": \"/dst\"}`\n- `shell_exec`: Run a shell command on the Windows host. Args: `{\"command\": \"dir\", \"args\": [\"/w\"], \"workingDir\": \"\"}`\n\n### Operation Strategy\n\n### Operational Best Practices\n- **Prefer Keyboard & Shell**: To minimize errors from visual coordinate estimation, prioritize using keyboard shortcuts (`key_combo`, `type_text`) or shell commands (`shell_exec`) over mouse operations whenever possible.\n- **Targeted Mouse Usage**: Reserve precise mouse operations (`mouse_click`, `mouse_move`, `mouse_drag`) strictly for necessary UI interactions (e.g., clicking a specific button on a web page, navigating a software interface, or focusing an input field). \n- **Scrolling**: Using `mouse_scroll` is safe and recommended for navigating long pages or documents.\n\n### Security Best Practices\n- **Verify File Paths**: Always confirm the target path is within the intended sandbox directory. The server enforces isolation, but double-check paths in scripts.\n- **Audit Shell Commands**: Review `shell_exec` commands before execution. Avoid running commands from untrusted sources.\n- **File Transfer Restrictions**: Only upload/download files you trust. Do not use `--file` with sensitive credentials or system files.\n- **Minimize Screen Captures**: Avoid capturing screens if sensitive information (passwords, tokens, personal data) may be visible.\n- **Explicit Deletion Confirmation**: Review the target path carefully before executing `fs_delete`. Deleted files cannot be recovered.\n\n## Examples\n\n**Focus MS Edge and type:**\n```bash\npython3 scripts/clawdos.py window_focus --args '{\"processName\": \"msedge\"}'\npython3 scripts/clawdos.py type_text --args '{\"text\": \"https://openclaw.ai\\n\"}'\n```\n\n**Take a screenshot and save it locally:**\n```bash\npython3 scripts/clawdos.py screen_capture --out /tmp/windows_screen.png --args '{\"format\":\"png\"}'\n```\n\n**Read a file from Windows:**\n```bash\npython3 scripts/clawdos.py fs_read --args '{\"path\": \"logs/app.log\"}'\n```\n\n**Execute PowerShell on Windows:**\n```bash\npython3 scripts/clawdos.py shell_exec --args '{\"command\": \"powershell\", \"args\": [\"-Command\", \"Get-Process\"]}'\n```\n","tags":{"latest":"2.1.1","automation":"2.0.1","windows":"2.0.1"},"stats":{"comments":0,"downloads":959,"installsAllTime":36,"installsCurrent":1,"stars":1,"versions":9},"createdAt":1773225907392,"updatedAt":1779077935972},"latestVersion":{"version":"2.1.1","createdAt":1773371244665,"changelog":"Added comprehensive security warnings and sandbox documentation","license":"MIT-0"},"metadata":{"setup":[{"key":"CLAWDOS_BASE_URL","required":true},{"key":"CLAWDOS_API_KEY","required":true},{"key":"CLAWDOS_TIMEOUT","required":true},{"key":"CLAWDOS_FS_ROOT_ID","required":true}],"os":null,"systems":null},"owner":{"handle":"danzig233","userId":"s170a1acsp2td6gq9wexm7qsfh84s2pm","displayName":"danzig233","image":"https://avatars.githubusercontent.com/u/54832537?v=4"},"moderation":null}