# Reyna CLI On-demand CLI façade for Reyna family MCP services and LAN devices. The goal is to avoid keeping every MCP server/tool schema loaded in Hermes memory while still letting Hermes call capabilities through `terminal` when needed. ## Phase 2 scope - **Devices parent command**: All local devices are now under `reyna-cli devices`. - `reyna-cli devices screen ...` (ESP32 screen) - `reyna-cli devices iphone ...` (iPhone app) - `reyna-cli devices arm ...` (Robot arm) - **Robot Arm**: Dynamic tool resolution for `state`, `home`, `wave`, `battery`. - **Immich**: On-demand MCP bridge at `http://127.0.0.1:8626/mcp`. - **MongoDB**: On-demand MCP bridge at `http://127.0.0.1:8630/mcp`. - **Top-level aliases**: `reyna-cli screen`, `reyna-cli iphone`, `reyna-cli arm` still work for compatibility. ## Install / run ```bash uv sync uv run reyna-cli doctor ``` ## Device discovery ```bash uv run reyna-cli devices list --json uv run reyna-cli devices ping esp32_screen --json uv run reyna-cli devices tools esp32_screen --json uv run reyna-cli devices describe esp32_screen --for-hermes ``` ## Generic MCP calls ```bash uv run reyna-cli devices call esp32_screen draw_text --args '{"text":"Hello","x":10,"y":20,"size":2}' --json ``` ## Robot Arm ```bash uv run reyna-cli devices arm state uv run reyna-cli devices arm home uv run reyna-cli devices arm wave uv run reyna-cli devices arm battery --json ``` ## ESP32 screen & iPhone ```bash uv run reyna-cli devices screen text "Dinner is ready" uv run reyna-cli devices iphone battery --json ``` ## Immich ```bash uv run reyna-cli immich stats uv run reyna-cli immich albums uv run reyna-cli immich search "sunset" --limit 5 uv run reyna-cli immich tools ``` ## MongoDB ```bash uv run reyna-cli mongo dbs uv run reyna-cli mongo collections my_db uv run reyna-cli mongo count my_db my_coll --filter '{"status":"active"}' uv run reyna-cli mongo find my_db my_coll --limit 5 uv run reyna-cli mongo aggregate my_db my_coll --pipeline '[{"$match":{}}]' ``` ## Tests ```bash uv run pytest -q ```