helios-remote/SKILL.md

3.7 KiB

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

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 latest available vs running commits (relay / cli / client)
$SKILL_DIR/remote version moritz-pc

# Update: bring all components (relay, cli, client) to latest version
# CI publishes new binaries but does NOT auto-restart — this triggers the actual update
$SKILL_DIR/remote update moritz-pc

# Client log (last 20 lines by default, --lines for more)
$SKILL_DIR/remote logs moritz-pc
$SKILL_DIR/remote 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:

$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.