Hermes на Android через Termux

опасно
Termux сейчас не работает

Пакет для Termux в данный момент сломан. Исправление уже готовится и скоро выйдет. До тех пор шаги ниже могут завершиться ошибкой или поставить пакет, который не запускается.

Пакет для Termux запускает Hermes на Android-устройствах с архитектурой aarch64 (arm64-v8a). Опубликованы два APT-канала по адресу https://hermes-assets.nousresearch.com/releases/termux/<channel>:

КаналAPT suiteЧто внутри
stablehermes-stableРелизы с тегами vMAJOR.MINOR.PATCH, прошедшие проверку перед стабильным выпуском
canaryhermes-canaryПредрелизные сборки из canary-тегов; в версии есть суффикс ~canary.<timestamp>

В шагах ниже используется stable. Чтобы получать предрелизы, в шагах 2 и 4 замените stable на canary, а hermes-stable — на hermes-canary. Оба канала подписаны одним ключом.

В пакет уже входят Python, Node.js, npm, uv, ripgrep, ffmpeg и их библиотеки времени выполнения. Нативные wheel-ы Python и TUI собирает CI ещё до упаковки. Поэтому при установке телефон не компилирует основные зависимости и не собирает базовое окружение Python. В пакете Python 3.14 с привязкой к интерпретатору под bionic; совпадение патч-версии с десктопным CPython не требуется. Набор wheel-ов — ядро плюс acp, а не все дополнения десктопной версии.

Установка

Нужно стандартное приложение Termux. Пакет рассчитан на стандартный префикс /data/data/com.termux/files/usr. Другие архитектуры и переименованные сборки приложения Termux не поддерживаются. Wheel-ы собраны под Android API 24 (android_24_arm64_v8a). Десктопный/серверный install.sh и Linux-архивы под glibc для этой платформы не подходят.

  1. Поставьте инструменты для подключения репозитория:

    pkg install curl gnupg
  2. Скачайте публичный ключ:

    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"
  3. Сверьте основной отпечаток ключа:

    gpg --show-keys --with-fingerprint "$PREFIX/etc/apt/keyrings/hermes-agent.asc"

    Отпечаток ключа репозитория:

    C572 B5FD D1A2 9CCF A9A9 12B6 840B 0848 E139 156D

    Если отпечаток другой — остановитесь. Проверку подписи не отключайте.

  4. Подключите репозиторий:

    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"
  5. Установите Hermes:

    pkg update
    pkg install hermes-agent
  6. Настройте провайдера и запустите TUI:

    hermes setup
    hermes --tui

Команды hermes, hermes-agent и hermes-acp работают на рантаймах из пакета. Пакеты python и nodejs из Termux для них не нужны.

Файлы и обновления

ЧтоГде
Файлы пакета$PREFIX/lib/hermes-agent/
Симлинки команд$PREFIX/bin/hermes, $PREFIX/bin/hermes-agent, $PREFIX/bin/hermes-acp
Конфигурация и данные пользователя~/.hermes/ или выбранный HERMES_HOME

Обновление — через APT:

pkg update
pkg upgrade hermes-agent

hermes update отказывается менять установку, которой управляет APT, и вместо этого печатает нужную команду пакетного менеджера. Версии canary содержат ~canary.<timestamp> и при сортировке идут раньше соответствующей стабильной версии. В каждом suite есть только пакеты своего канала; чтобы перейти на другой канал, поправьте путь канала и suite в hermes-agent.list, затем выполните pkg update && pkg upgrade hermes-agent.

Шлюз

Установка через APT не использует systemd, launchd или планировщик заданий Windows. Запускайте шлюз в сессии Termux:

hermes gateway run

Чтобы шлюз работал в фоне:

mkdir -p "${HERMES_HOME:-$HOME/.hermes}/logs"
nohup hermes gateway run >> "${HERMES_HOME:-$HOME/.hermes}/logs/gateway.log" 2>&1 &
внимание
Ограничения процессов в Android

Android может приостанавливать или завершать фоновые процессы Termux. Исключение из оптимизации батареи и termux-wake-lock помогают, но непрерывную работу не гарантируют.

Ограничения

Экспортёра nemo-relay в пакете нет: его встроенный инструментарий сборки эту платформу не поддерживает.

Не входят в пакет и Electron, локальный Chromium, инструменты computer-use для десктопа. Локального демона Docker в среде Termux тоже нет. У удалённых сервисов свои требования и ограничения по сетевому доступу.

Адаптеров микрофона и буфера обмена через Termux:API в этом варианте установки нет. То, что готовые CLI/TUI запускаются, ещё не значит, что локальный голос или wake word заработают. Опциональным интеграциям и сторонним плагинам могут понадобиться зависимости, которые Android не поддерживают.

Python 3.14 на этой платформе возвращает sys.platform == "android". Зависимость или навык, ограниченные только linux, на Android автоматически не появятся.

Удаление

pkg uninstall hermes-agent

APT удалит пакет и симлинки команд. Конфигурация, сессии, навыки и память останутся на месте.

Решение проблем

  • Пакет не найден: проверьте запись репозитория и выполните pkg update.
  • Ошибка подписи: сверьте отпечаток публичного ключа. Не переходите на неподписанный репозиторий и не обходите ошибку.
  • Команда не находится: убедитесь, что $PREFIX/bin есть в PATH, или переустановите пакет.
  • Не хватает библиотеки или бандла TUI: пришлите вывод hermes --version и полный текст ошибки. Основной пакет не должен требовать локальной пересборки.
  • Шлюз останавливается при выключенном экране: проверьте ограничения Android на батарею и фоновые процессы.

Для общей диагностики запустите hermes doctor.

перевод и редактура:

обновлено

⌕ ESC