Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Inbox
ReportR-30GitHub issuePublicReceived

Hermes Desktop launcher crashes: "too many values to unpack (expected 4)" — _desktop_launch_options() now returns >4 values

Reported by momentumwave · filed Sep 28, 2026Closed upstream on 2026-09-29 by the merge of PR omacom/omarchy-pkgs#718 (closed by spencerbull). GitHub close reason: completed.

Received and recorded verbatim. Nothing has been checked yet.

At a glance

1 · What is claimed?
Only the report text below — no validator has restated it as checkable claims yet.
2 · What does it affect?
Not yet mapped to any requirement or component.
3 · Is it reproducible?
No validation has been run yet.
4 · What remains unclear?
  • Not validated yet: no claims, no reproducer.
5 · What happens next?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

Hermes Desktop launcher crashes: "too many values to unpack (expected 4)" — _desktop_launch_options() now returns >4 valuesrevision 1 · captured 2026-09-28 21:23 UTC via poll

Summary

Omarchy's /usr/sbin/hermes-desktop wrapper script crashes with ValueError: too many values to unpack (expected 4) when launching the desktop app. No window appears, no error dialog — silent failure from the launcher.

Reproduction

  1. Install Omarchy 4.0.0.alpha (updated today, Sep 27 2026)
  2. Install Hermes via Omarchy's "Install > AI" menu
  3. Click the "Hermes Desktop" entry in the app drawer, or run hermes-desktop in a terminal
  4. The desktop app does not start. Terminal output:
$ hermes-desktop
Traceback (most recent call last):
  File "<stdin>", line 18, in <module>
ValueError: too many values to unpack (expected 4)

Root cause

In /usr/sbin/hermes-desktop (Omarchy-shipped script), the embedded Python heredoc contains on line 55:

flags, gpu, store, ozone = _desktop_launch_options()

Upstream Hermes changed _desktop_launch_options() (in hermes_cli.main_desktop) to return more than 4 values, but the Omarchy wrapper still unpacks exactly 4.

The wrapped Python is fed the heredoc on stdin, so this is the embedded payload that the wrapper ships — not something the user's Hermes install changes between versions.

Environment

  • Omarchy: 4.0.0.alpha (/usr/share/omarchy/version)
  • Hermes: cd3f453f3ea on main (fmt(js): npm run fix on merge (#125819))
  • Python: 3.14.7
  • Binary present: /opt/hermes-desktop/Hermes ✓ and ~/.hermes/hermes-agent/apps/desktop/release/linux-unpacked/Hermes ✓
  • Wrapper script: /usr/sbin/hermes-desktop

Suggested fix

Update the embedded Python in hermes-desktop to absorb the extra return values, e.g.:

flags, gpu, store, ozone, *_ = _desktop_launch_options()

The right place to file this from Omarchy's side is the script under /usr/sbin/hermes-desktop (or wherever the post-install copy lives in the Omarchy tree). Hermes-side: _desktop_launch_options() should ideally return a namedtuple/dataclass so external consumers don't break on signature changes.

Cross-references expected: will also file an issue against NousResearch/hermes-agent asking that _desktop_launch_options() become backward-compatible, since Omarchy's launcher is one of several consumers that hard-code the 4-tuple unpack.

View raw text
## Summary

Omarchy's `/usr/sbin/hermes-desktop` wrapper script crashes with `ValueError: too many values to unpack (expected 4)` when launching the desktop app. No window appears, no error dialog — silent failure from the launcher.

## Reproduction

1. Install Omarchy 4.0.0.alpha (updated today, Sep 27 2026)
2. Install Hermes via Omarchy's "Install > AI" menu
3. Click the "Hermes Desktop" entry in the app drawer, or run `hermes-desktop` in a terminal
4. The desktop app does not start. Terminal output:

```
$ hermes-desktop
Traceback (most recent call last):
  File "<stdin>", line 18, in <module>
ValueError: too many values to unpack (expected 4)
```

## Root cause

In `/usr/sbin/hermes-desktop` (Omarchy-shipped script), the embedded Python heredoc contains on line 55:

```python
flags, gpu, store, ozone = _desktop_launch_options()
```

Upstream Hermes changed `_desktop_launch_options()` (in `hermes_cli.main_desktop`) to return more than 4 values, but the Omarchy wrapper still unpacks exactly 4.

The wrapped Python is fed the heredoc on stdin, so this is the embedded payload that the wrapper ships — not something the user's Hermes install changes between versions.

## Environment

- Omarchy: 4.0.0.alpha (`/usr/share/omarchy/version`)
- Hermes: `cd3f453f3ea` on `main` (`fmt(js): npm run fix on merge (#125819)`)
- Python: 3.14.7
- Binary present: `/opt/hermes-desktop/Hermes` ✓ and `~/.hermes/hermes-agent/apps/desktop/release/linux-unpacked/Hermes` ✓
- Wrapper script: `/usr/sbin/hermes-desktop`

## Suggested fix

Update the embedded Python in `hermes-desktop` to absorb the extra return values, e.g.:

```python
flags, gpu, store, ozone, *_ = _desktop_launch_options()
```

The right place to file this from Omarchy's side is the script under `/usr/sbin/hermes-desktop` (or wherever the post-install copy lives in the Omarchy tree). Hermes-side: `_desktop_launch_options()` should ideally return a namedtuple/dataclass so external consumers don't break on signature changes.

Cross-references expected: will also file an issue against NousResearch/hermes-agent asking that `_desktop_launch_options()` become backward-compatible, since Omarchy's launcher is one of several consumers that hard-code the 4-tuple unpack.

Validation

Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.

Linked

Not linked to any known issue, other report or change yet.

Decision

Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.

No decision has been recorded yet.