# Skill: helios-remote > **Note:** This repo also contains Rust code (client, server) and assets. > Those files are not relevant for using the skill — don't read or modify them. Control PCs connected to the Helios Remote Relay Server. ## When to use When Moritz asks to do something on a connected PC: - "Do X on my PC..." - "Check what's running on the computer..." - "Take a screenshot of..." - General: remote access to an online PC ## Setup - **Script:** `skills/helios-remote/remote.py` - **Config:** `skills/helios-remote/config.env` (URL + API key, don't modify) - `SKILL_DIR=/home/moritz/.openclaw/workspace/skills/helios-remote` ## Important Rules - **Before destructive actions** (wallpaper, registry, system settings, deleting files) always read the current state first! - Wallpaper: `(Get-ItemProperty 'HKCU:\Control Panel\Desktop').WallPaper` - **Device labels are lowercase**, no whitespace, only `a-z 0-9 - _` (e.g. `moritz_pc`) ## Commands ```bash SKILL_DIR=/home/moritz/.openclaw/workspace/skills/helios-remote # Devices python $SKILL_DIR/remote.py devices # Screenshot → /tmp/helios-remote-screenshot.png # ALWAYS prefer window screenshots (saves bandwidth)! python $SKILL_DIR/remote.py screenshot moritz_pc google_chrome # window by label python $SKILL_DIR/remote.py screenshot moritz_pc screen # full screen only when no window known # Shell command (PowerShell, no wrapper needed) python $SKILL_DIR/remote.py exec moritz_pc "Get-Process" python $SKILL_DIR/remote.py exec moritz_pc "hostname" # With longer timeout for downloads etc. (default: 30s) python $SKILL_DIR/remote.py exec moritz_pc --timeout 600 "Invoke-WebRequest -Uri https://... -OutFile C:\file.zip" # Windows (visible only, shown with human-readable labels) python $SKILL_DIR/remote.py windows moritz_pc python $SKILL_DIR/remote.py focus moritz_pc discord python $SKILL_DIR/remote.py maximize moritz_pc google_chrome python $SKILL_DIR/remote.py minimize-all moritz_pc # Launch program (fire-and-forget) python $SKILL_DIR/remote.py run moritz_pc notepad.exe # Ask user to do something (shows MessageBox, blocks until OK) python $SKILL_DIR/remote.py prompt moritz_pc "Please click Save, then OK" python $SKILL_DIR/remote.py prompt moritz_pc "UAC dialog coming - please confirm" --title "Action required" # Clipboard python $SKILL_DIR/remote.py clipboard-get moritz_pc python $SKILL_DIR/remote.py clipboard-set moritz_pc "Text for clipboard" # File transfer python $SKILL_DIR/remote.py upload moritz_pc /tmp/local.txt "C:\Users\Moritz\Desktop\remote.txt" python $SKILL_DIR/remote.py download moritz_pc "C:\Users\Moritz\file.txt" /tmp/downloaded.txt # Version: compare relay + remote.py + client commits (are they in sync?) python $SKILL_DIR/remote.py version moritz_pc # Client log (last 100 lines, --lines for more) python $SKILL_DIR/remote.py logs moritz_pc python $SKILL_DIR/remote.py logs moritz_pc --lines 200 ``` ## Typical Workflow: UI Task 1. `screenshot screen` → look at the screen 2. `windows ` → find the window label 3. `focus ` → bring it to front 4. `exec` → perform the action 5. `screenshot ` → verify result ## ⚠️ Prompt Rule (important!) **Never interact with UI blindly.** When you need the user to click something: ```bash python $SKILL_DIR/remote.py prompt moritz_pc "Please click [Save], then press OK" ``` This blocks until the user confirms. Use it whenever manual interaction is needed.