- 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
40 lines
1.1 KiB
Markdown
40 lines
1.1 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
cargo build -p helios-client --release
|
|
```
|