Skip to content
Back to skills

Hermes Profile Config

ASecurity

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.

  • 36 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 10, 2026
ai-agentspythonbashapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add theheavenlyd3mon/hermes-profiles --skill hermes-profile-config --agent claude-code

Installs 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 with every re-scan.

Security grade badge for Hermes Profile Config
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/theheavenlyd3mon-hermes-profile-config/badge)](https://www.skillsdirectory.com/skills/theheavenlyd3mon-hermes-profile-config)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.