⚡ Hermes Agent

Autonomous AI assistant — olibuijr homelab instance

v0.15.2 · Python 3.14.4 · CachyOS Linux

🏠 System Overview

Hermes Agent is an autonomous AI assistant running on the olibuijr homelab (Titan, 192.168.8.14). It operates primarily via Discord, with full tool access for code development, infrastructure management, research, legal analysis, and system administration across the homelab cluster.

🧠 Primary Model

deepseek-v4-pro

via 9router (custom) · 200K context

⚙️ Provider

9router @ 192.168.8.14:20128

100+ models across Claude, Gemini, Kimi, DeepSeek, GLM, Qwen, MiniMax

🔌 Platform

Discord

Home: #status · Auto-thread · Reactions enabled

📦 Deployment

pipx + systemd service

~/.local/share/pipx/venvs/hermes-agent/

🧠 Memory System

Hermes uses a persistent Hindsight memory backend with two stores: Memory (environment facts, project conventions, tool quirks) and User Profile (personal preferences, communication style, identity). A skill curator runs weekly to archive stale knowledge.

PropertyValue
BackendHindsight (hermes bank)
BudgetMid
Memory char limit2,200
User profile char limit1,375
CuratorEnabled · every 168h · archive after 90d
Session DBSQLite (FTS5) · auto-prune off · retention 90d

Memory is injected into every turn. Non-durable task state is recalled via session_search (FTS5 over past conversations). Procedural workflows are saved as Skills in ~/.hermes/skills/.

📚 Skills System

Skills are procedural memory — reusable workflows for recurring tasks. They live in ~/.hermes/skills/ and are loaded into context on-demand.

📦 Total Skills

100+ across 20+ categories

🔒 Disabled

92 built-in skills disabled

⚙️ Enabled

Custom + curated subset activated per session

Active Categories

CategoryExample Skills
🧑‍💻 software-development (14)coding-discipline, test-driven-development, plan, spike, requesting-code-review, reusable-cli-first, subagent-driven-development, writing-plans, workspace-management
🔧 devops (12)nginx-management, dns-management, proxmox-management, proxmox-networking, passvault, process-management, deploy-script-standard, code-index, proxmox-backups
🤖 autonomous-ai-agents (6)hermes-agent, subagent-driven-development
⚖️ legal (1)legal, parental-alienation-case-management
🔗 mcp (2)mcp-server-migration
📝 productivity (12)notes, legal, parental-alienation-case-management
📊 research (7)deepwiki, js-rendered-docs-scraping
🧪 mlops (9)model serving, evaluation tooling
🎨 creative (20)diagramming, media generation

🛠️ Tools & Capabilities

Hermes has access to the following built-in tool classes:

Core Tools

ToolPurpose
terminalShell execution (local + SSH), background processes, PTY interactive mode
read_file / write_fileFile I/O with pagination, auto-syntax checking
search_filesripgrep-backed content + file search
patchTargeted find-and-replace with fuzzy matching
browser_*Headless browser (navigate, click, type, scroll, screenshot, vision analysis)
vision_analyzeImage analysis via native vision or fallback model
delegate_taskSpawn parallel sub-agents with isolated context
cronjobSchedule recurring tasks (prompt-driven or script-based)
execute_codeMulti-step Python scripts with tool access
memory / hindsight_*Persistent memory CRUD + semantic recall
skill_view / skill_manageLoad, create, update, patch, delete skills
session_searchFTS5 search over past conversation transcripts
send_messageMulti-platform messaging (Discord, Telegram, Signal, etc.)
image_generateAI image generation
text_to_speechAudio synthesis
clarifyAsk user multiple-choice or open-ended questions
todoSession-scoped task management
processBackground process lifecycle (poll, log, wait, kill, write stdin)

CLI Wrappers (~/.local/bin/)

CLIPurpose
nginx-mgrManage nginx vhosts on 192.168.8.4 (proxy)
dns-mgrManage split-horizon BIND9 DNS (ns1/ns2)
pve-mgrManage Proxmox VE cluster (prox1/prox3/prox4)
passvaultLocal encrypted secrets (SQLite + Fernet)
notesNoteDiscovery vault CLI (API at 192.168.8.184:8000)
code-indexCode indexer + search (13+ workspaces, persistent storage)
deepwikiQuery DeepWiki.com AI docs for GitHub repos
ghGitHub CLI
hermes / hermes-agentHermes Agent CLI
claudeClaude Code CLI
buiosCustom BUI OS tool
hermes-dashboardHermes dashboard launcher
worktree-createGit worktree helper
code-index-all-workspaces.shBulk re-index all workspaces

🔌 MCP Servers (Model Context Protocol)

MCP servers provide native tool access to external systems. Registered in ~/.hermes/config.d/40-mcp.yaml. All use filtered env — only safe baseline vars pass through; API keys are injected via wrapper scripts or explicit env: config.

ServerCommandEndpointPurpose
code-index uvx code-index-mcp Local Codebase search, symbol lookup, file summary, embedding index via EmbeddingGemma (Titan :8081)
notes notediscovery-mcp prox3 → pct 184 Persistent project documentation vault (NoteDiscovery)
vaultwarden bw-mcp-server vault.olibuijr.com Credential & secrets management (Bitwarden-compatible)

Architecture

Note: The config_layout reports that config.d/ is not loaded by the patched loader — edits must go directly to ~/.hermes/config.yaml.

📓 Notes & Documentation Vault

The NoteDiscovery system is the canonical source for project context, infra details, and past decisions. It runs in an LXC container behind the homelab reverse proxy.

PropertyValue
API URLhttp://192.168.8.184:8000
AccessSSH tunnel: Hermes → prox3 → pct 184
CLI~/.local/bin/notes
MCP Servernotediscovery-mcp wrapper
Content20 Projects/, 60 Systems/ — docs, runbooks, infra tables, decisions

Workflow: Every project task starts with a 3-step warmup: (1) check notes for context, (2) activate code-index for codebase search, (3) fetch any needed credentials from Vaultwarden. After completing work, findings are saved back to the notes vault.

🔐 Secrets & Credential Management

Two-tier secrets infrastructure:

🏦 Vaultwarden (primary)

vault.olibuijr.com

Self-hosted Bitwarden-compatible server on Titan (192.168.8.14).

Access via bw-mcp-server MCP or Bitwarden CLI (2024.12.0 pinned).

Single source of truth for all API keys, credentials, and secrets.

🗝️ Passvault (local fallback)

SQLite + Fernet

Local encrypted secrets manager at ~/.hermes/passvault/.

CLI: passvault · API: passvault serve on :8312

Used for infra creds (nginx proxy, Proxmox root).

Policy: Never store secrets in plain files, notes, or chat. Always check Vaultwarden first before asking the user.

🤖 Model Providers & Routing

The 9router proxy on Titan (192.168.8.14:20128) aggregates models from multiple backends: local Ollama/llama.cpp, Cloudflare Workers AI, Key-Connect, OpenRouter, Gemini API, and custom endpoints — providing 100+ models through a single OpenAI-compatible API.

BackendSourceModels
🧠 OllamaLocal (Titan)deepseek-v4-pro, deepseek-v4-flash, gpt-oss:120b, kimi-k2.5, glm-5, minimax-m2.5, qwen3.5
☁️ Cloudflare Workerscf/@cf/...llama 3.1/3.2/3.3, mistral-small, deepseek-r1, qwen-coder, glm, kimi-k2.5/2.6
🔗 Key-Connectkc/...claude-sonnet-4, claude-opus-4, gemini-2.5-pro/flash, gpt-4.1, o3, deepseek-chat/reasoner
🌀 OpenRoutercx/...gpt-5.5, gpt-5.4, gpt-5.3-codex, deepseek-pro, deepseek-flash, verkos-max/pro/fast
🧪 Aggregatorag/...gemini-3.1-pro, claude-sonnet-4-6, claude-opus-4-6, gpt-oss
🌟 Gemini Directgemini/...gemini-3.1-pro, gemini-3-flash, gemma-4-31b
🎯 OpenRouter (keyed)ocg/...kimi-k2.6, glm-5.1, qwen3.5-plus, minimax-m2.7
💎 Claude Codecc/...claude-opus-4-7, claude-sonnet-4-6

Fallback Model

For auxiliary/flash-grade tasks (compression, vision extraction, web extraction), the local verkos-router is preferred with deepseek-v4-flash or google/gemini-2.5-flash if the local router is down.

📂 Workspaces & Code Index

Project workspaces live in ~/.hermes/workspaces/ with git worktrees for parallel task branches. All are pre-indexed with persistent code indices at ~/.hermes/code-index/.

Registered Workspaces

9router BuiCode bui-flix bui-flix-iptv buios gagolf golfhermar golfsetridak golfswing karaxxx litlakrili notediscovery olfong storfjolskylda verkos verkos-backend verkos-multica hermes.olibuijr.com

🏗️ Homelab Infrastructure

HostRoleIP
TitanPrimary server (Hermes, 9router, Ollama, Vaultwarden)192.168.8.14
prox1 / prox3 / prox4Proxmox VE cluster192.168.8.x
pct 184NoteDiscovery notes vault LXCvia prox3
ns1 / ns2BIND9 DNS servers (split-horizon)192.168.8.150 / .151
nginx proxyCentral reverse proxy (all web services)192.168.8.4

🛡️ Security

TIRITH

Policy enforcement engine for terminal commands

Secret Redaction

Automatic redaction of API keys in output

Website Blocklist

Disabled — allows all URLs

Manual Approval Mode

Destructive operations require user confirmation

🌐 Gateway & Platforms

PlatformStatusDetails
💬 Discord ConnectedHome: #status · Free response in #legal · Auto-thread · DM enabled
📺 Slack ConfiguredRequire mention
📱 Telegram ConfiguredNo reactions
📧 Signal ConfiguredAvailable
📋 SMS AvailableVia gateway