Skip to main content
Back to Read
AI Agents30 April 2026Updated 12 September 202610 min read

Hermes Agent Skills: Build Custom Extensions (UK Guide 2026)

How to write custom Hermes Agent skills for UK business workflows. Skill anatomy, governance patterns, real examples, and the agentskills.io standard that makes them portable.

Sajad Saleem

Co-founder of Ampliflow. Builds AI automation, websites, SEO/AEO, and growth systems for UK SMEs.

A man in a workshop placing one small compartmented tool tray among a matching row of five on a wooden shelf, in soft window light.
Illustrative scene.
  1. 01What a Hermes skill actually is
  2. 02The frontmatter fields Hermes documents
  3. 03Illustrative skill files for business workflows
  4. 04Governance patterns for team use
  5. 05The seven anti-patterns

Skills are the difference between "I asked Hermes to summarise my emails and it kind of did" and "I type `/morning-brief` in WhatsApp and the right report appears." They convert ad-hoc agent capability into repeatable, governable workflow. They follow the open agentskills.io standard, which makes the core format portable; tool names, metadata and permission behaviour still need checking on each platform. This guide covers skill anatomy, the patterns that make them reliable, governance for team use, and illustrative skill files for business workflows.

Last updated: July 2026 · Checked against Hermes Agent v0.16 and the agentskills.io open standard

TL;DR:

  • A skill is a directory containing a SKILL.md file with YAML frontmatter and markdown instructions
  • Hermes keeps its primary skill library in ~/.hermes/skills/; shared repositories can be added through skills.external_dirs
  • Every installed skill can be invoked as /skill-name, and up to five skills can be stacked in one command
  • Skills follow the agentskills.io open standard, but platform-specific metadata and tools still need adapting
  • Real production patterns from Ampliflow's Hermes deployment included throughout

If you are looking at skills because your team needs a repeatable business workflow, the useful question is not just how to write the SKILL.md file. It is which workflow deserves automation, what needs human approval, and whether the result should live in an agent, app or dashboard. For that route, see AI automation, apps and MVP development, or Get unstuck.

What a Hermes skill actually is

A directory. With a `SKILL.md` file inside. With YAML frontmatter on top and markdown instructions below. That's the entire format.

text~/.hermes/skills/operations/morning-brief/
├── SKILL.md           # Required — the entry point
├── examples/
│   └── sample-output.md  # Optional — format reference
└── scripts/
    └── pull-data.py   # Optional — executable Hermes can invoke

The directory name becomes the skill name (/morning-brief invokes it). The SKILL.md is where the work lives.

A minimal example:

yaml---
name: morning-brief
description: Pulls overnight order data, calendar, and support queue; sends a one-paragraph WhatsApp summary. Use when the user asks for "morning brief" or schedules the agent at 08:00.
version: 1.0.0
platforms: [linux]
---

# Morning Brief

## Process
1. Pull last 24h order data from /data/orders.csv
2. Pull today's calendar from Google Calendar API
3. Pull open support tickets from /data/support.csv
4. Synthesise into 200 words max
5. Send via WhatsApp to founder's number

## Format
"{N} orders overnight (£{revenue}). Today: {meeting count} meetings, {urgent count} urgent items. Support queue: {open count} open ({urgent count} urgent). Top action: {synthesised priority}."

## Rules
- Lead with the most actionable item
- Flag URGENT-tagged anything in the first sentence
- Don't apologise; don't preamble; just deliver the brief

Roughly 25 lines of plain English. Hermes reads this, executes the steps, and delivers the WhatsApp message.

The frontmatter fields Hermes documents

FieldPurpose
`name`Skill identifier; use a short lowercase hyphenated name
`description`What the skill does and when it should be used
`version`Optional version for tracking changes
`platforms`Optional `macos`, `linux`, or `windows` restriction
`metadata.hermes.tags`Optional discovery and organisation tags
`metadata.hermes.category`Optional category shown in the skill library
`metadata.hermes.requires_*`Only expose the skill when required tools or toolsets are available
`metadata.hermes.fallback_for_*`Expose a fallback skill when a preferred tool or toolset is unavailable
`metadata.hermes.config`Declare non-secret settings Hermes should resolve from configuration
`required_environment_variables`Declare secrets or environment values needed by the skill without putting them in the file

Hermes v0.16 does not document Claude Code-specific fields such as disable-model-invocation, allowed-tools, model, or effort as Hermes skill frontmatter. Do not copy those fields across and assume they enforce permissions. Put approval rules in the procedure and keep tool permissions in Hermes configuration.

Illustrative skill files for business workflows

Skill 1 — Daily ops brief

The skill above illustrates the pull → synthesise → format → deliver pattern. Replace the example sources with authorised integrations and test each step before use.

Skill 2 — Customer concierge auto-reply

yaml---
name: customer-concierge
description: Drafts replies to common customer WhatsApp queries from approved templates for human review. Use when an inbound WhatsApp message is received during off-hours or for templated query types.
version: 1.0.0
platforms: [linux]
---

# Customer Concierge Auto-Reply

## Triggers
- Inbound WhatsApp during off-hours (18:00-09:00 local)
- Inbound WhatsApp matching templated query patterns (pricing, hours, location, "is X in stock")

## Process
1. Match the incoming message to one of the templated patterns
2. Prepare the matching response and show the exact message for approval
3. Send only after explicit approval, then flag the conversation for human review next morning
4. If no match: prepare "Thanks for reaching out — we have received your message and will pass it to the team" and flag for priority human review

## Forbidden patterns (escalate to human, never auto-reply)
- Pricing for a specific custom job
- Anything containing "complaint", "refund", "cancel"
- Anything from a known VIP customer (list at /data/vip-list.txt)
- Anything mentioning legal, regulatory, or compliance terms

## Templates
- See /skills/customer-concierge/templates/ for the approved response set

The approval step is the safety boundary. A skill file is guidance, not a permission system: message sending must still be constrained by the tools and approval policy available to Hermes.

Skill 3 — Weekly content brief generator

yaml---
name: brief-content
description: Generates a content brief for an article from a target keyword + topic cluster. Use when the user asks to "brief an article" or "create a content brief for {topic}".
---

# Generate Content Brief

## Inputs
- Target keyword (e.g. "claude code pricing")
- Topic cluster (e.g. "cluster-10-claude-code")
- Target word count (default 2,500)

## Process
1. Confirm explicit approval and a spend cap before using any paid research API; otherwise stop before making the request
2. Pull search volume + competition from DataForSEO only within that approved scope
2. Pull top-3 SERP results via Exa API
3. Synthesise: what do top results cover, what do they miss, what's the unique Ampliflow angle
4. Generate brief at /content/briefs/{slug}.md with:
   - Target keyword + variants
   - Top 3 competitor URLs + their angles + their gaps
   - Suggested H2 structure (5-8 sections)
   - 3-5 internal links to weave in (from /content/SLUG-MAP.md)
   - Recommended call-to-action
5. WhatsApp confirmation: "Brief ready for {slug}, top competitor avg word count {N}"

This example prepares a brief. It does not establish that the resulting article is accurate or ready to publish; editorial review and source checks remain separate.

The agentskills.io open standard

The core format is portable. Hermes follows the agentskills.io standard, so the directory, SKILL.md, name, and description carry cleanly between compatible agents. Hermes-specific metadata, platform restrictions, tool names, and approval behaviour still need checking on the destination platform. Use the official Hermes Skills System guide alongside the Agent Skills specification rather than assuming every frontmatter field is interchangeable.

The compatibility means:

  • A SKILL.md you wrote for Hermes opens cleanly in Claude Code's .claude/skills/
  • The standard name and description fields share a format; check product-specific fields separately
  • Tool invocation patterns are similar
  • Some platform-specific tools differ (Hermes has WhatsApp; Claude Code has Bash) but the skill structure is identical

For UK businesses building skill libraries, this matters for two reasons:

  1. No platform lock-in. If you switch from Hermes to a different agent in 18 months, your skill library mostly comes with you.
  2. Cross-platform team patterns. A small developer team using Claude Code on their laptops + a separate Hermes instance for ops work can share a skill library between both.

Governance patterns for team use

  1. 01Local Hermes skills
  2. 02Shared team skills through external directories
  3. 03Skill bundles
  4. 04The kill-switch pattern

For team deployments, four governance patterns matter:

1. Local Hermes skills

~/.hermes/skills/ is the primary directory and source of truth. Bundled, hub-installed, and agent-created skills all live there. Use it for personal workflows and skills owned by one Hermes profile.

2. Shared team skills through external directories

Keep shared skills in a version-controlled repository, then add that directory under skills.external_dirs in ~/.hermes/config.yaml. Hermes scans those skills alongside its local library, and a local skill with the same name takes precedence.

External directories are not read-only. If Hermes can write to the directory, agent-managed skill actions can change it. Use filesystem permissions and code review when the shared library must be controlled.

3. Skill bundles

When a workflow always needs the same set of skills, create a bundle rather than one oversized skill. Bundles live in ~/.hermes/skill-bundles/ and load several installed skills behind one slash command.

4. The kill-switch pattern

Provide an operator-controlled stop mechanism in the actual service or tool layer. A file flag is only effective if the execution code checks it before consequential actions and the operator has permission to set it. Written skill instructions alone are not an enforceable stop.

Test how the control affects running jobs, queued sends and retries, and record who can use it. Do not promise a fixed recovery time without measuring the full path.

The seven anti-patterns

Skills go wrong in seven recognisable ways.

  1. Vague description that never triggers. "A skill for reports" gives Hermes nothing to match against. Rewrite as a "Use when…" sentence.
  2. The mega-skill trap. Bundling weekly summary + monthly forecast + customer triage into one skill. Mega-skills load late, fire less reliably, and confuse the agent when sections conflict.
  3. Long procedures in always-loaded context instead of skills. Keep specialised workflows on demand so they do not consume context during unrelated work.
  4. Over-scripting. Shipping complex Python scripts when imperative markdown instructions would work. Markdown is easier to maintain + audit.
  5. Wrong scope for the intended use. Use the profile’s primary library for local skills and configured external directories for shared skills. Check filesystem permissions and name collisions; a relative .hermes folder is not automatically a separate project scope.
  6. Treating frontmatter as a permission system. A /send-customer-email procedure still needs constrained tools, a preview, and explicit approval before the external action.
  7. No verification step in skills with external side effects. Send actions should produce a "what would have been sent" preview before the actual send, with explicit human approval as the gate.

Frequently asked questions

How is a Hermes skill different from a Claude Code skill?

The core directory and SKILL.md format are shared. Tool names, supported fields, triggers and permission behaviour differ, so port a skill by testing its inputs, actions and failure cases on the destination platform.

Where do Hermes skills live?

The primary library is ~/.hermes/skills/. For a shared repository, add its skills directory through skills.external_dirs in ~/.hermes/config.yaml.

How does Hermes know which skill to invoke?

Two paths: (1) auto-trigger by matching the user's prompt against each skill's description field, or (2) explicit /skill-name invocation by the user. The description is a fuzzy-match trigger — write it precisely.

Can Hermes skills be invoked by name like Claude Code's /command?

Yes. Hermes and Claude Code support named skill invocation. That interface is implemented by each product; the Agent Skills file format does not guarantee identical commands or behaviour in every compatible agent.

How do I keep a skill with side effects safe?

Do not rely on an undocumented frontmatter field. Restrict the tools Hermes can use, require a preview in the procedure, and keep the external action behind explicit human approval.

Can skills run shell commands or external scripts?

Yes. Skills can include helper scripts and reference files. Execution still goes through the tools available to the current Hermes profile, so document inputs, expected output, failure handling, and verification.

How do I share skills with my team?

Keep the shared directory in Git and add it to each profile through skills.external_dirs. Use normal review and release controls for changes.

What happens if a skill produces an error?

Define and test the failure policy for the workflow: which errors may be retried, what must stop, and how the operator is notified. Do not retry a consequential action until you know whether the first attempt succeeded.

How many skills should one Hermes deployment have?

There is no useful universal number. Keep each skill narrow, remove duplicates, and use bundles when several skills always travel together.

What should you do next?

Skills become valuable around the moment your team writes the second one. The first one is hardest because the patterns are not there yet.

Want help designing the first safe, repeatable workflow? Get unstuck →

Hermes setup help

Deployment, skills and day-two reliability

Get help setting up your Hermes agent

We deploy, harden and maintain Hermes Agent for UK businesses — cloud hosting, gateways, skills, approvals, monitoring and recovery included.

Cloud deployment & hardening
WhatsApp, Slack & email
Safe, repeatable skills
Monitoring & recovery
Scope my Hermes setup

Bring the use case or the setup you already have. We will tell you the smallest sensible next step.