feat: rewrite remote.py as Rust CLI binary (crates/cli)

This commit is contained in:
Helios 2026-03-06 03:02:22 +01:00
parent ba3b365f4e
commit 98b6fabef6
No known key found for this signature in database
GPG key ID: C8259547CD8309B5
6 changed files with 815 additions and 45 deletions

View file

@ -31,40 +31,40 @@ irm https://raw.githubusercontent.com/agent-helios/helios-remote/master/scripts/
```
AI Agent
remote.py CLI
helios CLI
helios-server ──WebSocket── helios-client (Windows)
```
1. The **Windows client** connects to the relay server via WebSocket and registers with its device label.
2. The **AI agent** uses `remote.py` to issue commands — screenshots, shell commands, window management, file transfers.
2. The **AI agent** uses `helios` to issue commands — screenshots, shell commands, window management, file transfers.
3. The relay server forwards everything to the correct client and streams back responses.
Device labels are the sole identifier. Only one client instance can run per device.
---
## remote.py CLI
## helios CLI
```bash
python remote.py devices # list connected devices
python remote.py screenshot <device> screen # full-screen screenshot → /tmp/helios-remote-screenshot.png
python remote.py screenshot <device> <window_label> # screenshot a specific window
python remote.py exec <device> <command...> # run shell command (PowerShell)
python remote.py exec <device> --timeout 600 <command...> # with custom timeout (seconds)
python remote.py windows <device> # list visible windows
python remote.py focus <device> <window_label> # focus a window
python remote.py maximize <device> <window_label> # maximize and focus a window
python remote.py minimize-all <device> # minimize all windows
python remote.py prompt <device> "Please click Save" # show MessageBox, blocks until user confirms
python remote.py prompt <device> "message" --title "Title" # with custom dialog title
python remote.py run <device> <program> [args...] # launch program (fire-and-forget)
python remote.py clipboard-get <device> # get clipboard text
python remote.py clipboard-set <device> <text> # set clipboard text
python remote.py upload <device> <local> <remote> # upload file to device
python remote.py download <device> <remote> <local> # download file from device
python remote.py version <device> # compare relay/remote.py/client commits
python remote.py logs <device> # fetch last 100 lines of client log
python remote.py logs <device> --lines 200 # custom line count
helios devices # list connected devices
helios screenshot <device> screen # full-screen screenshot → /tmp/helios-remote-screenshot.png
helios screenshot <device> <window_label> # screenshot a specific window
helios exec <device> <command...> # run shell command (PowerShell)
helios exec <device> --timeout 600 <command...> # with custom timeout (seconds)
helios windows <device> # list visible windows
helios focus <device> <window_label> # focus a window
helios maximize <device> <window_label> # maximize and focus a window
helios minimize-all <device> # minimize all windows
helios prompt <device> "Please click Save" # show MessageBox, blocks until user confirms
helios prompt <device> "message" --title "Title" # with custom dialog title
helios run <device> <program> [args...] # launch program (fire-and-forget)
helios clipboard-get <device> # get clipboard text
helios clipboard-set <device> <text> # set clipboard text
helios upload <device> <local> <remote> # upload file to device
helios download <device> <remote> <local> # download file from device
helios version <device> # compare relay/helios/client commits
helios logs <device> # fetch last 100 lines of client log
helios logs <device> --lines 200 # custom line count
```
---