Skip to content

Add Hermes Agent to local apps - #2143

Merged
gary149 merged 4 commits into
mainfrom
add-hermes-agent
May 7, 2026
Merged

Add Hermes Agent to local apps#2143
gary149 merged 4 commits into
mainfrom
add-hermes-agent

Conversation

@gary149

@gary149 gary149 commented May 6, 2026

Copy link
Copy Markdown
Collaborator
image

Summary

  • Add Hermes Agent as a local app for tool-calling models served via llama.cpp or MLX (same eligibility as Pi: GGUF or MLX, conversational, chat template references tools)
  • Snippet uses hermes config set CLI commands (verified to work) instead of editing ~/.hermes/config.yaml by hand
  • Refactor: extract isToolCallingLocalAgentModel and getLocalServerStep so Pi and Hermes share the predicate and the server-start step (Pi behavior unchanged byte-for-byte)

Test plan

  • pnpm --filter @huggingface/tasks test — 19/19 pass
  • Verified end-to-end with unsloth/Qwen3.6-27B-GGUF:UD-Q6_K_XL running on llama.cpp

Note

Medium Risk
Medium risk because it changes the generated Pi configuration model.id for GGUF models (now includes the quant tag) and adds new snippet logic that affects what users run/configure, though it’s isolated to local-app guidance.

Overview
Adds Hermes Agent as a new entry in LOCAL_APPS, available for the same tool-calling GGUF/MLX conversational models as Pi, and provides an install/config/run snippet using hermes config set ... against a local OpenAI-compatible server.

Refactors the Pi/Hermes flow by extracting a shared isToolCallingLocalAgentModel predicate and getLocalServerStep snippet generator, and updates Pi’s generated models.json to use the full GGUF model id including :{{QUANT_TAG}} (instead of the repo basename). Tests are expanded to cover Hermes (GGUF + MLX) and updated for the Pi id change.

Reviewed by Cursor Bugbot for commit c9c409d. Bugbot is set up for automated code reviews on this repo. Configure here.

Adds Hermes Agent (https://hermes-agent.nousresearch.com/) as a
local app. Hermes is a tool-calling local agent that can drive an
OpenAI-compatible local server (llama.cpp or MLX), so the
displayOnModelPage predicate matches the same conditions as Pi
(GGUF or MLX, conversational, chat template references "tools").

Refactors:
- extract isToolCallingLocalAgentModel — now shared by Pi and Hermes
- extract getLocalServerStep — the server-start snippet shared by Pi
  and Hermes (identical to Pi's previous inline version)

@pcuenca pcuenca left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🙌

Comment thread packages/tasks/src/local-apps.ts
gary149 added 2 commits May 6, 2026 13:31
Matches the form Hermes uses (org/repo:QUANT_TAG) — clearer than the
bare basename and identical at runtime since llama-server ignores the
model field.
Comment thread packages/tasks/src/local-apps.spec.ts Outdated

@teknium1 teknium1 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good from the Hermes side — verified the snippet end-to-end against current main:

  • hermes config set model.provider custom / model.base_url / model.default are all valid config paths; custom is a recognized provider and is in the allowlist for vendor-prefixed model IDs, so org/repo:QUANT_TAG won't trigger a doctor warning.
  • curl | bash installer URL responds 200, and hermes setup + bare hermes launch flow is correct.
  • No changes needed on the hermes-agent side to support this.

Thanks for wiring us up alongside Pi!

@gary149
gary149 merged commit b71006b into main May 7, 2026
6 of 7 checks passed
@gary149
gary149 deleted the add-hermes-agent branch May 7, 2026 14:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants