Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsCreate a Hermes Agent skill by placing a focused directory with a required SKILL.md file in ~/.hermes/skills/ (or a trusted project skill directory), adding supported frontmatter and clear operating instructions, then testing it as an automatically generated slash command. This guide covers the complete workflow, including when a skill is preferable to a tool, file layout, verification, troubleshooting, and safe distribution.
Antihost offers VPS plans with one-click Hermes Agent, NVMe storage and a 14-day free trial.
What a Hermes Agent skill is
A skill is a procedural extension for Hermes Agent. It tells the agent when a workflow applies, which existing tools or shell commands to use, what sequence to follow, and how to check the result. The preferred use case is an instruction-led workflow that can be expressed in Markdown and supported by tools Hermes already has.
As an Amazon Associate I earn from qualifying purchases.
Free tools Windows power users keep installed
One-click scans. No signup required.
Hermes Agent treats skills as its preferred way to add capabilities. A skill is not a compiled plugin or a separate daemon: it is a directory whose required entry point is a file named SKILL.md. Hermes indexes that file and exposes the skill as a slash command.
Use a skill when the behavior depends mainly on guidance, repeatable steps, command-line operations, or existing web and system tools. A custom tool is more appropriate when the feature needs integration code, API-key or authentication handling inside the agent, deterministic data processing, binary or streaming data, or real-time events.
#1 Best Overall
Skill or tool? Choose the right extension
| Requirement | Skill | Tool |
|---|---|---|
| Instruction-led workflow using existing commands or tools | Best fit | Usually unnecessary |
| Custom integration code or a new API client | Can document the workflow, but cannot replace the integration | Best fit |
| API-key, OAuth, or other authentication handled by the feature | Keep secrets in Hermes configuration; do not hard-code them in Markdown | Prefer a tool when authentication logic must be implemented |
| Deterministic processing, binary formats, or exact transformations | Useful as an operator guide around a tool | Best fit for the processing itself |
| Streaming or real-time events | Not a suitable execution layer | Best fit |
| Portability and sharing | One directory can be copied, versioned, or published | Requires distributing and maintaining code and dependencies |
| Maintenance burden | Generally lower; update instructions as commands change | Higher; code, dependencies, permissions, and interfaces must remain compatible |
A practical pattern is to pair them: put the user-facing procedure, decision rules, and verification checklist in a skill, while a separate tool performs sensitive or exact work.
Where Hermes looks for skills
For a personal installation, the default location for agent-created skills is:
~/.hermes/skills/
You can change the directory used when creating skills with the skills.create_dir setting. A shared or Git-tracked directory is useful when a team maintains the same workflow.
Hermes can also load project-local skills from either of these paths:
<project-root>/.hermes/skills/<skill-name>/
<project-root>/.agents/skills/<skill-name>/
Project-local directories require an explicit trust action before Hermes loads them. This trust boundary matters because a skill can contain shell snippets and operational instructions. When duplicate skill names are available, directory precedence determines which copy wins; keep names unique within the locations you use and verify the selected copy with the skills listing.
Create the skill directory
Choose a narrow, descriptive name. A focused skill is selected more reliably than a broad “do everything” document. The name becomes the slash command, so use lowercase letters, numbers, and hyphens rather than spaces.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
- Make the directory.
mkdir -p ~/.hermes/skills/my-category/my-skillThe category is optional, but it helps organize related workflows. The final directory name,
my-skillin this example, should match the command you intend to invoke. - Create the required entry file.
touch ~/.hermes/skills/my-category/my-skill/SKILL.mdThe filename is case-sensitive. A directory without
SKILL.mdis not a complete skill. - Open a new Hermes session after saving. Starting a fresh session ensures the index is rebuilt and prevents an earlier session from using stale skill metadata.
Write valid SKILL.md frontmatter
Put YAML frontmatter at the very beginning of SKILL.md, enclosed by a pair of lines containing three hyphens. The documented fields include a required identity and description, a version, optional author, license, and platform information, and Hermes-specific metadata.
---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
author: Your name
license: MIT
platforms:
- linux
- macos
metadata:
hermes:
tags: [automation, workflow]
category: my-category
related_skills: []
required_tools: []
configuration: {}
blueprints: []
---
Keep the description concrete: state the task the skill performs and the sort of request that should trigger it. Avoid marketing language or a list of unrelated capabilities. Tags and category improve discovery. Use related_skills only for genuinely connected skills, and document required tools or configuration when the workflow cannot run without them.
Do not put passwords, API tokens, private keys, or other secrets in frontmatter or the body. Reference Hermes configuration instead. Treat every command in the file as an instruction that may be executed on a host when the relevant shell setting is enabled.
Structure the body for reliable execution
After the frontmatter, write the operating instructions in Markdown. A compact structure works well because Hermes can load the main file first and consult supporting files only when needed.
When to Use
List specific trigger conditions and boundaries. Explain what the skill handles and when another skill or a normal answer is better. For example:
## When to Use
Use this skill when the user needs to turn a directory of screenshots into a dated contact sheet.
Do not use it for video encoding, image retouching, or cloud uploads.
These boundaries reduce accidental selection and tell the agent how to ask for clarification.
Prerequisites and inputs
Name required software, permissions, environment variables, input paths, and assumptions. State whether a command is platform-specific. If an input is optional, define the default. If a destructive operation is possible, require confirmation or a backup before proceeding.
Procedure
Use an ordered list for actions. Include exact commands, UI paths, expected output, and a recovery branch for common failures. Prefer one observable action per step:
## Procedure
1. Confirm that the input directory exists.
2. List files and record the count.
3. Run the conversion command with the documented options.
4. Check the output directory and compare the output count with the input count.
5. Report failures by filename; do not silently skip them.
Explain placeholders in prose and show variable syntax only inside <code> or <pre> blocks. A command should be copyable without requiring the agent to guess a path, flag, or output location.
Pitfalls and failure handling
Document symptoms, likely causes, and the safest fix. Cover missing dependencies, permission errors, malformed input, network failure, partial output, and rerunning after interruption where those cases apply. Say whether rerunning is safe and how to avoid overwriting good output.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Verification
Define what “done” means. Verification might include checking an exit code, listing generated files, validating a schema, opening a result, or comparing counts. Require the agent to report uncertainty instead of claiming success when a check fails.
Use progressive disclosure for larger skills
Keep the main SKILL.md focused on selection, procedure, safety, and verification. Put long material in optional subdirectories:
my-skill/
├── SKILL.md
├── references/
│ ├── api-notes.md
│ └── examples.md
├── scripts/
│ └── validate-output.py
└── templates/
└── report.md
references/: detailed API notes, schemas, background explanations, and extended examples.scripts/: reusable helper programs that the procedure calls. State their inputs, outputs, and required runtime.templates/: reusable reports, prompts, configuration files, or other skeleton documents.
Hermes uses progressive disclosure: a compact skill index is available first, the complete SKILL.md is loaded when the skill is selected, and a specific reference file can be loaded only when needed. This keeps selection fast and prevents every request from consuming the context needed for rarely used details.
Complete creation example
The following is a minimal but operational template you can adapt:
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstall---
name: screenshot-contact-sheet
description: Build and verify a contact sheet from image files in a local directory
version: 1.0.0
metadata:
hermes:
tags: [images, automation]
category: media
---
## When to Use
Use this skill when the user asks for a contact sheet from local image files.
Do not use it for video, retouching, or remote uploads.
## Prerequisites
- Read access to the input directory
- The image utility documented in `references/requirements.md`
- A writable output directory
## Procedure
1. Ask for the input directory and output filename if either is missing.
2. Confirm the input directory exists and contains supported image files.
3. Run the command in `scripts/build-sheet.py` with explicit input and output paths.
4. Preserve the original files; write only to the requested output path.
5. If a file cannot be decoded, report its name and continue only if the user agrees.
## Pitfalls
- A permission error means the input or output path is not accessible; ask for another path.
- An empty directory is not a successful result.
- Do not overwrite an existing output without confirmation.
## Verification
Confirm that the output file exists, can be opened, and represents every successfully processed input file. Report the input count, output path, and any skipped files.
Replace the example utility and paths with commands that exist in your environment. The important design is the explicit scope, safety rule, failure behavior, and final check.
Test a custom skill
Test both discovery and behavior. First create a new Hermes session, then invoke the skill directly:
hermes chat -q "/my-skill help me with the thing"
The slash command is generated from the name field and directory metadata. Ask for a harmless operation first, then test missing inputs, invalid inputs, and a known failure. Confirm that Hermes follows the documented procedure instead of inventing a different command.
The developer test form explicitly enables the skills toolset:
Recommended Free Tools
hermes chat --toolsets skills -q "Use the my-skill skill to do Y"
Use the exact wording and input conditions your users are likely to provide. A skill that works only when the user repeats its internal section headings is too brittle.
Check discovery from the command line:
hermes skills list
Confirm that the skill appears once, has the intended description, and is not shadowed by another directory with the same name. You can also search for it in chat. If it does not appear, check the path, filename capitalization, YAML delimiters, and whether the project directory has been trusted.
Best Value
Troubleshoot common failures
| Symptom | Likely cause | Fix |
|---|---|---|
Skill is absent from hermes skills list |
Wrong parent directory, missing SKILL.md, or stale session |
Verify the path, exact filename, and start a new session. |
| YAML or metadata error | Malformed frontmatter, indentation, or an unsupported value | Reduce frontmatter to name, description, and version; validate indentation, then add optional fields incrementally. |
| Another skill runs instead | Duplicate name and directory precedence | Rename one skill or remove the duplicate; inspect the listing to identify the selected copy. |
| Commands are not executed | Required toolset is unavailable, shell execution is disabled, or a prerequisite is missing | State prerequisites in the skill, enable only the required toolset, and provide a manual alternative where appropriate. |
| Skill claims success with no output | No verification section or an unverifiable procedure | Add an observable check and require the agent to report failures and skipped items. |
| Project-local skill will not load | Project has not passed the explicit trust action | Trust the project deliberately, inspect the skill first, and retry in a new session. |
Publish or install a skill
Hermes supports several sharing routes. The appropriate choice depends on whether you control the source and whether the skill is intended for one project or many:
- Official optional skills: use the documented official collection when you want a maintained, recognizable source.
- Skills Hub sources: install from a hub or registry when you accept its distribution and trust model.
- GitHub paths: useful for a versioned repository, code review, and team collaboration.
- Custom taps: add a maintained source with
hermes skills tap add ...when your organization curates its own catalog. - Direct URLs: a hosted
SKILL.mdcan be installed when the endpoint and content are trusted.
The command family documented for managing these sources includes:
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →hermes skills inspect ...
hermes skills install ...
hermes skills publish ...
hermes skills tap add ...
hermes skills audit
hermes skills update
Use the actual source identifier in place of the ellipsis; the accepted syntax depends on whether you are using a repository path, tap, hub entry, or URL. Inspect a skill before installing it, audit installed skills, and update them when their commands or dependencies change.
Security and trust considerations
A skill is an executable procedure document, even though its main file is Markdown. Inline shell snippets are opt-in and can execute on the host when enabled. Community hub installations are scanned and do not automatically execute those snippets unless the trust gate permits it.
- Read the entire
SKILL.mdand every referenced script before trusting an unfamiliar source. - Check commands for file deletion, uploads, package installation, credential access, and network calls.
- Use the minimum filesystem and tool permissions needed for the workflow.
- Keep secrets in Hermes configuration or the environment mechanism intended for them, never in committed Markdown or templates.
- Pin or review versions for skills used in production or shared projects.
- Run a new audit after installation and after updates.
If a skill requests a permission unrelated to its stated purpose, stop and inspect the source rather than accepting the trust prompt automatically.
Maintain a skill after it works
Version the skill directory when more than one person depends on it. Increment the frontmatter version when the procedure, required tools, output format, or safety behavior changes. Record compatibility assumptions in the prerequisites section and move volatile API details into references/ so the core workflow remains readable.
After changing a command, test a normal request, a missing-input request, and at least one failure path. Run hermes skills list to ensure metadata still loads, then invoke the slash command in a fresh session. If the skill is distributed through a tap or repository, publish the updated version and have users run the documented update command rather than replacing files silently.
Final checklist
- The skill has one focused purpose and a distinctive name.
SKILL.mdexists at the expected directory level.- Frontmatter has valid delimiters, a clear description, and a version.
- Metadata identifies tags, category, related skills, required tools, or configuration where relevant.
- The body includes “When to Use,” prerequisites, an ordered procedure, pitfalls, and verification.
- Long references, scripts, and templates are separated into their optional directories.
- Secrets are not embedded in Markdown.
- The skill appears in
hermes skills listand responds to its slash command in a new session. - Untrusted sources have been inspected and audited before installation.
A well-scoped directory, valid frontmatter, explicit procedure, and observable verification are enough to turn a repeatable workflow into a dependable Hermes Agent skill. Add a tool only when the workflow crosses into custom integration, exact processing, authentication, binary or streaming data, or real-time behavior.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




