website/docs/getting-started/termux.md
This is the tested path for running Hermes Agent directly on an Android phone through Termux.
It gives you a working local CLI on the phone, plus the core extras that are currently known to install cleanly on Android.
The tested Termux bundle installs:
Concretely, it maps to:
python -m pip install -e '.[termux]' -c constraints-termux.txt
A few features still need desktop/server-style dependencies that are not published for Android, or have not been validated on phones yet:
.[all] is not supported on Android todayvoice extra is blocked by faster-whisper -> ctranslate2, and ctranslate2 does not publish Android wheelsThat does not stop Hermes from working well as a phone-native CLI agent — it just means the recommended mobile install is intentionally narrower than the desktop/server install.
Hermes now ships a Termux-aware installer path:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
On Termux, the installer automatically:
pkg for system packagespython -m venv.[termux-all] extra first and falls back to the smaller .[termux] extra (then a base install) — the curl installer matches this order automaticallyhermes into $PREFIX/bin so it stays on your Termux PATHIf you want the explicit commands or need to debug a failed install, use the manual path below.
pkg update
pkg install -y git python clang rust make pkg-config libffi openssl nodejs ripgrep ffmpeg
Why these packages?
python — runtime + venv supportgit — clone/update the repoclang, rust, make, pkg-config, libffi, openssl — needed to build a few Python dependencies on Androidnodejs — optional Node runtime for experiments beyond the tested core pathripgrep — fast file searchffmpeg — media / TTS conversionsgit clone https://github.com/NousResearch/hermes-agent.git
cd hermes-agent
python -m venv venv
source venv/bin/activate
export ANDROID_API_LEVEL="$(getprop ro.build.version.sdk)"
python -m pip install --upgrade pip setuptools wheel
ANDROID_API_LEVEL is important for Rust / maturin-based packages such as jiter.
python -m pip install -e '.[termux]' -c constraints-termux.txt
If you only want the minimal core agent, this also works:
python -m pip install -e '.' -c constraints-termux.txt
hermes on your Termux PATHln -sf "$PWD/venv/bin/hermes" "$PREFIX/bin/hermes"
$PREFIX/bin is already on PATH in Termux, so this makes the hermes command persist across new shells without re-activating the venv every time.
hermes version
hermes doctor
hermes
hermes model
Or set keys directly in ~/.hermes/.env.
hermes setup
The tested Termux path skips Node/browser bootstrap on purpose. If you want to experiment with browser tooling later:
pkg install nodejs-lts
npm install
The browser tool automatically includes Termux directories (/data/data/com.termux/files/usr/bin) in its PATH search, so agent-browser and npx are discovered without any extra PATH configuration.
Treat browser / WhatsApp tooling on Android as experimental until documented otherwise.
No solution found when installing .[all]Use the tested Termux bundle instead:
python -m pip install -e '.[termux]' -c constraints-termux.txt
The blocker is currently the voice extra:
voice pulls faster-whisperfaster-whisper depends on ctranslate2ctranslate2 does not publish Android wheelsuv pip install fails on AndroidUse the Termux path with the stdlib venv + pip instead:
python -m venv venv
source venv/bin/activate
export ANDROID_API_LEVEL="$(getprop ro.build.version.sdk)"
python -m pip install --upgrade pip setuptools wheel
python -m pip install -e '.[termux]' -c constraints-termux.txt
jiter / maturin complains about ANDROID_API_LEVELSet the API level explicitly before installing:
export ANDROID_API_LEVEL="$(getprop ro.build.version.sdk)"
python -m pip install -e '.[termux]' -c constraints-termux.txt
hermes doctor says ripgrep or Node is missingInstall them with Termux packages:
pkg install ripgrep nodejs
Make sure the build toolchain is installed:
pkg install clang rust make pkg-config libffi openssl
Then retry:
python -m pip install -e '.[termux]' -c constraints-termux.txt
faster-whisper is unavailable in the tested path.[termux] and .[termux-all] are currently documented as the tested Android bundlesIf you hit a new Android-specific issue, please open a GitHub issue with:
termux-infopython --versionhermes doctor