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 — рантайм + поддержка venv
  • git — клонирование/обновление репозитория
  • clang, rust, make, pkg-config, libffi, openssl — нужны, чтобы собрать часть зависимостей Python на Android
  • nodejs — опциональный рантайм 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-whisper
  • faster-whisper зависит от ctranslate2
  • ctranslate2 не публикует 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 --version
  • hermes doctor
  • точную команду установки и полный текст ошибки
ESC