Tutorial 11: Running Hermes on Android (Termux)
Tutorial 11: Running Hermes on Android (Termux) — easy-to-understand guide based on official docs
Tutorial 11: Running Hermes on Android (Termux)
Welcome back, agent builders! Today we’re turning your Android phone into a pocket-sized AI agent machine. Hermes now ships an official signed APT package, so pkg install hermes-agent is all it takes — no compiling Python dependencies on your phone.
:::danger The Termux package is currently broken The Termux package does not work right now. A fix is in progress and will ship soon. Until then, the steps below may fail, or install a package that does not run — check the official docs before you start. :::
:::warning Tier 2 platform Android / Termux is a Tier 2 platform: releases may break it and fixes are best-effort. Only aarch64 devices are supported. :::
Termux Support at a Glance
| Item | Value |
|---|---|
| Supported architecture | aarch64 (arm64-v8a) only |
| Termux app | Standard Termux; required prefix /data/data/com.termux/files/usr |
| Android API level | API 24 (android_24_arm64_v8a wheels) |
| Install method | Signed APT package: pkg install hermes-agent — never the desktop install.sh |
| Bundled runtimes | Python 3.14 (bionic pin), Node.js, npm, uv, ripgrep, ffmpeg |
| Support tier | Tier 2 — releases may break it, fixes are best-effort |
| Updates | pkg update && pkg upgrade hermes-agent; hermes update refuses to touch an APT install |
| Gateway | Runs in a Termux session with hermes gateway run (no systemd, launchd or Scheduled Tasks) |
| Not included | Electron, local Chromium, desktop computer-use tools, a Docker daemon, phone voice/clipboard adapters |
The official APT package: two channels
The package runs Hermes on aarch64 (arm64-v8a) Android devices. Two APT channels are published under https://hermes-assets.nousresearch.com/releases/termux/<channel>:
| Channel | APT suite | Contents |
|---|---|---|
stable |
hermes-stable |
Tagged vMAJOR.MINOR.PATCH releases that passed the stable release gate |
canary |
hermes-canary |
Prerelease builds from canary tags; versions carry ~canary.<timestamp> |
The steps below use stable. To follow prereleases, replace stable with canary and hermes-stable with hermes-canary in steps 2 and 4 — both channels are signed with the same key.
The package already includes Python, Node.js, npm, uv, ripgrep, ffmpeg and their runtime libraries. CI builds the native Python wheels and the TUI before it creates the package, so your device compiles no core dependencies and assembles no base Python environment. It uses Python 3.14 with the bionic interpreter pin (it does not need the same patch version as desktop CPython), and the wheel closure is core plus acp — not all desktop extras.
Install
Use the standard Termux application. The package requires its standard prefix /data/data/com.termux/files/usr; other architectures and renamed Termux application packages are not supported, and the wheels target Android API 24 (android_24_arm64_v8a). Do not use the desktop/server install.sh or a glibc Linux archive on this target.
-
Install the tools for repository setup:
pkg install curl gnupg -
Download the public key:
mkdir -p "$PREFIX/etc/apt/keyrings" curl -fsSL \ https://hermes-assets.nousresearch.com/releases/termux/stable/key.asc \ -o "$PREFIX/etc/apt/keyrings/hermes-agent.asc" -
Verify its primary fingerprint:
gpg --show-keys --with-fingerprint "$PREFIX/etc/apt/keyrings/hermes-agent.asc"The repository key fingerprint is:
C572 B5FD D1A2 9CCF A9A9 12B6 840B 0848 E139 156DIf the fingerprint differs, stop. Do not disable signature verification.
-
Add the repository:
printf '%s\n' \ "deb [signed-by=$PREFIX/etc/apt/keyrings/hermes-agent.asc] https://hermes-assets.nousresearch.com/releases/termux/stable hermes-stable main" \ > "$PREFIX/etc/apt/sources.list.d/hermes-agent.list" -
Install Hermes:
pkg update pkg install hermes-agent -
Configure a provider, then start the TUI:
hermes setup hermes --tui
The hermes, hermes-agent, and hermes-acp commands use the packaged runtimes — they do not require Termux’s python or nodejs packages.
Files and updates
| Contents | Location |
|---|---|
| Package files | $PREFIX/lib/hermes-agent/ |
| Command symlinks | $PREFIX/bin/hermes, $PREFIX/bin/hermes-agent, $PREFIX/bin/hermes-acp |
| Configuration and user data | ~/.hermes/, or the selected HERMES_HOME |
Update through APT:
pkg update
pkg upgrade hermes-agent
hermes update refuses to modify an APT-owned installation — it prints the package-manager command instead. Canary versions contain ~canary.<timestamp> and sort before the corresponding stable version, and each suite only lists its own channel’s packages: to move between channels, edit the channel path and suite in hermes-agent.list, then pkg update && pkg upgrade hermes-agent.
Gateway
This APT installation does not use systemd, launchd, or Windows Scheduled Tasks. Run the gateway in a Termux session:
hermes gateway run
For a background process:
mkdir -p "${HERMES_HOME:-$HOME/.hermes}/logs"
nohup hermes gateway run >> "${HERMES_HOME:-$HOME/.hermes}/logs/gateway.log" 2>&1 &
:::warning Android process limits
Android can suspend or terminate background Termux processes. Battery optimization exemptions and termux-wake-lock can help, but do not guarantee persistent operation.
:::
Limits
- The package does not include the
nemo-relayexporter — its vendored build toolchain does not support this target - No Electron, bundled Chromium, or desktop computer-use tools — the browser tool launches a system
chromiumwhen one is onPATH(pkg install chromium, where your repository provides it); without one, browsing is unavailable and the browser tool says so - A local Docker daemon is not part of the Termux environment; remote services have their own requirements and connectivity limits
- Phone-native Termux:API microphone and clipboard adapters are not provided by this package path, and the prebuilt CLI/TUI is not proof of local voice or wake-word support
- Optional integrations and third-party plugins can require dependencies that do not support Android
- Python 3.14 on this target reports
sys.platform == "android", so a dependency or skill gated only tolinuxis not automatically available
Uninstall
pkg uninstall hermes-agent
APT removes the package and its command symlinks but preserves your configuration, sessions, skills, and memories.
Troubleshooting
- Package not found: verify the repository entry, then run
pkg update - Signature error: verify the public key fingerprint. Do not use an unsigned repository or bypass the error
- Missing command: verify that
$PREFIX/binis onPATH, or reinstall the package - Missing library or TUI bundle: report
hermes --versionand the complete error — the core package must not require a local rebuild - Gateway stops with the screen off: review Android’s battery and background-process limits
- For general diagnostics, run
hermes doctor
Wrap-up
Running Hermes on your phone is now three steps: add the signed official repo → pkg install hermes-agent → hermes setup. Just remember the warning at the top — the package is currently broken and a fix is on the way, so check the official docs for the latest status before you start.
Next time we’ll look at moving Hermes from one machine to another, or syncing across devices. Let us know what you’d like to see!
📖 Official Docs
This article is based on the official Hermes Agent documentation:Official docs › getting-started/termux