helios-remote/crates/client
Helios 9e6878a93f
fix: flush stdout prompts in first-run config wizard
The prompt_config() function used print!() without flushing stdout,
causing all prompts to be buffered and invisible to the user. The
program appeared to hang silently after 'No config found — first-time
setup'.

Changes:
- Add std::io::stdout().flush().unwrap() after each print!() prompt
- Style prompts with cyan '→' prefix to match CLI conventions
- Show default values in square brackets for relay URL and label
- Use hostname() as default label (was previously Optional/None)
- Add blank line after prompts before '✓ Config saved'
2026-03-03 14:11:58 +01:00
..
src fix: flush stdout prompts in first-run config wizard 2026-03-03 14:11:58 +01:00
build.rs feat(client): modern CLI output + Windows exe icon 2026-03-03 14:02:17 +01:00
Cargo.toml feat(client): modern CLI output + Windows exe icon 2026-03-03 14:02:17 +01:00
README.md Add logo assets and update README 2026-03-02 18:16:05 +01:00

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