# Skill: helios-remote > **Hinweis:** Dieses Repo enthält außer diesem Skill noch Rust-Code (Client, Server) und Assets. Die anderen Dateien und Ordner im Repo sind für den Skill nicht relevant - nicht lesen, nicht anfassen. Steuere PCs die über den Helios Remote Relay-Server verbunden sind. ## Wann nutzen Wenn Moritz sagt, dass ich etwas auf einem verbundenen PC tun soll: - "Mach auf meinem PC..." - "Schau mal was auf dem Rechner läuft..." - "Nimm einen Screenshot von..." - "Klick auf X, tippe Y..." - Allgemein: Remote-Zugriff auf einen PC der gerade online ist ## Setup - **Script:** `skills/helios-remote/remote.py` - **Config:** `skills/helios-remote/config.env` (URL + API-Key, nicht ändern) - `SKILL_DIR=/home/moritz/.openclaw/workspace/skills/helios-remote` ## Wichtige Regeln - **Vor destruktiven Aktionen** (Wallpaper, Registry, Systemeinstellungen, Dateien löschen) immer erst den aktuellen Zustand lesen und merken! - Wallpaper auslesen: `(Get-ItemProperty 'HKCU:\Control Panel\Desktop').WallPaper` - **Label-Routing:** `session_id` kann UUID oder Label-Name sein → einfach `"Moritz PC"` verwenden ## Befehle ```bash SKILL_DIR=/home/moritz/.openclaw/workspace/skills/helios-remote # Sessions python $SKILL_DIR/remote.py sessions python $SKILL_DIR/remote.py server-version python $SKILL_DIR/remote.py version "Moritz PC" # Screenshot → /tmp/helios-remote-screenshot.png # IMMER screenshot-window bevorzugen (spart Bandbreite)! python $SKILL_DIR/remote.py screenshot-window "Moritz PC" "chrome" # aktives Fenster by title python $SKILL_DIR/remote.py screenshot "Moritz PC" # nur wenn kein Fenster bekannt # Shell-Befehl (PowerShell, kein wrapper nötig) python $SKILL_DIR/remote.py exec "Moritz PC" "Get-Process" python $SKILL_DIR/remote.py exec "Moritz PC" "hostname" # Mit längerer Timeout für Downloads etc. (default: 30s) python $SKILL_DIR/remote.py exec "Moritz PC" --timeout 600 "Invoke-WebRequest -Uri https://... -OutFile C:\file.zip" # Mausklick / Text tippen python $SKILL_DIR/remote.py click "Moritz PC" 960 540 python $SKILL_DIR/remote.py type "Moritz PC" "Hello World" # Fenster (nur sichtbare werden angezeigt) python $SKILL_DIR/remote.py windows "Moritz PC" python $SKILL_DIR/remote.py find-window "Moritz PC" "chrome" python $SKILL_DIR/remote.py focus "Moritz PC" python $SKILL_DIR/remote.py maximize "Moritz PC" python $SKILL_DIR/remote.py minimize-all "Moritz PC" # Programm starten (fire-and-forget) python $SKILL_DIR/remote.py run "Moritz PC" notepad.exe # User um etwas bitten (zeigt MessageBox, blockiert bis OK) python $SKILL_DIR/remote.py prompt "Moritz PC" "Bitte klicke auf Speichern, dann OK" python $SKILL_DIR/remote.py prompt "Moritz PC" "UAC-Dialog erscheint gleich - bitte bestätigen" --title "Aktion erforderlich" # Clipboard python $SKILL_DIR/remote.py clipboard-get "Moritz PC" python $SKILL_DIR/remote.py clipboard-set "Moritz PC" "Text in Zwischenablage" # Dateien hoch-/runterladen 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 # Label setzen python $SKILL_DIR/remote.py label "Moritz PC" "Neues Label" ``` ## Typischer Workflow: UI-Aufgabe 1. `screenshot` → Bildschirm anschauen 2. `find-window` → Fenster-ID holen 3. `focus` → Fenster in den Vordergrund 4. `exec` / `click` / `type` → Aktion ausführen 5. `screenshot` → Ergebnis prüfen # Warten bis ein Fenster erscheint (z.B. nach Programmstart) python $SKILL_DIR/remote.py wait-for-window "Moritz PC" "notepad" --timeout 10 # Status: Relay + remote.py + Client-Commit vergleichen (sind alle in sync?) python $SKILL_DIR/remote.py status "Moritz PC" # Client-Log (letzte 100 Zeilen, --lines für mehr) python $SKILL_DIR/remote.py logs "Moritz PC" python $SKILL_DIR/remote.py logs "Moritz PC" --lines 200 ``` ## ⚠️ Klick-Regel (wichtig!) **Niemals blind klicken.** Pixel-Koordinaten aus Screenshots sind unzuverlässig. Wenn ich auf einen Button oder UI-Element klicken muss: 1. Erst `prompt` benutzen um Moritz zu bitten es selbst zu klicken 2. Dann weitermachen sobald er OK drückt ```bash python $SKILL_DIR/remote.py prompt "Moritz PC" "Bitte klicke auf [Speichern], dann OK drücken" ``` Ausnahme: wenn ich die exakten Koordinaten eines Elements kenne (z.B. durch wiederholte Nutzung desselben UIs).