hermes - 💡(How to fix) Fix Desktop app: SSH Tunnel connection settings not persisted across restarts

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

After successfully connecting via SSH Tunnel mode and saving the configuration, the desktop app forgets the connection on next launch and falls back to the local-install onboarding flow. Re-entering the same details via the "Connect via SSH" form works every time, but it has to be done after every restart.

Error Message

SSH tunnel failed to start: Error invoking remote method 'start-ssh-tunnel': Error: SSH tunnel not ready after 12000ms

Root Cause

After successfully connecting via SSH Tunnel mode and saving the configuration, the desktop app forgets the connection on next launch and falls back to the local-install onboarding flow. Re-entering the same details via the "Connect via SSH" form works every time, but it has to be done after every restart.

RAW_BUFFERClick to expand / collapse

Description

After successfully connecting via SSH Tunnel mode and saving the configuration, the desktop app forgets the connection on next launch and falls back to the local-install onboarding flow. Re-entering the same details via the "Connect via SSH" form works every time, but it has to be done after every restart.

Steps to reproduce

  1. Fresh install of Hermes Agent desktop v0.5.1 on Linux Mint 22 (MATE/X11).
  2. Welcome screen → "Connect via SSH" → fill in host / port (8642) / username / private key path → Connect.
  3. Tunnel establishes successfully ("SSH TUNNEL CONNECTED!" banner appears in Settings).
  4. Use the chat — works fine. Save in Settings if not already saved.
  5. Quit desktop app.
  6. Relaunch.

Expected

App reconnects to the previously configured remote Hermes over SSH tunnel automatically (or at minimum lands on a chat screen and reuses saved tunnel config).

Actual

App shows the "Welcome to Hermes" onboarding screen as if no remote was ever configured. On the second relaunch the symptom escalated to an "Installation Issue" screen with the message:

SSH tunnel failed to start: Error invoking remote method 'start-ssh-tunnel': Error: SSH tunnel not ready after 12000ms

The remote side is healthy throughout: systemctl is-active hermes-gateway = active, curl http://localhost:8642/v1/models returns HTTP 200, SSH key + passwordless login both verified from the same machine. Clicking "Connect via SSH" at the bottom and re-saving the same form makes it work again, until the next restart.

Environment

  • Desktop: v0.5.1 (released 2026-05-16)
  • Engine: v0.14.0, updated to latest via the "Update Engine" button on the day of report
  • OS: Linux Mint 22 (MATE/X11)
  • Remote runs on Ubuntu Server 24.04, Hermes installed via official install.sh
  • Connection: SSH Tunnel mode, remote port 8642, API_SERVER_ENABLED=true set in ~/.hermes/.env on the remote

Hypothesis

Looks like the desktop is not persisting last_used_mode (or equivalent) across restarts, so it always re-runs the onboarding/local-install flow. The SSH form data itself appears to be remembered (host/port/key path are pre-filled when I navigate back to it), so it might be only the active-mode flag that gets lost.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING