Manage Hermes Agent profile configurations — audit, update, and fix model/provider settings across profiles. Use when the user asks to review, fix, or bulk-update profile configs, model names, provider URLs, or Discord/platform settings across multiple profiles.
Scanned 9/10/2026
Install to Claude Code
npx -y skills add theheavenlyd3mon/hermes-profiles --skill hermes-profile-config --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Hermes Profile Config?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/theheavenlyd3mon-hermes-profile-config)More formats (shields.io, HTML) on the badges page.
---
name: hermes-profile-config
description: Manage Hermes Agent profile configurations — audit, update, and fix model/provider settings across profiles. Use when the user asks to review, fix, or bulk-update profile configs, model names, provider URLs, or Discord/platform settings across multiple profiles.
---
# Hermes Profile Config Management
Audit, update, and fix Hermes Agent profile configurations across the `~/.hermes/profiles/` directory.
## Key Paths
```
~/.hermes/profiles/<name>/config.yaml # Per-profile config
~/.hermes/config.yaml # Global config
~/.hermes/.env # API keys (XIAOMI_API_KEY, etc.)
```
## Model Naming Convention
**Correct format** — model name and provider are separate fields:
```yaml
model:
default: mimo-v2.5-pro
provider: xiaomi
providers:
xiaomi:
base_url: https://token-plan-sgp.xiaomimimo.com/v1
```
**Incorrect format** — provider prefix baked into model string:
```yaml
model: xiaomi/mimo-v2.5-pro # ← Wrong: no explicit provider, relies on implicit resolution
```
Always split into `model.default` + `model.provider` + `providers.<name>.base_url`.
## Audit Pattern
Quick audit of all profiles' model and provider status:
```bash
for dir in ~/.hermes/profiles/*/; do
name=$(basename "$dir")
model=$(grep "^model:" "$dir/config.yaml" 2>/dev/null | head -1 | awk '{print $2}')
echo "$name: $model"
done
```
Check which profiles have `providers:` set:
```bash
for dir in ~/.hermes/profiles/*/; do
name=$(basename "$dir")
echo "=== $name ==="
grep -A8 "^providers:" "$dir/config.yaml" 2>/dev/null | head -9
done
```
## Bulk Update Pattern
When updating many profiles at once, use `execute_code` with Python to batch-patch all `config.yaml` files. This is more reliable than individual `patch` calls for multi-file changes.
```python
import os
profiles_dir = os.path.expanduser("~/.hermes/profiles")
for name in sorted(os.listdir(profiles_dir)):
config_path = os.path.join(profiles_dir, name, "config.yaml")
if not os.path.isfile(config_path):
continue
with open(config_path, "r") as f:
content = f.read()
# ... apply transformations ...
with open(config_path, "w") as f:
f.write(content)
```
## Common Fixes
### Add provider block to profiles missing it
Replace flat model string with structured model + providers:
```yaml
# Before
model: xiaomi/mimo-v2.5-pro
# After
model:
default: mimo-v2.5-pro
provider: xiaomi
providers:
xiaomi:
base_url: https://token-plan-sgp.xiaomimimo.com/v1
```
### Fix Discord bot not responding
Check these settings in the profile's `config.yaml` under the `discord:` section:
| Setting | Symptom if wrong | Fix |
|---|---|---|
| `require_mention: true` | Bot ignores all messages without `@` | Set to `false` if bot should respond freely |
| `free_response_channels` | Bot only responds in one specific channel | Add the channel ID or set `require_mention: false` |
| `allowed_channels: ''` (empty) | May block all channels if non-empty elsewhere | Ensure target channel is allowed |
**Most common cause of silent Discord bot:** `require_mention: true` — the bot is working fine but ignoring messages that don't @mention it.
### Switch a profile to OpenRouter / owl-alpha
```yaml
model:
default: owl-alpha
provider: openrouter
providers:
openrouter:
base_url: https://openrouter.ai/api/v1
```
Ensure `OPENROUTER_API_KEY` is set in `~/.hermes/.env`.
## Provider Base URLs
| Provider | Base URL |
|---|---|
| xiaomi | `https://token-plan-sgp.xiaomimimo.com/v1` |
| openrouter | `https://openrouter.ai/api/v1` |
| deepseek | `https://api.deepseek.com` |
## After Making Changes
Always restart the gateway for config changes to take effect:
```bash
hermes gateway restart
```
Or in-session: `/restart` (gateway session) or `/new` (CLI session).
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!