100 lines
3.5 KiB
Markdown
100 lines
3.5 KiB
Markdown
# 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/helios`
|
|
- **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
|
|
|
|
# List connected devices
|
|
$SKILL_DIR/helios devices
|
|
|
|
# Screenshot → /tmp/helios-remote-screenshot.png
|
|
# ALWAYS prefer window screenshots (saves bandwidth)!
|
|
$SKILL_DIR/helios screenshot moritz-pc chrome # window by label
|
|
$SKILL_DIR/helios screenshot moritz-pc screen # full screen only when no window known
|
|
|
|
# List visible windows (use labels for screenshot/focus/maximize)
|
|
$SKILL_DIR/helios windows moritz-pc
|
|
|
|
# Window labels come from the process name (e.g. chrome, discord, pycharm64)
|
|
# Duplicates get a number suffix: chrome, chrome2, chrome3
|
|
# Use `windows` to discover labels before targeting a specific window
|
|
|
|
# Focus / maximize a window
|
|
$SKILL_DIR/helios focus moritz-pc discord
|
|
$SKILL_DIR/helios maximize moritz-pc chrome
|
|
|
|
# Minimize all windows
|
|
$SKILL_DIR/helios minimize-all moritz-pc
|
|
|
|
# Shell command (PowerShell, no wrapper needed)
|
|
$SKILL_DIR/helios exec moritz-pc "Get-Process"
|
|
$SKILL_DIR/helios exec moritz-pc "hostname"
|
|
# With longer timeout for downloads etc. (default: 30s)
|
|
$SKILL_DIR/helios exec moritz-pc --timeout 600 "Invoke-WebRequest -Uri https://... -OutFile C:\file.zip"
|
|
|
|
# Launch program (fire-and-forget)
|
|
$SKILL_DIR/helios run moritz-pc notepad.exe
|
|
|
|
# Ask user to do something (shows MessageBox, blocks until OK)
|
|
$SKILL_DIR/helios prompt moritz-pc "Please click Save, then OK"
|
|
$SKILL_DIR/helios prompt moritz-pc "UAC dialog coming - please confirm" --title "Action required"
|
|
|
|
# Clipboard
|
|
$SKILL_DIR/helios clipboard-get moritz-pc
|
|
$SKILL_DIR/helios clipboard-set moritz-pc "Text for clipboard"
|
|
|
|
# File transfer
|
|
$SKILL_DIR/helios upload moritz-pc /tmp/local.txt "C:\Users\Moritz\Desktop\remote.txt"
|
|
$SKILL_DIR/helios download moritz-pc "C:\Users\Moritz\file.txt" /tmp/downloaded.txt
|
|
|
|
# Version: compare relay + helios + client commits (are they in sync?)
|
|
$SKILL_DIR/helios version moritz-pc
|
|
|
|
# Client log (last 100 lines, --lines for more)
|
|
$SKILL_DIR/helios logs moritz-pc
|
|
$SKILL_DIR/helios logs moritz-pc --lines 200
|
|
```
|
|
|
|
## Typical Workflow: UI Task
|
|
|
|
1. `windows <device>` → find the window label
|
|
2. `screenshot <device> <window_label>` → look at it
|
|
3. `focus <device> <window_label>` → bring it to front if needed
|
|
4. `exec` → perform the action
|
|
5. `screenshot <device> <window_label>` → verify result
|
|
|
|
## ⚠️ Prompt Rule
|
|
|
|
**Never interact with UI blindly.** When you need the user to click something:
|
|
|
|
```bash
|
|
$SKILL_DIR/helios prompt moritz-pc "Please click [Save], then press OK"
|
|
```
|
|
|
|
This blocks until the user confirms. Use it whenever manual interaction is needed.
|