Hermes Agent for macOS is a native desktop window for Hermes Web UI. Built in Swift around a WKWebView, it loads the web interface without a browser or Electron and adds macOS conveniences on top. The app is a wrapper only: it requires a running Hermes Web UI instance, either on the Mac or on a remote server, and shows a connection error otherwise.
Two connection modes are available. Direct mode loads a target URL. SSH tunnel mode takes a username, host, local port, and remote port, opens an SSH tunnel on launch, monitors it, and tears it down on quit, and a status bar shows tunnel state with a one-click reconnect. SSH key authentication is required, StrictHostKeyChecking=accept-new records a host key on first connection and rejects changes afterward, and ExitOnForwardFailure=yes fails the tunnel rather than connecting with broken port forwarding.
Preferences (⌘,) hold the connection settings and a Test Connection button, and settings persist across launches. The source is a Swift Package Manager project with a build script and unit tests.
Features
- Native macOS shell: Dock icon, standard menu bar, and a WKWebView window for Hermes Web UI
- Direct or SSH tunnel: local instances by URL, remote servers through a managed SSH tunnel with live status and reconnect
- Clipboard and files: paste text and images with ⌘V and upload files through the paperclip button
- Notifications: macOS notifications when an AI response finishes while the window is in the background
- Voice input: microphone permission requested on first use
- Keyboard shortcuts: ⌘R reload, ⌘W hide, ⌘⇧H global bring-to-front, and ⌘+/⌘−/⌘0 zoom controls
- External links: open in Safari rather than inside the app
- Auto-update: Sparkle checks for new versions on launch or from the app menu
- SSH hardening: key-only auth, accept-new host-key policy, and fail-fast port forwarding

