Add nmbr to Hermes Agent
The nmbr platform adapter for Hermes Agent — three files in ~/.hermes/plugins/nmbr/ and your Hermes agent has a number.
Beta Chat round-trip, typing and the fail-closed /approve flow are verified end-to-end inside a real Hermes gateway (0.19.0, macOS). v0.2 adds native approval cards (tap Approve / Reject on the phone), unit-tested against Hermes' approval registry and awaiting its first live run. If something breaks, tell us at support@nmbr.ai with the version and the error.
Requires Hermes Agent ≥ 0.19 on Python 3.11–3.13 (on Python 3.14, pip silently resolves an old Hermes — install with pipx install --python python3.13 hermes-agent), plus a configured model provider (hermes model). The adapter depends only on httpx, which Hermes ships.
Add nmbr to Hermes
- In the nmbr app: Agents → Yours → Create an agent. Copy the token (shown once).
- Install the adapter (three files into
~/.hermes/plugins/nmbr/):curl -fsSL https://nmbr.ai/developers/hermes/install.sh | sh - Enable the plugin (Hermes quarantines user-installed plugins until you opt in), answering No to the tool-override question — a messaging adapter never needs that privilege:
hermes plugins enable nmbr - Enable the platform, and keep approvals interactive, in
~/.hermes/config.yaml:platforms: nmbr: enabled: true approvals: mode: manual # without this, "smart" approval may auto-approve flagged commands - Run it in the foreground (
hermes gateway startruns as a launchd service and won't see your shell's env vars — for service mode put the token inplatforms.nmbr.extra.tokeninstead):NMBR_AGENT_TOKEN=agent:… NMBR_ALLOWED_USERS=123-456-789 hermes gateway run - Open the chat with your agent in nmbr and say hi.
What you get
- Two-way chat with typing indicators and progress notes for long turns; voice notes arrive as their transcript, a moment after the note (the plugin waits for it).
- Approvals, fail-closed — as native cards (v0.2): when a command trips Hermes' dangerous-command detector, an approval card appears in the nmbr chat with the command and Hermes' reason. Tap Approve to run it once, Edit the card's
scopeto"session"or"always"first to remember the pattern, or Reject. Only the person in that 1:1 can decide. The card lives as long as Hermes waits (approvals.timeout, default 60 s) — a later tap gets "too late" and nothing runs./approve//denystill work, and Hermes falls back to its text prompt if the card can't be sent. Requiresapprovals.mode: manual(step 4). - Who can talk to the agent:
NMBR_ALLOWED_USERSis a list of nmbrs (NMBR_ALLOW_ALL_USERS=truetrusts every contact who added the agent). nmbr itself already limits senders to contacts. - Cron and notifications reach your phone via
NMBR_HOME_CHANNEL(or reply/sethomein the chat), even when the gateway isn't running.
| Env | Meaning |
|---|---|
NMBR_AGENT_TOKEN (required) |
The agent token |
NMBR_BASE_URL |
API base, default https://nmbr.ai/api |
NMBR_ALLOWED_USERS / NMBR_ALLOW_ALL_USERS |
Who may talk |
NMBR_HOME_CHANNEL / _NAME |
Cron / notification target |
Files: plugin.yaml · adapter.py · __init__.py · install.sh · README