A false green Connected badge is worse than a visible disconnect.
A mobile control surface for an AI agent has a different failure mode from a normal chat app: stale information can cause a real operator mistake. I am building Hermes Mobile, an Expo/React Native client for a Hermes gateway running on a user-operated computer.
The problem appears across Cursor, Claude Code, ChatGPT/Codex, Gemini CLI, Replit Agent, GitHub Copilot, Windsurf, and OpenClaw. Hermes Mobile is not a direct client for those services; it is the operator surface for the Hermes gateway you run.
1. Disconnected is a first-class state
The UI needs to distinguish active, stale, reconnecting, and unreachable. Hiding those states behind a spinner makes it impossible to know whether an approval request is current.
2. Approval needs context
A useful card includes the exact command, target machine, workspace, affected files or diff when available, and an obvious deny path. Approve without provenance is remote execution with a smaller screen.
3. The network boundary stays visible
The gateway runs on macOS, Windows, or Linux. Pairing may use local Wi-Fi, QR or LAN discovery, Tailscale, or relay access, but the client should identify the active machine and route.
4. The upgrade maps to operational value
Basic chat and run state are the entry experience. Leash Pro unlocks remote approve or deny for risky commands. The upgrade is control, not vague extra AI credits.
Install Android, pair one computer, and send one real message. If it works, an honest Play review helps. If it fails, report the exact step.
Source: https://github.com/IgorGanapolsky/mac-yolo-safeguards/tree/main/hermes-mobile
Android is live; the iPhone release is still in review. Hermes Mobile is independent and is not affiliated with Nous Research, Anthropic, OpenAI, or Cursor.
Top comments (0)