📚 BusinessExplain 🏠 Home 📊 Analytics
← Back to Skills

Hermes Skills Install

⚙️ DevOps & Infrastructure 10 min read v1.0.0
📋 Contents

Hermes Skills Installation

Bulk discovery, evaluation, and installation of Hermes Agent skills from multiple sources.

When to Use

  • User asks to install skills from a repo or registry
  • User shares a GitHub link for a skill pack
  • User asks "what skills should I get" or "recommend skills"
  • Evaluating and comparing skill sources
  • Bulk-installing skills with proper type handling
  • Quick Reference

    | Source | URL | Skills | Quality |
    |--------|-----|--------|---------|
    | Official Hermes Skills Hub | agentskills.io / hermes skills browse | Curated | High |
    | awesome-hermes-agent | github.com/0xNyk/awesome-hermes-agent | 100+ links | Curated list (3K⭐) |
    | HermesHub | github.com/amanning3390/hermeshub | 22 | High (security-scanned) |
    | Felo Skills | github.com/Felo-Inc/felo-skills | 14 | Medium |
    | Composio | composio.dev | 1,000+ SaaS | High (CLI tool) |
    | SEO+GEO Skills | github.com/aaron-he-zhu/seo-geo-skills | 20 | Medium |
    | Taste-Skill | github.com/Leonxlnx/taste-skill | 12 | Medium |
    | Playwright | github.com/testdino-hq/playwright-skill | 6 | Medium |
    | Claudeception | github.com/blader/Claudeception | 5 | Medium |
    | oh-my-hermes | github.com/witt3rd/oh-my-hermes | 10 | Medium (multi-agent orchestr.) |
    | Open Design | github.com/nexu-io/open-design | 134 | High (28K⭐, design systems) |
    | YouTube Skills | github.com/ZeroPointRepo/youtube-skills | 12 | High (VPS-friendly transcripts) |
    | Cybersecurity MITRE | github.com/mukul975/Anthropic-Cybersecurity-Skills | 753 | High (4K⭐, MITRE ATT&CK) |
    | Chainlink | github.com/smartcontractkit/chainlink-agent-skills | 6 | High (official) |
    | Black Forest Labs | github.com/black-forest-labs/skills | 2 | High (official FLUX) |
    | Wondelai | github.com/wondelai/skills | 42 | Medium (business/design books) |
    | AgentCash | github.com/Merit-Systems/agentcash-skills | 26 | Medium (300+ APIs, x402) |
    | Maestro | github.com/ReinaMacCredy/maestro | 39 | Medium (skill orchestration) |
    | Super-Hermes | github.com/Cranot/super-hermes | 5 | Medium (meta-reasoning) |
    | Evey Plugins | github.com/42-evey/hermes-plugins | 34 | Medium (goal mgmt, cost ctrl) |
    | SkillClaw | github.com/AMAP-ML/SkillClaw | pip | Medium (skill auto-publishing) |
    | RTK | github.com/ogallotti/rtk-hermes | pip | High (60-90% token compression) |
    | Mnemosyne | github.com/AxDSan/Mnemosyne | pip | Medium (shared memory layer) |
    | Hermes Payguard | github.com/nativ3ai/hermes-payguard | plugin | Medium (USDC/x402 payments) |
    | Web Search Plus | github.com/robbyczgw-cla/hermes-web-search-plus | plugin | Medium (multi-provider search) |
    | Nextcloud | github.com/adnw-vinc/hermes-nextcloud | 1 | Medium (self-hosted cloud) |
    | Plur | github.com/plur-ai/plur | 4 | Medium (shared memory layer) |
    | Colonly | github.com/TheColonyCC/colony-skill | 1 | Medium (collab intelligence) |
    | Felo Skills | github.com/Felo-Inc/felo-skills | 14 | Medium (mindmap, slides, search, x-search, web-fetch) |
    | MeiGen Design MCP | github.com/jau123/MeiGen-AI-Design-MCP | 3 | High (9 AI models, product photoshoot, social thumbnails) |

    > See references/awesome-hermes-agent-guide.md for the full curated list with descriptions and references/new-sources-may-2026.md for this batch's analysis.

    User Preferences

  • Just install it. When the user says "install all" or "ALL 1+2+3", install everything. Don't ask for confirmation. Only skip what they explicitly exclude (e.g., "no slack").
  • Tiered evaluation is for recommendations only. Once the user decides, execute immediately — no re-evaluation or second-guessing.
  • One restart at the end. Batch all installations across multiple repos, then do a single gateway restart. Don't restart after each repo.
  • Step-by-Step Workflow

    1. Mine Existing Clones First (Fast Path)

    Before cloning new repos, check /tmp/ for previously cloned packs. This avoids GitHub rate limits and is faster:

    # List all cloned repos with skill counts
    for dir in /tmp/*/; do
        count=$(find "$dir" -name "SKILL.md" -type f 2>/dev/null | wc -l)
        [ "$count" -gt 0 ] && echo "$(basename $dir): $count skills"
    done
    

    Grep for skills matching user's domain request

    find /tmp/ -name "SKILL.md" -type f | xargs grep -l -iE "document|proposal|mindmap|design|graphic"

    Install matching skills not already present

    for skill_dir in $(find /tmp/ -name "SKILL.md" -type f -exec dirname {} \;); do skill=$(basename "$skill_dir") [ ! -d "$HOME/.hermes/skills/$skill" ] && cp -r "$skill_dir" "$HOME/.hermes/skills/$skill" done

    2. Evaluate the Source

    Before installing anything from a NEW repo:

  • Always check the official hub firsthermes skills search or hermes skills browse. Hub installs require no GitHub auth and are auto-updatable via hermes skills update.

  • Check GitHub stars, last commit date, README quality

  • Look for SKILL.md files — that's the agentskills.io standard

  • Check if it's a skill (SKILL.md), plugin (plugin.yaml), pip package (pyproject.toml), or MCP server (server.json)
  • 3. Clone and Inspect

    # Clone to temp dir (NEVER use & backgrounding in execute_code)
    cd /tmp && git clone --depth 1  
    

    Find all SKILL.md files

    find /tmp/ -name "SKILL.md" -maxdepth 4

    Check for non-standard types

    ls /tmp//pyproject.toml 2>/dev/null # pip package ls /tmp//**/plugin.yaml 2>/dev/null # Hermes plugin ls /tmp//server.json 2>/dev/null # MCP server

    4. Install by Type

    Standard SKILL.md (most common):

    # Copy the directory containing SKILL.md
    cp -r /tmp//path/to/skill ~/.hermes/skills/

    Validate

    head -5 ~/.hermes/skills//SKILL.md

    Pip Package (rtk-hermes, SkillClaw, etc.):

    # Install into Hermes venv (NOT system python)
    cd /tmp/ && /usr/local/lib/hermes-agent/venv/bin/pip install -e .

    Verify

    /usr/local/lib/hermes-agent/venv/bin/pip show

    Hermes Plugin (Mnemosyne, etc.):

    # Copy to plugins directory
    cp -r /tmp//hermes_plugin ~/.hermes/plugins/

    Verify plugin.yaml exists

    cat ~/.hermes/plugins//plugin.yaml

    MCP Server (nothumansearch, etc.):

    # Add to config.yaml under mcp_servers

    Read server.json for connection details, then:


    python3 -c "
    import yaml
    with open('/root/.hermes/config.yaml', 'r') as f:
    config = yaml.safe_load(f)
    config['mcp_servers'][''] = {
    'type': 'streamable-http', # or 'stdio'
    'url': '',
    'description': ''
    }
    with open('/root/.hermes/config.yaml', 'w') as f:
    yaml.dump(config, f, default_flow_style=False, sort_keys=False, allow_unicode=True)
    "

    5. Validate All Installs

    # Count total SKILL.md files
    find ~/.hermes/skills -name "SKILL.md" -type f | wc -l
    

    Validate frontmatter (must have name: and description:)

    for skill in ; do f="$HOME/.hermes/skills/$skill/SKILL.md" [ -f "$f" ] && grep -q "^name:" "$f" && echo "✅ $skill" || echo "❌ $skill" done

    Check plugins

    ls ~/.hermes/plugins/

    Check pip packages

    /usr/local/lib/hermes-agent/venv/bin/pip list | grep -iE '|'

    6. Restart Gateway

    systemctl restart hermes-gateway
    sleep 8
    systemctl is-active hermes-gateway
    

    What happens on restart:

  • Gateway scans ~/.hermes/skills/ for SKILL.md files, reads only description: fields

  • KillMode=control-group kills gateway + bridge.js together

  • Active sessions are terminated — warn user first

  • Skills are rescanned and discoverable after restart
  • Memory/Token Impact

    Skills do NOT all load into RAM. Here's the actual impact:

    | Metric | Impact |
    |--------|--------|
    | Disk | ~200-500 bytes per SKILL.md average |
    | Startup scan | Reads only description: field (~200-500 chars each) |
    | Idle RAM | Near zero — skills load on-demand |
    | Per-turn tokens | Description catalog injected into system prompt |
    | Active skill | Only triggered skill's full SKILL.md enters context (~2-10 KB) |

    Rule of thumb: 100 skills ≈ 25-30 KB of descriptions ≈ 7-8K tokens per turn. On a 128K context model, 300 skills (~20K tokens) is ~15% — still fine.

    CRITICAL: Always measure top-level only (-maxdepth 2). Recursive counts include nested pack files that the gateway never loads, producing inflated numbers (e.g., 219K chars / 54K tokens when the real impact is 67K chars / ~17K tokens).

    User Preferences

  • "Install all" means ALL. When user says "install all" or "ALL 1+2+3", don't ask for confirmation. Install everything from the specified tiers/sources. Only skip if explicitly excluded (e.g., "no slack").
  • No confirmation prompts. User is action-oriented. Just do it.
  • Parallel execution. Use execute_code with multiple terminal() calls for parallel cloning and installation. Don't clone sequentially when parallel is possible.
  • One restart at the end. Batch all installations, then do a single gateway restart. Don't restart after each skill.
  • Pitfalls

    ❌ Background cloning in execute_code

    # WRONG — execute_code terminal() does NOT support & backgrounding reliably
    

    The & runs in a subshell that execute_code cannot track or wait for

    terminal("git clone ... &")

    WRONG — multi-command backgrounding in a single string also breaks

    terminal("git clone ... & git clone ... & wait")

    RIGHT — use sequential terminal() calls within execute_code

    Each call blocks until complete, so they're reliable

    for url in url1 url2 url3; do terminal(f"cd /tmp && git clone --depth 1 {url}")
    # WRONG — symlinks from ~/.hermes/skills/ to /tmp/ break after reboot
    ln -s /tmp/oh-my-hermes/plugins/omh/skills/omh-ralph ~/.hermes/skills/omh-ralph
    

    RIGHT — copy the repo to a permanent location first, then symlink

    mkdir -p ~/.hermes/skill-repos cp -r /tmp/oh-my-hermes ~/.hermes/skill-repos/oh-my-hermes ln -s ~/.hermes/skill-repos/oh-my-hermes/plugins/omh/skills/omh-ralph ~/.hermes/skills/omh-ralph

    ❌ Pip install -e from /tmp (breaks after reboot)

    # WRONG — editable installs from /tmp break when /tmp is cleared
    pip install -e /tmp/rtk-hermes
    

    RIGHT — copy to permanent location first, then install (non-editable)

    cp -r /tmp/rtk-hermes ~/.hermes/skill-repos/rtk-hermes pip install -e ~/.hermes/skill-repos/rtk-hermes

    OR install as a regular (non-editable) package for durability

    pip install ~/.hermes/skill-repos/rtk-hermes

    ❌ Installing massive skill packs as individual top-level skills

    Packs with 100+ sub-skills (cybersecurity-mitre: 753, open-design: 134, wondelai: 42) will blow the token budget if installed individually at the top level.
    # WRONG — 753 individual cybersecurity skills at ~/.hermes/skills/*/SKILL.md = 96K chars of descriptions
    cp -r /tmp/cybersecurity-skills/skills/* ~/.hermes/skills/
    

    RIGHT — install as a single indexed pack with skills/ subdirectory

    The gateway only scans maxdepth 2, so nested SKILL.md files don't enter the description catalog

    mkdir -p ~/.hermes/skills/cybersecurity-mitre-pack

    Create a top-level SKILL.md that describes the whole pack

    Copy the individual skills into a skills/ subdirectory for on-demand loading

    cp -r /tmp/cybersecurity-skills/skills ~/.hermes/skills/cybersecurity-mitre-pack/skills

    ❌ Measuring token impact with recursive find

    The gateway only scans ~/.hermes/skills/*/SKILL.md (maxdepth 2), NOT nested files.
    # WRONG — counts ALL SKILL.md files including nested (massively overestimates)
    find ~/.hermes/skills -name "SKILL.md" -type f -exec grep "^description:" {} \; | wc -c
    

    RIGHT — only top-level files (what the gateway actually loads)

    find ~/.hermes/skills -maxdepth 2 -name "SKILL.md" -type f -exec grep "^description:" {} \; | wc -c

    ❌ Missing frontmatter validation

    Some community SKILL.md files lack the required name: field. Always validate:
    # Find broken skills (no name: in frontmatter)
    find ~/.hermes/skills -maxdepth 2 -name "SKILL.md" -type f -exec grep -L "^name:" {} \;
    

    ❌ Assuming all repos have SKILL.md at root

    Many repos nest skills in skills/subdir/SKILL.md. Always find -name "SKILL.md" first.

    ❌ Ignoring the official hub in favor of git cloning

    hermes skills install is always preferred over git clone + manual copy when the skill exists on the hub. Hub skills:
  • Auto-install to /usr/local/lib/hermes-agent/optional-skills/ (correct path)
  • Are updatable via hermes skills check / hermes skills update
  • Require NO GitHub authentication
  • Appear as "builtin" in hermes skills list counts
  • Only fall back to git clone for skills that are NOT on the hub.

    ❌ Forgetting hub skills in token measurement

    Hub skills live at /usr/local/lib/hermes-agent/optional-skills/, NOT ~/.hermes/skills/. Token measurement must sum both:
    # RIGHT — measure both locations
    local=$(find ~/.hermes/skills -maxdepth 2 -name "SKILL.md" -type f -exec grep "^description:" {} \; | wc -c)
    hub=$(find /usr/local/lib/hermes-agent/optional-skills -maxdepth 3 -name "SKILL.md" -type f -exec grep "^description:" {} \; | wc -c)
    echo "Total: $((local + hub)) chars = $(( (local + hub) / 4 )) tokens"
    

    ❌ Installing pip packages to system python

    # WRONG — PEP 668 blocks this
    pip install -e .
    

    RIGHT — use Hermes venv

    /usr/local/lib/hermes-agent/venv/bin/pip install -e .

    ❌ Copying wrong SKILL.md from multi-skill repos

    Some repos have multiple SKILL.md files (e.g., flowstate-qmd has skills/release/SKILL.md and skills/qmd/SKILL.md). Always verify the name: field matches what you expect.

    ❌ Assuming repo exists

    Repos can be private, renamed, or deleted (e.g., master-skill returned 404). Always check clone exit code.

    Known 404/private repos: hermes-mindmap, master-skill, cognify-skills, mnemo-hermes, svenmedina07-ship-it/skills, supershaneski/hermes-skills, nicholasgriffintn/hermes-mindmap-skill, marker-Inc/www

    ❌ GitHub rate limiting during bulk clones

    Cloning 10+ repos in rapid succession triggers "could not read Username for 'https://github.com': No such device or address" — this is rate limiting, NOT an auth issue. Workarounds:
  • Clone in batches of 5-8 with 2-second pauses between batches
  • Check existing clones before re-attempting: [ -d /tmp/repo-name ]
  • Mine existing cloned repos with grep -l -iE "keyword1|keyword2" for matching skills before fetching new ones
  • If already cloned in /tmp/, just reuse — don't re-clone
  • ❌ Restarting without warning

    Gateway restart kills active sessions. Always check for active slash_worker processes first:
    ps aux | grep "slash_worker" | grep -v grep | wc -l
    

    Evaluation Framework

    When the user asks "what skills should I get", evaluate against their setup:

    | Factor | Weight | How to Assess |
    |--------|--------|---------------|
    | Workflow fit | High | Does it match their actual daily tasks? |
    | Source quality | Medium | Stars, recency, security scanning |
    | Type compatibility | Medium | SKILL.md vs plugin vs pip |
    | Token budget | Low | How much description text per turn? |
    | Overlap with existing | High | Don't install duplicates |

    Source Files

  • See references/awesome-hermes-agent-guide.md for the full curated list analysis
  • See references/hermeshub-skills.md for HermesHub's 22 skills breakdown
  • 💬 Ask about Hermes Skills Install