hermes-agent/agent
Daniel van Strien 154fd88b76 feat: add Hugging Face as a first-class inference provider
Register Hugging Face Inference Providers (router.huggingface.co/v1)
as a named provider alongside existing ones. Users can now:
- hermes chat --provider huggingface
- Use hf:model-name syntax (e.g. hf:Qwen/Qwen3-235B-A22B-Thinking-2507)
- Set HF_TOKEN in ~/.hermes/.env
- Select from 18 curated models via hermes model picker

OpenAI-compatible endpoint with automatic failover across providers
(Groq, Together, SambaNova, etc.), free tier included.

Files changed:
- hermes_cli/auth.py: ProviderConfig + aliases (hf, hugging-face, huggingface-hub)
- hermes_cli/models.py: _PROVIDER_MODELS, _PROVIDER_LABELS, _PROVIDER_ALIASES, _PROVIDER_ORDER
- hermes_cli/main.py: provider_labels, providers list, --provider choices, dispatch
- hermes_cli/setup.py: provider_choices, setup flow with token prompt
- hermes_cli/config.py: HF_TOKEN + HF_BASE_URL in OPTIONAL_ENV_VARS
- agent/model_metadata.py: context window entries for all curated HF models
- .env.example: HF_TOKEN documentation

Based on PR #1171 by @davanstrien. Salvaged onto current main with
additional completeness: setup.py flow, config.py env vars, auth.py
aliases, model_metadata context windows, .env.example.
2026-03-17 05:21:17 -07:00
..
__init__.py Refactor Terminal and AIAgent cleanup 2026-02-21 22:31:43 -08:00
anthropic_adapter.py fix(anthropic): tool_choice 'none' still allowed tool calls 2026-03-17 04:02:49 -07:00
auxiliary_client.py feat(compression): add summary_base_url + move compression config to YAML-only 2026-03-17 04:46:15 -07:00
context_compressor.py fix(compressor): summary role can create consecutive same-role messages 2026-03-17 04:08:37 -07:00
display.py feat(tools): centralize tool emoji metadata in registry + skin integration 2026-03-15 20:21:21 -07:00
insights.py feat: add route-aware pricing estimates (#1695) 2026-03-17 03:44:44 -07:00
model_metadata.py feat: add Hugging Face as a first-class inference provider 2026-03-17 05:21:17 -07:00
prompt_builder.py merge: resolve conflicts with origin/main 2026-03-17 04:30:37 -07:00
prompt_caching.py fix(cache_control) treat empty text like None to avoid anthropic api cache_control error 2026-03-13 18:08:46 -07:00
redact.py feat: secure skill env setup on load (core #688) 2026-03-13 03:14:04 -07:00
skill_commands.py fix: save /plan output in workspace (#1381) 2026-03-14 21:28:51 -07:00
smart_model_routing.py fix: hermes update causes dual gateways on macOS (launchd) (#1567) 2026-03-16 12:36:29 -07:00
title_generator.py feat: auto-generate session titles after first exchange 2026-03-17 04:14:40 -07:00
trajectory.py Refactor Terminal and AIAgent cleanup 2026-02-21 22:31:43 -08:00
usage_pricing.py feat: add route-aware pricing estimates (#1695) 2026-03-17 03:44:44 -07:00