NousResearch/hermes-agent

Dashboard browser-open crash on headless Linux

Cluster 24127. Data as of

Nothing open on GitHub. Fix merged in #24620 on 12 May 2026. Check it covers your case.

The short answer

0open issues
0open PRs
3items grouped
Known?
Yes. 3 related items grouped here, 1 issue already closed.
Fix event
A fix was merged to main in PR #24620. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this unresolved. That is separate from the fix event.
Still open
Nothing open on GitHub.

These items address a bug where running hermes dashboard on headless Linux environments causes the process to exit immediately while still reporting success. The fix skips the browser-open step in such environments to prevent the premature exit.

Open issues0

No open issues.

Open PRs0

No open pull requests.

Fixes on record

Merged to main. A stamp counts the issues a fix is linked to.

  • #24620 fix(dashboard): skip browser-open on headless Linux to prevent process exit

    merged to main

    files: hermes_cli/web_server.py, scripts/release.py

    Show the diff
    • hermes_cli/web_server.py
      @@ -4432,11 +4432,33 @@ def start_server(
           if open_browser:
               import webbrowser
       
      -        def _open():
      -            time.sleep(1.0)
      -            webbrowser.open(f"http://{host}:{port}")
      +        # On headless Linux (no DISPLAY or WAYLAND_DISPLAY) some registered
      +        # browsers are TUI programs (links, lynx, www-browser) that try to
      +        # take over the terminal.  That can send SIGHUP to the server process
      +        # and cause an immediate exit even though uvicorn bound successfully.
      +        # Skip the auto-open attempt on headless systems and let the user
      +        # open the URL manually.  macOS and Windows are always considered
      +        # display-capable.
      +        _has_display = (
      +            sys.platform != "linux"
      +            or bool(os.environ.get("DISPLAY"))
      +            or bool(os.environ.get("WAYLAND_DISPLAY"))
      +        )
      +
      +        if _has_display:
      +            def _open():
      +                try:
      +                    time.sleep(1.0)
      +                    webbrowser.open(f"http://{host}:{port}")
      +                except Exception:
      +                    pass
       
      -        threading.Thread(target=_open, daemon=True).start()
      +            threading.Thread(target=_open, daemon=True).start()
      +        else:
      +            _log.debug(
      +                "Skipping browser-open: no DISPLAY or WAYLAND_DISPLAY detected "
      +                "(headless Linux). Pass --no-open to suppress this detection."
      +            )
       
           print(f"  Hermes Web UI → http://{host}:{port}")
           uvicorn.run(app, host=host, port=port, log_level="warning")
    • scripts/release.py
      @@ -146,6 +146,8 @@
           "[email protected]": "Osraka",
           "[email protected]": "ryptotalent",
           "[email protected]": "hookinglau",
      +    "[email protected]": "AllynSheep",
      +    "[redacted:email]": "AllynSheep",
           "[redacted:email]": "novax635",
           "[redacted:email]": "Krionex",
           "[email protected]": "rxdxxxx",

1 PR closed without merging

From the close comments: merged via another change 1

  • #24129 fix(dashboard): skip browser-open on headless Linux to prevent process exit · merged via another change → #24620
Closed issues · 1
  • Closed#24127[Bug]: `hermes dashboard` reports success even when the dashboard process exits immediately
How this cluster was grouped
  • Link evidence (structural links throughout): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
  • Pairwise link density 0.67: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. 1.00 means every pair is linked.

Pick up a Lab task

Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.

Open the Lab

At a glance

Merged PRs
#24620
Closed issues
1
Attempts
1 PR closed without merging
Fix link checked
12 May 2026

For your agent

The same facts, typed.