- Device labels: lowercase, no whitespace, only a-z 0-9 - _ (enforced at config time) - Session IDs removed: device label is the sole identifier - Routes changed: /sessions/:id → /devices/:label - Removed commands: click, type, find-window, wait-for-window, label, old version, server-version - Renamed: status → version (compares relay/remote.py/client commits) - Unified screenshot: takes 'screen' or a window label as argument - Windows listed with human-readable labels (same format as device labels) - Single instance enforcement via PID lock file - Removed input.rs (click/type functionality) - All docs and code in English - Protocol: Hello.label is now required (String, not Option<String>) - Client auto-migrates invalid labels on startup |
||
|---|---|---|
| .. | ||
| src | ||
| build.rs | ||
| Cargo.toml | ||
| README.md | ||
helios-client
Windows client for helios-remote. Connects to the relay server via WebSocket and executes commands.
Features
- Full-screen and per-window screenshots
- Shell command execution (persistent PowerShell session)
- Window management (list, focus, maximize, minimize)
- File upload/download
- Clipboard get/set
- Program launch (fire-and-forget)
- User prompts (MessageBox)
- Single instance enforcement (PID lock file)
Configuration
On first run, the client prompts for:
- Relay URL (default:
wss://remote.agent-helios.me/ws) - API Key
- Device label — must be lowercase, no whitespace, only
a-z 0-9 - _
Config is saved to %APPDATA%/helios-remote/config.toml.
Device Labels
The device label is the sole identifier for this machine. It must follow these rules:
- Lowercase only
- No whitespace
- Only characters:
a-z,0-9,-,_
Examples: moritz_pc, work-desktop, gaming-rig
If an existing config has an invalid label, it will be automatically migrated on next startup.
Build
cargo build -p helios-client --release