36 lines
1.4 KiB
Markdown
36 lines
1.4 KiB
Markdown
# helios-client (Phase 2 — not yet implemented)
|
|
|
|
This crate will contain the Windows remote-control client for `helios-remote`.
|
|
|
|
## Planned Features
|
|
|
|
- Connects to the relay server via WebSocket (`wss://`)
|
|
- Sends a `Hello` message on connect with an optional display label
|
|
- Handles incoming `ServerMessage` commands:
|
|
- `ScreenshotRequest` → captures the primary display (Windows GDI or `windows-capture`) and responds with base64 PNG
|
|
- `ExecRequest` → runs a shell command in a persistent `cmd.exe` / PowerShell session and returns stdout/stderr/exit-code
|
|
- `ClickRequest` → simulates a mouse click via `SendInput` Win32 API
|
|
- `TypeRequest` → types text via `SendInput` (virtual key events)
|
|
- Persistent shell session so `cd C:\Users` persists across `exec` calls
|
|
- Auto-reconnect with exponential backoff
|
|
- Configurable via environment variables or a `client.toml` config file
|
|
|
|
## Planned Tech Stack
|
|
|
|
| Crate | Purpose |
|
|
|---|---|
|
|
| `tokio` | Async runtime |
|
|
| `tokio-tungstenite` | WebSocket client |
|
|
| `serde_json` | Protocol serialization |
|
|
| `windows` / `winapi` | Screen capture, mouse/keyboard input |
|
|
| `base64` | PNG encoding for screenshots |
|
|
|
|
## Build Target
|
|
|
|
```
|
|
cargo build --target x86_64-pc-windows-gnu
|
|
```
|
|
|
|
## App Icon
|
|
|
|
The file `assets/logo.ico` in the repository root is the application icon intended for the Windows `.exe`. It can be embedded at compile time using a build script (e.g. via the `winres` crate).
|