Hermes на Android через Termux
Это проверенный способ запустить Hermes Agent прямо на телефоне Android через Termux.
На выходе — рабочий локальный CLI на самом телефоне и тот набор расширений, который на сегодня точно встаёт на Android чисто.
Что поддерживается в проверенном пути?
Проверенная сборка для Termux ставит:
- CLI Hermes
- поддержку cron
- поддержку PTY/фоновых терминалов
- поддержку шлюза Telegram (ручные / по возможности фоновые запуски)
- поддержку MCP
- поддержку памяти Honcho
- поддержку ACP
Команда за этим набором — одна:
python -m pip install -e '.[termux]' -c constraints-termux.txt
Что пока не входит в проверенный путь?
Часть возможностей всё ещё тянет за собой зависимости десктопного или серверного уровня, а их либо не собирают под Android, либо просто не проверяли на телефонах:
.[all]сегодня на Android не поддерживается- дополнение
voiceупирается в цепочкуfaster-whisper -> ctranslate2, аctranslate2не публикует wheel-ы для Android - автоматический bootstrap браузера / Playwright установщик Termux пропускает
- изоляция терминала через Docker внутри Termux недоступна
- Android по-прежнему может усыплять фоновые задачи Termux, поэтому персистентность шлюза держится «по возможности», а не как штатный управляемый сервис
Полноценному CLI-агенту на телефоне это не мешает — просто рекомендуемая мобильная установка намеренно уже десктопной и серверной.
Вариант 1: установщик в одну строку
У Hermes теперь есть путь установщика, который понимает Termux:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
В Termux установщик делает всё сам:
- берёт
pkgдля системных пакетов - создаёт venv через
python -m venv - сначала пробует широкое дополнение
.[termux-all], при неудаче откатывается к более узкому.[termux], а в крайнем случае — к базовой установке; curl-установщик соблюдает этот порядок без вашего участия - линкует
hermesв$PREFIX/bin, чтобы он оставался в PATH Termux - обходит непроверенный bootstrap браузера / WhatsApp
Нужны явные команды или предстоит разобрать неудачную установку? Тогда вам ниже — в ручной путь.
Вариант 2: ручная установка (полностью явная)
1. Обновите Termux и поставьте системные пакеты
pkg update
pkg install -y git python clang rust make pkg-config libffi openssl nodejs ripgrep ffmpeg
Зачем эти пакеты?
python— рантайм + поддержка venvgit— клонирование/обновление репозиторияclang,rust,make,pkg-config,libffi,openssl— нужны, чтобы собрать часть зависимостей Python на Androidnodejs— опциональный рантайм Node для экспериментов за пределами проверенного ядраripgrep— быстрый поиск по файламffmpeg— медиа и конвертации для синтеза речи
2. Клонируйте Hermes
git clone https://github.com/NousResearch/hermes-agent.git
cd hermes-agent
3. Создайте виртуальное окружение
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 критична для пакетов на Rust / maturin — например, для jiter.
4. Поставьте проверенную сборку Termux
python -m pip install -e '.[termux]' -c constraints-termux.txt
Если хватает минимального ядра агента, сработает и это:
python -m pip install -e '.' -c constraints-termux.txt
5. Добавьте hermes в PATH Termux
ln -sf "$PWD/venv/bin/hermes" "$PREFIX/bin/hermes"
$PREFIX/bin в Termux уже лежит в PATH, поэтому команда hermes переживёт открытие новой оболочки — активировать venv заново каждый раз не придётся.
6. Проверьте установку
hermes version
hermes doctor
7. Запустите Hermes
hermes
Рекомендуемая донастройка
Настройте модель
hermes model
Или пропишите ключи прямо в ~/.hermes/.env.
Позже перезапустите полный интерактивный мастер
hermes setup
Установите опциональные зависимости Node вручную
Проверенный путь Termux намеренно пропускает bootstrap Node и браузера. Захотите позже поиграть с браузерными инструментами — доставьте вручную:
pkg install nodejs-lts
npm install
Инструмент браузера сам подставляет каталоги Termux (/data/data/com.termux/files/usr/bin) в поиск по PATH, так что agent-browser и npx находятся без отдельной настройки.
Браузерные инструменты и WhatsApp на Android пока считайте экспериментом, пока в документации не сказано иначе.
Решение проблем
No solution found при установке .[all]
Возьмите вместо .[all] проверенную сборку Termux:
python -m pip install -e '.[termux]' -c constraints-termux.txt
Камень преткновения здесь — дополнение voice:
voiceтянетfaster-whisperfaster-whisperзависит отctranslate2ctranslate2не публикует wheel-ы для Android
uv pip install падает на Android
Идите путём Termux — стандартный venv плюс pip:
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 жалуется на ANDROID_API_LEVEL
Задайте уровень API явно ещё до установки:
export ANDROID_API_LEVEL="$(getprop ro.build.version.sdk)"
python -m pip install -e '.[termux]' -c constraints-termux.txt
hermes doctor сообщает, что нет ripgrep или Node
Поставьте их пакетами Termux:
pkg install ripgrep nodejs
Ошибки сборки при установке пакетов Python
Проверьте, что на месте весь инструментарий сборки:
pkg install clang rust make pkg-config libffi openssl
Потом повторите установку:
python -m pip install -e '.[termux]' -c constraints-termux.txt
Известные ограничения на телефонах
- бэкенд Docker недоступен
- локальная транскрипция голоса через
faster-whisperв проверенном пути не работает - настройку автоматизации браузера установщик намеренно пропускает
- какие-то опциональные дополнения, возможно, заведутся, но как проверенные сборки для Android задокументированы пока только
.[termux]и.[termux-all]
Наткнулись на новую проблему именно под Android? Заведите issue на GitHub и приложите:
- вашу версию Android
- вывод
termux-info python --versionhermes doctor- точную команду установки и полный текст ошибки