hermes - 💡(How to fix) Fix Add an explicit Termux-safe update path or auto-detect Termux during hermes update [2 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

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…
GitHub stats
NousResearch/hermes-agent#18015Fetched 2026-05-01 05:54:20
View on GitHub
Comments
2
Participants
2
Timeline
5
Reactions
0
Timeline (top)
labeled ×3commented ×2

Root Cause

The automatic path may be preferable because Termux users should not need to know the correct fallback command.

Code Example

pip install -e .[all]

---

cd ~/.hermes/hermes-agent
source venv/bin/activate
python -m pip install -e '.[termux]'

---

hermes update --termux-safe

---

hermes update
Updating Python dependencies...
Termux detected; using the Android-safe dependency set instead of .[all]

---

python -m pip install -e '.[termux]'
RAW_BUFFERClick to expand / collapse

Problem

On Termux/Android, the normal hermes update path can fail or appear stuck while installing dependencies that are not appropriate for Android/aarch64.

The project already defines a termux optional dependency group in pyproject.toml, but the updater path has historically attempted the broader install target:

pip install -e .[all]

On Termux, .[all] can pull optional dependency groups that are unreliable or unsupported in this environment, especially voice/matrix/native-build related dependencies.

Observed recovery path

The successful manual repair path on Termux was to use the Termux-specific extra instead of the full optional dependency set:

cd ~/.hermes/hermes-agent
source venv/bin/activate
python -m pip install -e '.[termux]'

In earlier troubleshooting, using the Termux-specific install path also avoided native build failures from optional dependencies.

Proposed solution

Either of these would be useful:

  1. Auto-detect Termux/Android inside hermes update and install .[termux] instead of .[all].
  2. Add an explicit flag, for example:
hermes update --termux-safe

The automatic path may be preferable because Termux users should not need to know the correct fallback command.

Detection idea

Termux can be detected with checks such as:

  • TERMUX_VERSION environment variable
  • $PREFIX containing com.termux/files/usr

Expected behavior

On Termux:

hermes update
→ Updating Python dependencies...
  → Termux detected; using the Android-safe dependency set instead of .[all]

Then the updater should run the equivalent of:

python -m pip install -e '.[termux]'

Environment

  • Platform: Termux on Android
  • Python: 3.13.13
  • Architecture: aarch64
  • Hermes repo install: editable checkout under ~/.hermes/hermes-agent

Related context

A small branch has been tested locally that auto-detects Termux and switches the update dependency target from .[all] to .[termux], with unit coverage for Termux and non-Termux behavior.

extent analysis

TL;DR

Modify the hermes update command to use the Termux-specific dependency set .[termux] instead of .[all] when running on Termux/Android.

Guidance

  • Detect Termux environment using checks such as the presence of TERMUX_VERSION environment variable or $PREFIX containing com.termux/files/usr.
  • Use the detected environment to determine whether to install .[termux] or .[all] dependencies.
  • Consider adding an explicit flag, e.g., hermes update --termux-safe, as an alternative to auto-detection.
  • Verify the fix by running hermes update on Termux and checking that it installs the correct dependencies without errors.

Example

if [ -n "$TERMUX_VERSION" ]; then
  python -m pip install -e '.[termux]'
else
  python -m pip install -e '.[all]'
fi

Notes

The proposed solution assumes that the termux optional dependency group in pyproject.toml is correctly defined and includes all necessary dependencies for Termux/Android.

Recommendation

Apply the workaround by modifying the hermes update command to use the Termux-specific dependency set, as it provides a reliable and supported installation path for Termux/Android users.

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…

FAQ

Expected behavior

On Termux:

hermes update
→ Updating Python dependencies...
  → Termux detected; using the Android-safe dependency set instead of .[all]

Then the updater should run the equivalent of:

python -m pip install -e '.[termux]'

Still need to ship something?

×6

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

Back to top recommendations

TRENDING