Add Hermes Agent to local apps - #2143
Merged
Merged
Conversation
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)
gary149
requested review from
SBrandeis,
Wauplin,
julien-c,
ngxson and
pcuenca
as code owners
May 6, 2026 11:06
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.
julien-c
approved these changes
May 6, 2026
teknium1
approved these changes
May 7, 2026
teknium1
left a comment
There was a problem hiding this comment.
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.defaultare all valid config paths;customis a recognized provider and is in the allowlist for vendor-prefixed model IDs, soorg/repo:QUANT_TAGwon't trigger a doctor warning.curl | bashinstaller URL responds 200, andhermes setup+ barehermeslaunch flow is correct.- No changes needed on the hermes-agent side to support this.
Thanks for wiring us up alongside Pi!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
conversational, chat template referencestools)hermes config setCLI commands (verified to work) instead of editing~/.hermes/config.yamlby handisToolCallingLocalAgentModelandgetLocalServerStepso 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 passunsloth/Qwen3.6-27B-GGUF:UD-Q6_K_XLrunning on llama.cppNote
Medium Risk
Medium risk because it changes the generated Pi configuration
model.idfor 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 usinghermes config set ...against a local OpenAI-compatible server.Refactors the Pi/Hermes flow by extracting a shared
isToolCallingLocalAgentModelpredicate andgetLocalServerStepsnippet generator, and updates Pi’s generatedmodels.jsonto 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.