Hé Jamal, welkom bij deze speciale editie van onze podcast! Vandaag duiken we diep in Hermes Agent, die krachtige AI-assistent waar jij zo mee bezig bent. We gaan het hebben over hoe Hermes precies werkt, hoe je 'm het beste kunt inzetten met je Claude Max abonnement, en hoe je die Desktop-app optimaal gebruikt zonder verrassingen. En natuurlijk: die kosten en die recente inlog-perikelen. Geen zorgen, we maken het helder.
Laten we beginnen bij de basis: Hermes is in de kern een AI-agent die overal kan draaien en via chat met je communiceert. Hij gebruikt elk model dat je maar wilt, leert van zijn eigen ervaring, en jij stuurt 'm aan via Telegram, de command-line of die Desktop-app. Het is trouwens gratis software, je betaalt alleen voor het model dat je aanroept.
De architectuur is slim: één motor, de AIAgent, drijft alles aan. Van je CLI tot de Desktop-app, allemaal dezelfde slimme kern. En die praat op drie manieren met modellen, wat het superflexibel maakt om van provider te wisselen. Jouw bots, zoals Beeld, Dirigent of Contentclaude, zijn eigenlijk allemaal aparte profielen – een soort eigen thuismap met hun eigen geheugen en instellingen. Maar let op: nooit twee processen op hetzelfde profiel, dat geeft gedoe!
Wat Hermes écht uniek maakt, is dat zelflerende vermogen. Denk aan zes lagen die samenwerken: van geheugen dat in je prompt zit, tot skills die hij zelf leert schrijven als hij een herhaalbare workflow detecteert. En een stille review die na elke beurt kijkt of het geheugen of een skill kan worden bijgewerkt. En het mooie: je kunt dat leerproces zelfs met een goedkeuringshek beveiligen. Hij heeft ook meer dan 70 ingebouwde tools, en je kunt subagents delegeren voor complexe taken – die werken dan tijdelijk en focussen op één ding. En qua deployment? Je agent kan overal draaien, zelfs op een goedkope server die slaapt als hij niks doet, en jij praat er gewoon mee via Telegram. Oh, en Bot Mode, waarbij je bots elkaar berichten sturen, is ideaal voor jullie interne communicatie – met @mentions bijvoorbeeld. Elk gesprek wordt trouwens bewaard als sessie, met een zoekfunctie, en Hermes vat lange gesprekken automatisch samen om je contextvenster binnen de perken te houden, en daarmee de kosten.
Dan de hamvraag, Jamal: Claude via je Max-abonnement. Kan het? Ja, maar met een paar stevige 'mitsen'. Hermes heeft een officiële Anthropic OAuth-flow, net als bij Grok. Maar je hebt Claude Max nodig *plus gekochte extra usage-credits*. Je standaard Max-tegoed en Claude Pro werken hier niet. Hermes gebruikt dus alleen je extra credits.
Je recente inlog-storm? Die kwam doordat Claude-OAuth in de praktijk werkt als één 'seat'. En als dan meerdere bots, plus jouw eigen Claude Code-sessie, tegelijk die login proberen te gebruiken, krijg je conflicts en 401/429-fouten. Vooral als je een handmatige token had die niet automatisch ververst. De oplossing? Gebruik `hermes auth add anthropic --type oauth`. Dan beheert Hermes zelf de verversing van die tokens. Plus, Hermes kan trouwens ook omgaan met 429's, 402's en 401's door automatisch te roteren of te verversen.
Concreet advies: optie A is de meest probleemloze weg: een losse Anthropic API-key. Die kost geld per token, maar is super robuust en geeft geen login-conflicten. Optie B, als je per se die Max-credits wilt gebruiken, is OAuth mét een API-key als terugval. Maar: zet dan maar één bot op die OAuth én vermijd tegelijkertijd je eigen Claude Code-sessie. En een belangrijke valkuil: elke keer dat je wisselt van model of sleutel, reset je prompt-cache. De volgende keer betaal je dus weer voor de hele context. Niet te veel heen en weer springen dus! De Desktop-app zelf is trouwens alleen de interface; de model-provider configureer je op de backend waar de app mee verbindt.
Over die Desktop-app gesproken: het is dezelfde krachtige agent als je CLI, je kunt sessies gewoon wisselen. De app start alleen z'n eigen 'headless' backend, waar de React-UI mee praat. Maar dan die modelkeuze, en de storing van vandaag. Er zijn drie lagen: de snelle kiezer links van je microfoon, de globale default per profiel in de instellingen, en het `/model` commando in een chat.
Jouw 401-storing vandaag? Die kwam doordat iemand in één specifieke sessie `/model opencode-zen:x-preview-f-free` typte. Dat schreef die specifieke provider en model in de *sessie-rij* van je database. De volgende keer dat die sessie weer werd gebruikt, probeerde Hermes exact dát model aan te roepen, wat een 401 gaf – "Model not supported". Je profiel-default was nooit veranderd, alleen die ene sessie was 'besmet'. Hoe je dat voorkomt? Wissel modellen vroeg in een chat of start een verse chat, en gebruik alleen de picker met curated modellen. Vrij typen van provider-namen omzeilt de checks. Voor een eenmalige testvraag kun je `/model --once` gebruiken, dan herstelt hij vanzelf.
Oké, Jamal, even de belangrijkste punten op een rij: Hermes is superflexibel en gratis software, maar je betaalt voor het AI-model. Claude Max kan, maar vereist extra credits en een zorgvuldige OAuth-configuratie, liefst met maar één bot op die OAuth. En die Desktop-app: kies je modellen via de UI of aan het begin van een verse chat om verrassingen te voorkomen, zoals die 401 van vandaag. Door slim om te gaan met profielen, credential-pools en die modelkeuzes, haal je het maximale uit Hermes, zonder onnodige kosten of frustrerende logins.
Hopelijk is dit allemaal een stuk duidelijker geworden en helpt het je om Hermes nog efficiënter in te zetten. Bedankt voor het luisteren en tot de volgende keer!
Dit is je master-naslag over Hermes Agent van Nous Research, met focus op de Desktop-app, op Claude via je Max-abonnement, en op kosten. Onderzocht met de volledige broncode van jouw eigen installatie (v0.20.4) plus de officiële docs. Bij elke claim staat een bron: een bestandspad of een link.
hermes auth add anthropic --type oauth (zodat Hermes de token zelf ververst), met een API-key als terugval in een credential-pool. Zet maar één bot op die OAuth.Hermes is een AI-agent die overal draait en via chat praat. Hij gebruikt elk model dat je wilt, leert van zijn eigen ervaring, en je bedient hem via Telegram, CLI of de Desktop-app. Bron: README.md, website/docs/index.mdx.
AIAgent. CLI, Desktop, cron, API-server, gateway gebruiken dezelfde motor. Alleen het instappunt verschilt. Bron: website/docs/developer-guide/architecture.md.website/docs/developer-guide/agent-loop.md.chat_completions (OpenAI-achtig), codex_responses (Codex), anthropic_messages (Anthropic). Daarom kun je van provider wisselen zonder code te veranderen. Bron: agent-loop.md.architecture.md, index.mdx.~/.hermes/profiles/<naam>/. Eigen config, .env, SOUL.md, geheugen, sessies, skills, cron, en state.db. Bron: website/docs/user-guide/profiles.md.~/.hermes-root.profiles.md.Zes lagen die samenwerken:
1. Geheugen (MEMORY.md + USER.md, klein, altijd in de prompt). De agent beheert dit zelf. Het is een bevroren snapshot: wijzigingen verschijnen pas volgende sessie in de prompt. Bron: features/memory.md.
2. Skills (markdown-procedures, laden alleen als nodig, kosten 0 tokens tot dan). Bron: guides/work-with-skills.md.
3. Autonome skill-creatie: de agent schrijft zelf skills als hij een herhaalbare workflow vond of jij hem corrigeerde. Bron: features/skills.md.
4. Background review: na een beurt draait stil een review die een geheugen-regel of skill kan bijwerken. Je ziet dan 💾 Memory updated. Bron: features/memory.md.
5. session_search: doorzoekt met SQLite FTS5 al je oude gesprekken. Gratis, geen model-call. Bron: features/sessions.md.
6. Honcho (optioneel): bouwt een dieper model van wie je bent, over sessies heen. Bron: features/memory-providers.md.
Belangrijk voor jou: je kunt de zelf-verbetering met een goedkeur-hek aanzetten. memory.write_approval: true of skills.write_approval: true, dan review je met /memory pending of /skills pending. Bron: features/memory.md, features/skills.md.
developer-guide/tools-runtime.md.config.yaml onder mcp_servers:, met per server een whitelist van tools voor gevaarlijke systemen. Herladen met /reload-mcp. Bron: guides/use-mcp-with-hermes.md.delegate_task): tot 3 tegelijk, eigen verse context, alleen de eindsamenvatting komt terug. Anders dan bots: subagents zijn tijdelijk en context-loos. Bron: features/delegation.md.README.md, index.mdx.index.mdx.features/bot-mode.md.@researcher kijk hier eens naar), group chats (2-6 bots, harde cap van 3 rondes en 10 berichten tegen lussen), en directe berichten via een tempbestand. Bron: bot-mode.md.bot-mode.md.state.db (SQLite, WAL-mode, met FTS5-zoekindex). Per profiel apart. Bron: features/sessions.md.agent-loop.md.sessions.md.website/docs/integrations/providers.md.features/credential-pools.md, providers.md.providers.md.Bron: providers/base.py, developer-guide/model-provider-plugin.md.
- api_key — sleutel in .env (Anthropic API-key, OpenAI, Gemini, enz.)
- oauth_device_code — code in browser (Nous Portal)
- oauth_external — je logt elders in, tokens landen in auth.json (Anthropic OAuth, MiniMax, xAI Grok, Nous Portal). Dit is wat Codex bij jou gebruikt.
- external_process / copilot / aws / vertex — bijzondere gevallen.
providers.md.CLAUDE_CODE_OAUTH_TOKEN ververst niet zelf. Na verval = harde re-login. In de code staat letterlijk: zo'n setup-token geeft als x-api-key een 401, als kale Bearer een 429. Bron: plugins/model-providers/anthropic/__init__.py.hermes auth add anthropic --type oauth, dan beheert Hermes de refreshbare store. Bron: providers.md.Bron: features/credential-pools.md, agent/credential_pool.py.
- 429 (rate limit): 1x zelfde sleutel opnieuw, dan roteren. Cooldown 1 uur.
- 402 (billing): meteen roteren. Cooldown 1 uur.
- 401 (verlopen): eerst OAuth-token verversen, anders roteren. Cooldown 5 min.
- Je hebt in profiles/contentclaude/auth.json al een credential-pool: OAuth op prioriteit 0, API-key op prioriteit 1. Precies de goede opzet.
Optie A — meest zonder gezeik: losse Anthropic API-key.
Het Claude-equivalent van je Codex-truc: aparte pool, geen seat-conflict, meerdere bots tegelijk oké.
# in het profiel-config.yaml
model:
provider: anthropic
default: claude-sonnet-4-6
# in ~/.hermes/.env
ANTHROPIC_API_KEY=sk-ant-api03-...
Optie B — je Max-credits gebruiken: OAuth plus API-key-terugval, en maar één bot erop.
hermes auth add anthropic --type oauth # Max + extra credits, prioriteit 0
hermes auth add anthropic --type api-key --api-key sk-ant-api03-... # terugval, prioriteit 1
model:
provider: anthropic
default: claude-sonnet-4-6
credential_pool_strategies:
anthropic: fill_first # eerst OAuth-credits, dan de API-key
Let op valkuil: bij het wisselen van sleutel of provider reset de prompt-cache. De volgende call leest de hele context tegen vol tarief. Veel heen-en-weer springen is dus duur. Bron: credential-pools.md, fallback-providers.md.
De model-provider staat op de backend, niet in de app. De Desktop-app logt via de systeem-browser in op je Hermes-gateway (dat is een andere login dan je model-provider). Je configureert Claude dus op het profiel/backend waar de app mee verbindt, via hermes auth add anthropic --type oauth of hermes model. Bron: guides/desktop-native-signin.md, user-guide/desktop.md.
user-guide/desktop.md.hermes serve). De React-UI praat daarmee. Bron: desktop.md.desktop.md, multi-connection-desktop.md.desktop.md.desktop.md./model-commando in een chat: alleen die sessie. Met --global past hij ook config.yaml aan, met --once alleen de volgende beurt. Bron: configuring-models.md.De per-sessie keuze staat in state.db, tabel sessions, in twee kolommen: model én model_config (JSON). Iemand typte /model opencode-zen:x-preview-f-free in één sessie. Dat schreef provider: opencode-zen + model: x-preview-f-free naar die sessie-rij. Bij de volgende beurt hervatte de sessie exact dat model → HTTP 401 "Model not supported". De profiel-default (gpt-5.6-sol) was nooit veranderd; alleen die ene sessie was besmet. Bron: geverifieerd in je eigen state.db + desktop.md.
desktop.md.opencode-zen:x-preview-f-free) omzeilt de check. Bron: configuring-models.md.--once, dan herstelt hij vanzelf./model gpt-5.6-sol --provider openai-codex (precies de fix van vandaag), of pas de sessie-rij offline aan met backup.desktop.md.desktop.md.profiles.md..env. Twee profielen op hetzelfde token worden geblokkeerd. Bron: profiles.md.hermes serve op de andere machine. Bind aan het Tailscale-IP, poort 9119. Bron: desktop.md.HERMES_DASHBOARD_BASIC_AUTH_SECRET stabiel, anders word je bij elke herstart uitgelogd. Bron: desktop.md.desktop.md.desktop.md.desktop.md.desktop.md.HERMES_HOME/logs/desktop.log of hermes logs gui -f. Bron: desktop.md.Let op: jouw app is v0.17.0 terwijl de repo op v0.20.4 staat. De model- en profiel-mechaniek is geverifieerd tegen je echte config. Sommige nieuwste app-features kunnen in 0.17.0 net anders heten. Een update naar 0.20.x is te overwegen.
Hermes kent per model-aanroep een billing_mode. Bron: agent/usage_pricing.py, tabel session_model_usage.
- Abonnement (Codex/ChatGPT Team, Claude Max OAuth): subscription_included, kosten per token = 0. Je betaalt een vast maandbedrag. Bron: usage_pricing.py.
- API-key (Anthropic-key, OpenRouter): betaal per token. Lange sessies = oplopende rekening.
Voor een vloot die veel draait is een abonnement dus veiliger tegen verrassingen.
| provider | billing | model | calls | geschatte kosten |
|---|---|---|---|---|
| anthropic (API-key) | per token | claude-opus-4-8 | 154 | circa 25,75 dollar |
| anthropic (API-key) | per token | opus (background review) | 18 | circa 2,46 dollar |
| openai-codex | abonnement | gpt-5.6-sol | 28 | 0,00 dollar |
| opencode-zen | onbekend | x-preview-f-free | 24 | 0,00 (de kapotte) |
Kort: Codex kostte niets per token, Claude Opus via API-key liep naar circa 30 dollar. Bron: live session_model_usage in profiles/beeld/state.db.
show_cost: true in config (standaard uit) → dollars in de statusbalk. Bron: hermes_cli/config_defaults.py./usage in de CLI toont het overzicht. Bron: hermes_cli/auth.py.session_model_usage in dat profiel.auxiliary.compression. Bron: cli-config.yaml.example.fallback-providers.md.reasoning_effort (zet op low/none). Bron: cli-config.yaml.example.max_tokens (cap op output), tool_loop_guardrails.hard_stop_enabled (stopt een vastlopende tool-lus). Aanrader voor cron/autonome bots. Bron: cli-config.yaml.example.credential-pools.md.fallback_providers: lijst, schakelt over bij aanhoudende fouten. Per-turn: elk nieuw bericht probeert eerst weer je hoofdmodel. Reset-aware bij Claude Max 5-uurs-blokken. Bron: fallback-providers.md.Kernregel uit de community: reken op totale kosten per afgeronde taak, niet op prijs per token. Een goedkoop model dat 10x herprobeert is duurder dan een duur model dat het in één keer goed doet. Precies je eigen team-regel.
show_cost: true en gebruik /usage.hermes setup --portal.Voor jouw doel het handigste use-case-pad ("team van specialist-bots"): Desktop → Profiles → Bot Mode → Cron → Multi-connection Desktop.
Eerlijk: de community is nog jong en dun. Voor master worden leun je 90% op de officiële docs plus de code in je lokale repo. De echte code is de ultieme bron van waarheid.
show_cost: true zodat je live ziet wat draait.Lokale broncode + officiële docs in /Users/macbookjamal/.hermes/hermes-agent/ (v0.20.4): README.md, website/docs/ (getting-started, user-guide, features, integrations, guides, developer-guide, reference), providers/, plugins/model-providers/, agent/credential_pool.py, agent/usage_pricing.py, hermes_cli/, docs/billing-lifecycle.md, en de live state.db van je profielen. Online: hermes-agent.nousresearch.com/docs, github.com/NousResearch/hermes-agent.
Onzekerheden die niet te sluiten waren: exacte maandprijs van Nous Portal (staat achter de sign-up), exact aantal seats per Claude Max, en of de gemeten Anthropic-kosten "actual" of alleen "estimated" waren. Deze staan eerlijk als onzeker gelabeld.
🎙️ Bespreek met Jarvis