3.9 KiB
3.9 KiB
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_idkann UUID oder Label-Name sein → einfach"Moritz PC"verwenden
Befehle
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
python $SKILL_DIR/remote.py screenshot "Moritz PC"
# 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" <window_id>
python $SKILL_DIR/remote.py maximize "Moritz PC" <window_id>
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
screenshot→ Bildschirm anschauenfind-window→ Fenster-ID holenfocus→ Fenster in den Vordergrundexec/click/type→ Aktion ausführenscreenshot→ 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
## ⚠️ 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).