Table of Contents
01. Version & Install
| Property | Value |
| Version | v0.14.0 (2026.5.16) |
| Commit | a0c031299 feat(web): add xAI Web Search provider plugin |
| Branch | main |
| Install Path | /usr/local/lib/hermes-agent |
| Install Size | 8.0 GB |
| Python | 3.11.15 |
| OpenAI SDK | 2.24.0 |
| Update Status | Up to date |
| Uncommitted Changes | 10 files modified (TUI mouse fix, wheelAccel, mcp_tool.py) |
✦ ✦ ✦
02. Configuration
Config File Structure
| File | Size | Purpose |
~/.hermes/config.yaml | 966 bytes | Root config — Telegram token + MCP servers |
~/.hermes/profiles/omega/config.yaml | 13.4 KB | Active profile — full agent config (v23) |
~/.hermes/profiles/omega/.env | redacted | API keys: DeepSeek, OpenRouter, Gemini, Telegram, Discord, Firecrawl, etc. |
Key Config Settings
| Setting | Value | Notes |
| model.default | deepseek-v4-flash | Primary model |
| model.provider | deepseek | Primary provider |
| agent.max_turns | 90 | Max tool-calling iterations |
| agent.reasoning_effort | high | |
| terminal.backend | local | Direct shell execution |
| terminal.cwd | /root | |
| web.search_backend | searxng | Self-hosted private search |
| web.backend | firecrawl | Web extraction |
| memory.memory_enabled | true | Persistent memory ON |
| memory.memory_char_limit | 100,000 | |
| memory.user_char_limit | 50,000 | |
| delegation.max_concurrent_children | 3 | |
| delegation.max_spawn_depth | 1 | Leaf agents only |
| delegation.orchestrator_enabled | true | |
| curator.enabled | true | Auto-skill cleanup weekly |
| compression.enabled | true | Context compression ON |
| privacy.redact_pii | true | PII redaction ON |
| sessions.retention_days | 90 | |
| sessions.auto_prune | false | ⚠️ Manual pruning only |
| skills.external_dirs | /root/Anthropic-Cybersecurity-Skills/skills | External skills |
| security.tirith_enabled | true | Command security scanning |
| approvals.mode | manual | |
| stt.provider | local | Local Whisper |
| tts.provider | edge | Edge TTS |
Platforms & Services
| Platform | Status | Bind | Port | Notes |
| 🔌 API Server (gateway) | Active | 127.0.0.1 | 8643 | Config says 8642 — actual process on 8643 |
| 🔗 Webhook Platform | Active | 0.0.0.0 | 8644 | HMAC auth |
| 📊 Dashboard | Active | 127.0.0.1 | 9119 | Hermes Dashboard plugin |
| 🖥️ HCI | Active | 127.0.0.1 | 10272 | Control Interface |
| 📺 TUI | Built | n/a | n/a | dist/entry.js 3.0 MB |
✦ ✦ ✦
03. Profiles
| Profile | Model | Purpose | Skills | Notes |
| omega (active) | deepseek-v4-flash | Default agent — YOU | 169 (full set) | Persona: Sibylle (AGENTS.md) |
| reviewer | deepseek-v4-pro | Code review & delegation vetting | 19 categories (subset) | Disabled toolsets: image_gen, gaming, web, etc. |
| scribe | deepseek-v4-pro | Email composition & formatting | 19 categories (subset) | No terminal/code/browser. CWD: /root/scroll-chamber |
| prompter | unknown | Swarm prompt generation | unknown | Standalone profile, no config inspected |
Profile Config Drift
🟡 MEDIUM
API Server port mismatch between profiles
Omega profile config has
api_server.port: 8643 but scribe config has
api_server.port: 8642. This is dead config drift — the stale 8642 port references an old gateway that was already killed. ScribE won't be able to use the API server until this is corrected.
🟢 LOW
Reviewer personality bloat
Reviewer profile still carries 13 unused personalities (catgirl, uwu, pirate, shakespeare, etc.) that were removed from omega. Dead weight in config.
🟢 LOW
Prompter profile incomplete
Has SOUL.md, config.yaml, but no skills directory listed. May not be fully operational.
✦ ✦ ✦
04. Skills
~1500
Est. Lines (avg/skill)
Skill Categories Breakdown
| Category | Count | Notable Skills |
| 🎨 creative | 27 | p5js, ascii-art, excalidraw, manim, pixel-art, songwriting |
| 🧪 mlops | 21 | llama-cpp, vllm, huggingface, unsloth, axolotl, dspy, whisper |
| 🔧 devops | 20 | docker, webhook-subscriptions, kanban-orchestrator, infrastructure-audit |
| 💻 software-dev | 19 | master-coder, tdd, systematic-debugging, writing-plans, spike |
| 🔬 research | 15 | site-recon, scrapling, social-media-scraping, blogwatcher |
| 📋 productivity | 14 | notion, airtable, google-workspace, shopify, linear, nano-pdf |
| 📈 trading | 9 | vibe-trading, options-finder, robinhood-analyst, aether-trading |
| 🎨 frontend | 8 | vonder-design-standard, vonder-dashboard, web-app-refactor |
| 🐙 github | 6 | pr-workflow, code-review, repo-management, issues, auth |
| 🤖 autonomous-ai | 6 | claude-code, codex, opencode, hermes-agent |
| 📺 media | 5 | youtube-content, songsee, gif-search, heartmula |
| 🗂️ note-taking | 2 | obsidian, what-is-glossary |
| 📧 email | 2 | agentmail, himalaya |
| 🐶 dogfood | 2 | dogfood (QA), adversarial-ux-test |
| 🧠 agent | 2 | hermes-selfie, obsidian-triad |
| 🔌 mcp | 2 | native-mcp, mcporter |
| 🔬 data-science | 1 | jupyter-live-kernel |
| 🏠 smart-home | 1 | openhue |
| 🔒 security | 3 | sherlock, security-guardrails, embedded-device-forensics |
| 🔴 red-teaming | 1 | godmode |
| 📱 social-media | 1 | xurl (Twitter/X) |
| 🕵️ investigation | 1 | social-media-monitoring |
| 🌐 infrastructure | 1 | email-auto-responder |
| Empty cats | 6 | apple, diagramming, domain, gaming, gifs, inference-sh |
🟢 LOW
6 empty skill categories
Categories with 0 skills: apple, diagramming, domain, gaming, gifs, inference-sh. Directory stubs with no content.
✦ ✦ ✦
05. MCP Servers
Active MCP Servers
| Server | Transport | Target | Status |
| 📧 agentmail | stdio (npx) | AgentMail API | Connected |
| 🎨 nanobanana | stdio (npx) | Gemini image gen | Connected |
| 📝 obsidian | stdio (npx) | /root/research-vault | Connected |
| 🗄️ sqlite | stdio (npx) | SQLite DB queries | Connected |
| 📈 vibetrading | stdio (python) | → localhost:10290 | Connected |
| 🤖 aether-console | stdio (python) | → localhost:10282 | Target may be down |
| 🔗 composio | HTTP (url) | connect.composio.dev/mcp | Connected |
MCP Config Duplication
🟡 MEDIUM
MCP server configs duplicated in both root and omega config
All 6 MCP servers are defined in
~/.hermes/config.yaml AND
~/.hermes/profiles/omega/config.yaml. When both are loaded, the profile config overrides root, but the duplication creates a maintenance burden — changes must be made in both places.
✦ ✦ ✦
06. Plugins & Dashboard
| Plugin | Status | Size | Notes |
| 🏆 hermes-achievements | Active | 1.4 MB | scan_checkpoint.json + scan_snapshot.json |
| 🧹 disk-cleanup | Active | built-in | Enabled in plugins list |
Dashboard
| Property | Value |
| Status | Running |
| Bind | 127.0.0.1:9119 |
| Systemd | hermes-dashboard.service |
| Theme | default |
| Token Analytics | off |
✦ ✦ ✦
07. Gateway & TUI
Gateway
| Property | Omega (active) |
| Process | Python — hermes gateway run |
| API Port | 8643 (0.0.0.0) |
| Webhook Port | 8644 (0.0.0.0) |
| Auth | API key (HMAC) |
| Platform Connections | Telegram, Discord, API Server |
TUI
| Property | Value |
| Build | dist/entry.js — 3.0 MB |
| Built | 2026-05-20 |
| Uncommitted Changes | 7 files in ui-tui/ (mouse fix, wheelAccel, thinking.tsx, etc.) |
| Known Bug | 🐛 MOUSE_ANY (1003) removed — was causing movement to type as text |
✦ ✦ ✦
08. Storage & Logs
| Location | Size | Notes |
sessions/ | 685 MB | ⚠️ Largest data store. 90-day retention, auto_prune OFF |
logs/ | 9.5 MB | INFO level, 5 MB max per file |
memories/ | 60 KB | Well-maintained |
checkpoints/ | unknown | Max 50 snapshots, 500 MB cap |
Sessions DB Growth Analysis
🟡 MEDIUM
Session database growing unchecked
685 MB with auto_prune disabled and 90-day retention. At current rate, this will hit 1 GB+ within weeks. Each session is stored as SQLite blobs. The vacuum_after_prune option is on, but prune only runs when triggered.
✦ ✦ ✦
09. Problems & Risks
🟡 HIGH
Gateway API server on 0.0.0.0:8643
Hermes API gateway binds to all interfaces. Config says host: 127.0.0.1 but the process is actually running on 0.0.0.0:8643. This exposes the full Hermes API to the network. Single auth key is the only barrier.
🟡 HIGH
Session DB auto_prune disabled
685 MB and growing with no automatic pruning. Over time this will consume significant disk and slow down session_search queries. Enable auto_prune or add a weekly cron job.
🟡 MEDIUM
MCP server config duplication (root vs omega)
Same MCP servers defined in both configs. Adds maintenance friction and potential drift.
🟡 MEDIUM
aether-console MCP target may be dead
Aether-console MCP points to localhost:10282, which wasn't listening during the infrastructure audit. MCP server starts fine but all tool calls will time out.
🟡 MEDIUM
Profile config drift (port mismatch)
Scribe profile references api_server port 8642 — the active gateway runs on 8643. If scribe ever needs API access, it will fail.
🟡 MEDIUM
10 uncommitted source changes
Patches to TUI (mouse fix, wheelAccel, thinking UI) and mcp_tool.py are local-only. Will be lost on next `git pull` unless committed or stashed.
🟢 LOW
Reviewer profile has personality bloat
13 dead personalities still in reviewer config that were removed from omega.
🟢 LOW
6 empty skill categories
Directory stubs with no actual skills. Not harmful but add clutter.
🟢 LOW
8 GB install size
Large but includes all ML model dependencies (SAM, Whisper, etc.). Worth monitoring.
✦ ✦ ✦
10. Architecture Diagram
┌────────────────────────────────────────────────────────────┐
│ HERMES AGENT v0.14.0 │
│ /usr/local/lib/hermes-agent (8.0 GB) │
└────────────────────────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ OMEGA │ │ REVIEWER │ │ SCRIBE │
│ (ACTIVE) │ │ (deepseek-v4 │ │ (deepseek-v4 │
│ deepseek-v4- │ │ -pro) │ │ -pro) │
│ flash │ │ Code review │ │ Email/Scribe │
│ Sibylle │ │ & vetting │ │ No terminal │
└───────┬───────┘ └───────┬───────┘ └───────┬───────┘
│ │ │
│ ┌─────────────┘ │
│ │ ┌───────────────────────────┘
│ │ │
▼ ▼ ▼
┌────────────────────────────────────────────────────────────┐
│ CONFIG STACK │
│ ~/.hermes/config.yaml (root — telegram + MCP servers) │
│ ~/.hermes/profiles/omega/config.yaml (full config, v23) │
│ ~/.hermes/profiles/omega/.env (API keys, redacted) │
│ ~/.hermes/AGENTS.md (Sibylle persona) │
└────────────────────────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌───────────────────┐
│ 169 SKILLS │ │ 7 MCP SRV │ │ GATEWAY :8643 │
│ 29 cats │ │ agentmail │ │ WEBHOOK :8644 │
│ 6 empty │ │ nanobanana │ │ DASHBOARD :9119 │
│ │ │ obsidian │ │ TUI (built) │
│ │ │ sqlite │ │ HCI :10272 │
│ │ │ vibetrading │ │ │
│ │ │ aether-console│ │ │
│ │ │ composio │ │ │
└──────────────┘ └──────────────┘ └───────────────────┘
│
▼
┌──────────────────────────┐
│ STORAGE │
│ Sessions: 685 MB ⚠️ │
│ Logs: 9.5 MB │
│ Memories: 60 KB │
│ Checkpoints: active │
└──────────────────────────┘
┌────────────────────────────────────────────────────────────┐
│ PROFILES (4 total) │
│ omega (active) │ reviewer │ scribe │ prompter │
│ │ │
│ Reviewer & Scribe each have 19 skill cats (subset) + │
│ deepseek-v4-pro (vs flash in omega) │
└────────────────────────────────────────────────────────────┘
Data Flow (Current Session)
TELEGRAM (you)
│ POST message
▼
GATEWAY :8643
│ dispatch to profile
▼
OMEGA PROFILE (Sibylle)
│ load AGENTS.md + config + 169 skills + memory
│
├──→ MCP servers (agentmail, obsidian, sqlite, etc.)
├──→ Terminal (local shell)
├──→ Web search (via SearXNG / Firecrawl)
├──→ Delegation (reviewer → scribe)
└──→ Memory (read/write persistent store)
│
▼
RESPONSE → Telegram (you)