Problem or Use Case
TL;DR: I'm using Hermes as the core of a personal AI system where an Obsidian vault acts as the shared memory across all agents (Hermes, Claude Code, etc.). The obsidian_vault: config block exists but no code reads it. I'd love to see native vault integration become a real feature.
My Setup
- WSL2 on Windows 11, RTX 3080 Ti (12GB VRAM)
- Ollama (on Windows) with local models + Nemotron 3 Super cloud
- Obsidian vault as the central knowledge base
- Hermes Agent as the always-on personal AI
- Discord as the messaging gateway
- Tavily for web search
- Docling for PDF/document processing
What I'm Building
A full personal AI system where Hermes is the persistent agent runtime that learns me over time. The Obsidian vault is the shared brain — every tool reads from and writes to it. Claude Code writes session logs to the vault, Memos syncs quick captures to it, and Hermes should be the agent that ties it all together.
Proposed Solution
1. Obsidian Vault Integration (the big one)
Current State
There's an obsidian_vault: config block in config.yaml with options for path, session_folder, auto_save_sessions, etc. But after searching the entire hermes-agent/ codebase, no code reads this config. It's dead config.
What I'd Like
Native Obsidian vault support as a knowledge layer:
- On startup: Read key config files from the vault (like a profile file) to inject context about the user
- On session end: Auto-save a session summary as a markdown file in the vault
- During conversations: Ability to search vault files for relevant context before answering questions
- Write outputs: Papers, project notes, skill documents saved to the vault with YAML frontmatter and WikiLinks
The vault is just a folder of markdown files — Hermes already has filesystem tools. The missing piece is the automation: auto-read on startup, auto-save on end, and vault-aware search.
Why This Matters
The vault becomes the shared memory layer that outlives any single agent session or even any single LLM. If I switch models, change providers, or Hermes updates break something — the vault persists. Other tools (Claude Code, Open Notebook, Unsloth Studio) can all read/write the same vault, making it the true "second brain" rather than Hermes' internal SQLite.
2. Model Routing Per Persona/Task
Current State
smart_model_routing exists but only routes "simple" vs "complex" based on message length. There's no way to say "use this model for coding tasks, that model for research, and this cheap one for daily planning."
What I'd Like
A routing config like:
model_routing:
default: nemotron-3-super:cloud
coding: qwen3-coder
research: qwen3:14b
daily: ministral-3
medical: MedAIBase/MedGemma1.5:4b
embeddings: nomic-embed-text
Hermes picks the model based on the task type detected from the conversation. Heavy coding → loads qwen3-coder. Quick reminder → uses ministral-3 (fast, light). Research paper analysis → uses qwen3:14b for better reasoning.
This matters for VRAM management on consumer GPUs. I can't run qwen3-coder (18GB) and qwen3:14b (9.3GB) simultaneously on 12GB, but Ollama swaps them. Explicit routing would make this predictable.
3. Overnight Cron + Morning Briefing
Current State
Hermes has a cron scheduler which is great. But there's no built-in "overnight work queue" pattern.
What I'd Like
A first-party "night shift" mode where Hermes runs scheduled heavy tasks when the GPU is free (e.g., 01:00-06:00):
- Process PDFs dropped in a watch folder (via Docling)
- Check PubMed RSS feeds for new papers
- Draft sections of documents in progress
- Scan and organize inbox notes
- Review GitHub repos for activity
Then compile everything into a morning briefing delivered to Discord at a configured time. Something like:
☀️ Good morning. Overnight report:
📚 3 new papers found on PubMed RSS
📝 Drafted Methods section (1,200 words) — review in Research/drafts/
📥 2 memos routed from Inbox
🔧 Nightshift made 5 commits to anestesiapp — all tests passing
4. GitHub Repository Monitoring
What I'd Like
A tool or skill that:
- Monitors my GitHub repos for commits, PRs, issues, CI status
- Understands what other agents (like Claude Code "nightshift") did overnight
- Updates project status docs in the vault
- Flags stale repos (no activity in 2+ weeks) and failing CI
This enables coordination between Hermes and Claude Code — Hermes tracks and reports, Claude Code does the deep coding.
5. Honcho Removal / Graceful Degradation
Issue
I accidentally configured Honcho with a bad URL (terminal escape character got into the URL field). After that:
- Every startup showed:
Honcho init failed: Invalid non-printable ASCII character in URL, '\x1b' at position 25
- All tools stopped working — not just Honcho, but filesystem, terminal, web, everything
- Removing
honcho: {} from config.yaml didn't fix it
- Uninstalling honcho-ai pip package didn't fix it
- Had to do a full reinstall of Hermes to recover
Suggestion
Honcho failure should never take down the entire tool system. If Honcho init fails, log a warning and set honcho_manager = None — the rest of the agent should work fine without it. The gateway code in gateway/run.py has a try/except for this, but it doesn't seem to catch all failure paths.
Also: a hermes honcho disable command that cleanly removes all Honcho config would prevent users from getting stuck in a broken state.
6. Living Profile / Dynamic User Modeling (without Honcho)
What I'd Like
An alternative to Honcho for user modeling that's fully local. The current MEMORY.md and USER.md are great but very bounded (2200 and 1375 chars).
Idea: a "living profile" markdown file in the vault that Hermes updates over time. Not a fixed form, but an evolving document:
- Hermes observes what I talk about and adds interests automatically
- Weighted by frequency and recency (active vs dormant interests)
- Includes context from connected services (e.g., Playnite game library)
- No char limit — it's a vault file, not injected into the system prompt
- Hermes reads relevant sections on demand rather than injecting everything
7. Custom Provider Labeling
Minor Issue
runtime_provider.py:201 hardcodes "provider": "openrouter" for ALL custom providers, including Ollama. When I asked Hermes "what provider are you using?" it said "OpenRouter" even though requests were going to my local Ollama at http://172.22.128.1:11434/v1.
This is cosmetic but confusing during debugging. Could the label use the custom provider's name field instead?
8. Integration Wishlist
Things I'd love to see as first-party skills or tools:
- Docling (IBM) — PDF/DOCX to markdown conversion, local processing
- PubMed NCBI E-utilities — direct API search, not just web search
- Obsidian vault search and write (as described above)
- Playnite/Steam — read game library for user profiling
- Google Keep / Tasks — mobile note sync
- Institutional proxy support — for accessing paywalled academic papers via EZProxy URLs
Environment
- Hermes Agent: latest (fresh install as of 2026-03-24)
- OS: WSL2 Ubuntu on Windows 11
- Hardware: RTX 3080 Ti, 48GB RAM
- Models: Ollama local + Nemotron 3 Super cloud
- Gateway: Discord
Thanks for building Hermes — the vision of a self-improving agent that grows with you is exactly right. These are the rough edges I hit while building a real system around it. Happy to contribute or test if any of these get picked up.
Alternatives Considered
No response
Feature Type
New tool
Scope
None
Contribution
Problem or Use Case
TL;DR: I'm using Hermes as the core of a personal AI system where an Obsidian vault acts as the shared memory across all agents (Hermes, Claude Code, etc.). The
obsidian_vault:config block exists but no code reads it. I'd love to see native vault integration become a real feature.My Setup
What I'm Building
A full personal AI system where Hermes is the persistent agent runtime that learns me over time. The Obsidian vault is the shared brain — every tool reads from and writes to it. Claude Code writes session logs to the vault, Memos syncs quick captures to it, and Hermes should be the agent that ties it all together.
Proposed Solution
1. Obsidian Vault Integration (the big one)
Current State
There's an
obsidian_vault:config block inconfig.yamlwith options forpath,session_folder,auto_save_sessions, etc. But after searching the entirehermes-agent/codebase, no code reads this config. It's dead config.What I'd Like
Native Obsidian vault support as a knowledge layer:
The vault is just a folder of markdown files — Hermes already has filesystem tools. The missing piece is the automation: auto-read on startup, auto-save on end, and vault-aware search.
Why This Matters
The vault becomes the shared memory layer that outlives any single agent session or even any single LLM. If I switch models, change providers, or Hermes updates break something — the vault persists. Other tools (Claude Code, Open Notebook, Unsloth Studio) can all read/write the same vault, making it the true "second brain" rather than Hermes' internal SQLite.
2. Model Routing Per Persona/Task
Current State
smart_model_routingexists but only routes "simple" vs "complex" based on message length. There's no way to say "use this model for coding tasks, that model for research, and this cheap one for daily planning."What I'd Like
A routing config like:
Hermes picks the model based on the task type detected from the conversation. Heavy coding → loads qwen3-coder. Quick reminder → uses ministral-3 (fast, light). Research paper analysis → uses qwen3:14b for better reasoning.
This matters for VRAM management on consumer GPUs. I can't run qwen3-coder (18GB) and qwen3:14b (9.3GB) simultaneously on 12GB, but Ollama swaps them. Explicit routing would make this predictable.
3. Overnight Cron + Morning Briefing
Current State
Hermes has a cron scheduler which is great. But there's no built-in "overnight work queue" pattern.
What I'd Like
A first-party "night shift" mode where Hermes runs scheduled heavy tasks when the GPU is free (e.g., 01:00-06:00):
Then compile everything into a morning briefing delivered to Discord at a configured time. Something like:
4. GitHub Repository Monitoring
What I'd Like
A tool or skill that:
This enables coordination between Hermes and Claude Code — Hermes tracks and reports, Claude Code does the deep coding.
5. Honcho Removal / Graceful Degradation
Issue
I accidentally configured Honcho with a bad URL (terminal escape character got into the URL field). After that:
Honcho init failed: Invalid non-printable ASCII character in URL, '\x1b' at position 25honcho: {}from config.yaml didn't fix itSuggestion
Honcho failure should never take down the entire tool system. If Honcho init fails, log a warning and set
honcho_manager = None— the rest of the agent should work fine without it. The gateway code ingateway/run.pyhas a try/except for this, but it doesn't seem to catch all failure paths.Also: a
hermes honcho disablecommand that cleanly removes all Honcho config would prevent users from getting stuck in a broken state.6. Living Profile / Dynamic User Modeling (without Honcho)
What I'd Like
An alternative to Honcho for user modeling that's fully local. The current MEMORY.md and USER.md are great but very bounded (2200 and 1375 chars).
Idea: a "living profile" markdown file in the vault that Hermes updates over time. Not a fixed form, but an evolving document:
7. Custom Provider Labeling
Minor Issue
runtime_provider.py:201hardcodes"provider": "openrouter"for ALL custom providers, including Ollama. When I asked Hermes "what provider are you using?" it said "OpenRouter" even though requests were going to my local Ollama athttp://172.22.128.1:11434/v1.This is cosmetic but confusing during debugging. Could the label use the custom provider's
namefield instead?8. Integration Wishlist
Things I'd love to see as first-party skills or tools:
Environment
Thanks for building Hermes — the vision of a self-improving agent that grows with you is exactly right. These are the rough edges I hit while building a real system around it. Happy to contribute or test if any of these get picked up.
Alternatives Considered
No response
Feature Type
New tool
Scope
None
Contribution