██╗ ██╗███████╗██████╗ ███╗ ███╗███████╗███████╗ ██████╗ ██╗ ██████╗██╗ ██╗███████╗██████╗
██║ ██║██╔════╝██╔══██╗████╗ ████║██╔════╝██╔════╝ ██╔══██╗██║██╔════╝██║ ██╔╝██╔════╝██╔══██╗
███████║█████╗ ██████╔╝██╔████╔██║█████╗ ███████╗ ██████╔╝██║██║ █████╔╝ █████╗ ██████╔╝
██╔══██║██╔══╝ ██╔══██╗██║╚██╔╝██║██╔══╝ ╚════██║ ██╔═══╝ ██║██║ ██╔═██╗ ██╔══╝ ██╔══██╗
██║ ██║███████╗██║ ██║██║ ╚═╝ ██║███████╗███████║ ██║ ██║╚██████╗██║ ██╗███████╗██║ ██║
╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
The full power of Hermes Agent — installed in pieces.
hermes-picker is a modular distribution of Hermes Agent. It wraps the real upstream agent unchanged, splits it into a lightweight core and optional modules, and installs only what you need.
All features available. None installed until you pick them.
Nothing is reimplemented — the agent, its CLI, and its config.yaml are upstream Hermes Agent.
hermes-picker simply decides what lands on disk, and where your runtime data lives. The result is a
clean, minimal-footprint Hermes that grows exactly as fast as you need it to.
- Small from the start. A clean core install is ~46 MB instead of ~177 MB — no
.git, no tests, no desktop app, no documentation website in the way. - Install what you use. TUI, dashboard, voice, messaging, dev tooling — everything is an opt-in
module, and everything is removable.
hermespi remove docs devfrees disk in one line. - A genuinely fresh start. Runtime data lives in an isolated
~/.hermes-picker/home, so SOUL, memory, sessions, and config never inherit leftovers from a previous Hermes install. - Built for constrained devices. Termux on Android is a first-class target, not an afterthought.
# Install the core (Termux / Linux / WSL)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/azrial/hermes-picker/main/installer/install.sh)"
# Enter Hermes Agent — the real CLI, just leaner
hermespi
# Add the pieces you want
hermespi add skills tui
hermespi listThe installer connects a provider and model on first run, so you can start chatting immediately.
| Piece | What it is |
|---|---|
core |
The engine — agent loop, CLI, tools, cron, gateways, providers. Always installed, kept clean. |
modules |
Optional surfaces and data: skills, TUI, dashboard, desktop, voice, messaging, dev tools, and more. |
hermespi |
The picker. Bare, it enters the Hermes CLI; add, remove, list, status, and update manage modules. |
installer/install.sh |
Downloads the upstream source tarball, extracts only the core, and sets up a working CLI. |
Under the hood, the installer downloads a source tarball of the pinned upstream release and extracts
exactly the paths declared in the manifest — a pristine core with zero history and zero metadata.
Modules work the same way, on demand: hermespi add <module> pulls the module's folders and
dependencies straight from that same cached tarball.
A module is anything you don't need on day one. The catalog is split into a few families, so the shape of the distribution stays obvious:
| Family | Examples | Why you'd add it |
|---|---|---|
| Feature | skills, voice, mcp, acp, locales |
Capabilities you opt into |
| Surface | tui, dashboard, desktop |
Interfaces beyond the CLI |
| Gateway | messaging, plugins |
Platform adapters (Telegram, Discord, Slack, …) |
| Tool | web, browser, vision, memory, cronjob, computer_use, … |
Individual model tools |
| Dev | docs, dev |
Documentation source, tests, and tooling |
hermespi list shows the full catalog with installed status. Nothing you add is permanent —
modules are removed just as easily as they are installed.
- Core source comes from an upstream tarball — no
.git, no history, no leftover metadata. Like a fresh official install, only smaller. - Runtime data —
HERMES_HOMEpoints at~/.hermes-picker/home, so SOUL, memory, sessions, and config never inherit from a prior install. Prefer your existing Hermes? Just runHERMES_HOME=~/.hermes hermespi.
hermespi update # re-download the pinned upstream, re-extract core + modulesUpdates re-apply the manifest and rebrand in place. The whole flow is idempotent, so running it again is always safe.
Android via Termux is a primary platform. You need curl, tar, python3, and — for the most
reliable setup — uv from the Termux repository:
pkg install curl
pkg install -y uv
sh -c "$(curl -fsSL https://raw.githubusercontent.com/azrial/hermes-picker/main/installer/install.sh)"Storage on phones is precious: hermespi remove <module> deletes the module's files immediately,
and nothing you didn't pick is ever extracted.
Active development. The distribution wraps upstream Hermes Agent as-is; this project's job is deciding what lands on disk — and shipping that decision cleanly.
MIT