Appearance
Skills Hub Ecosystem
Every skill you've written so far lives in ~/.hermes/skills/. That's the right place for personal procedures and environment-specific knowledge. But a lot of the procedures you need already exist, someone else configured PostgreSQL replication, someone else wrote a skill for setting up Let's Encrypt with nginx, someone else captured the exact steps for migrating from pip to uv without breaking a monorepo.
The Skills Hub is where those skills live. It's a community repository of reusable procedures that you browse, install, and update through the same CLI you use for local skills. This lesson covers the ecosystem: finding skills, understanding trust levels, the security scanning that runs on install, and publishing skills you've written.

What you'll learn
hermes skills browseopens the full catalog;hermes skills searchfinds specific procedures, both work offline against a local index- Every skill in the hub carries a trust level (verified, community, untrusted) that determines what gates it passes through on install
- Installed skills are scanned for prompt injection and malicious patterns before they reach the system prompt, the same scanner that protects context files
- You can publish your own skills with
hermes skills publish, or tap external GitHub repositories withhermes skills tap add
The problem
You're about to set up PostgreSQL streaming replication. You know the general idea, WAL shipping, standby servers, failover, but the exact sequence of pg_basebackup and pg_hba.conf edits and postgresql.conf parameters is something you've done twice in your career and forgotten both times. You could work through it with Hermes interactively, debugging each step. Or someone could have already written a skill that captures the procedure.
The Skills Hub exists because the knowledge you need for specific, infrequent system administration tasks shouldn't require you to rediscover it from first principles. Some procedures are one-and-done for any given person but common enough across the community that a shared skill saves everyone hours.
Options & when to use each
The Skills Hub is one of several ways to get skills into Hermes:
| Source | How you get it | Updates | Trust model | Best for |
|---|---|---|---|---|
Skills Hub (hermes skills install) | Browse the catalog, install with a single command | hermes skills update fetches newer versions | Trust levels (verified, community, untrusted) + security scan | Community-maintained procedures, reference skills, domain-specific tooling |
GitHub tap (hermes skills tap add) | Point to a GitHub repo, Hermes syncs its skills | Automatic on repo push, or manual hermes skills update | You trust the repo owner, you added the tap | Team-shared skills, organizational standards, private skill repos |
Direct URL (hermes skills install https://...) | Install a single SKILL.md from a URL | Manual, you reinstall to update | You trust the URL source | One-off skills from blog posts or gists, testing a skill before sharing |
| Local (write your own) | Write a SKILL.md in ~/.hermes/skills/ | You edit it | Full trust, you wrote it | Personal procedures, environment-specific knowledge, secrets-adjacent workflows |
For most users, the flow is: browse the hub for common procedures, tap your team's GitHub repo for shared organizational skills, and write local skills for anything specific to your machine or workflow.
Trust levels
Not every skill in the hub is equally trusted. Hermes applies three trust levels that control what happens on install:
| Trust level | What it means | What happens on install |
|---|---|---|
| Verified | The skill author's identity is confirmed, the skill has been reviewed for correctness and safety, and it passes all automated checks | Installs without prompts. Shown with a verified badge in hermes skills browse |
| Community | Published by a registered hub user, passed automated security scanning, but not manually reviewed | Installs with a confirmation prompt showing the skill name and description. The security scan runs before the prompt appears, if the scan fails, the install is blocked |
| Untrusted | Published anonymously or from a new account with no history | Blocked by default. Can be installed with an explicit --trust flag after reviewing the source |
When you browse the hub, the trust level is visible next to each skill. The search results and browse interface both show it prominently, you can filter by trust level to see only verified skills if you prefer to stay within reviewed content.
Security scanning
Every skill installed from the hub passes through the same threat-pattern scanner that protects project context files. The scanner checks for:
- Prompt injection patterns, text designed to override the system prompt or inject instructions into the conversation
- Promptware, known malicious patterns that attempt to extract secrets, bypass tool restrictions, or redirect agent behavior
- Suspicious file references, paths that look like attempts to read or write outside the skill directory
If a skill triggers the scanner, the install is blocked with a message indicating what pattern was detected. The skill is not installed, and its content never reaches the system prompt. You can review the blocked skill's source on the hub to understand what tripped the scanner, but you can't bypass it, blocked is blocked.
This scanning is automatic and mandatory for hub installs. There is no opt-out. If you genuinely need a skill that triggers the scanner (unlikely, since the patterns are specifically malicious), you can copy the content manually into a local skill after reviewing every line.
Local skills are not scanned
Skills in ~/.hermes/skills/ that you wrote yourself are trusted by default. The scanner only applies to skills installed from external sources (hub, URL, tap). If you copy a skill from the hub into your local directory manually, you're bypassing the scanner, make sure you've reviewed it.
Build it
Step 1: Browse the catalog
Query the local cache of the global skill registry. This provides a high-level view of available community procedures without initiating network calls.
bash
hermes skills browseThis opens the full skills catalog. You can scroll through categories, see trust levels, and read descriptions. The browse command works against a local cache, it doesn't require a network connection after the initial catalog fetch.
Step 2: Search for specific procedures
Execute targeted keyword lookups against the index to locate domain-specific templates. Results are sorted by relevance and community usage metrics.
bash
hermes skills search "postgresql replication"
hermes skills search "nginx letsencrypt"
hermes skills search "docker compose deployment"Searches return skills matching the keywords, ranked by relevance. Each result shows the skill name, description, trust level, and download count.
Step 3: Inspect before installing
Before installing a skill, inspect its full content:
bash
hermes skills inspect postgres-replicationThis shows the complete SKILL.md without installing it, frontmatter, description, procedure steps, and any linked files. Use this to verify the skill does what you expect before it enters your skill library.
Step 4: Install a skill
Pull the validated artifact into your local registry. The system runs security heuristics during this phase to intercept malicious prompt payloads.
bash
hermes skills install postgres-replicationFor verified skills, installation is immediate. For community skills, you'll see a confirmation prompt. For untrusted skills, you'll need --trust:
bash
hermes skills install untrusted-skill-name --trustAfter installation, the skill appears in hermes skills list and is available in the Level 0 skills list at the next session start.
Step 5: Update installed skills
Check for updates to installed hub skills:
bash
hermes skills checkIf updates are available:
bash
hermes skills updateThis updates all installed hub skills to their latest versions. Local skills (written by you or Hermes) are not affected, the update command only touches skills with hub provenance.
To update a specific skill:
bash
hermes skills update postgres-replicationStep 6: Tap a GitHub repository
If your team maintains a shared skill repository, add it as a tap:
bash
hermes skills tap add https://github.com/my-team/hermes-skillsHermes clones the repository and indexes its skills. They appear in hermes skills list with the tap source indicated. When the repository is updated (new commits pushed), hermes skills update pulls the changes.
List your taps:
Review all configured external repository endpoints. These upstream sources feed directly into your local index during update cycles.
bash
hermes skills tap listStep 7: Publish a skill
If you've written a skill that would be useful to others, publish it:
bash
hermes skills publish ~/.hermes/skills/my-skillThe publish command packages the skill, runs it through the security scanner, and uploads it to the hub. You'll need a hub account (create one at the hub's web interface, the CLI prompts you with the URL on first publish).
Before publishing, review your skill against the hub's publishing guidelines:
- The description should name the scenario, not the implementation
- Remove any environment-specific paths, secrets, or credentials
- Include a
## Requirementssection if the skill needs specific tools - Test the skill on a clean Hermes install to verify it works without your local config
What goes wrong
| Mistake | How you notice it | The fix |
|---|---|---|
| Skill install blocked by security scan | hermes skills install fails with a "blocked by security scanner" message and a pattern reference | The skill's content matched a known malicious pattern. Inspect the skill source on the hub to understand what tripped it. If it's a false positive (the skill legitimately mentions "system prompt" in its instructions, for example), report it to the hub maintainers. You can manually copy the content into a local skill after reviewing every line |
| Installed skill doesn't work on your OS | The skill references tools or paths that don't exist on your system | Check the skill's platforms field before installing. If a skill says [linux] and you're on macOS, it won't be filtered out on install, but it won't function correctly. Look for a cross-platform alternative or create a local override |
| Tap repository disappears | hermes skills update fails with "repository not found" | The tapped GitHub repo was deleted or made private. Remove the tap: hermes skills tap remove <name>. Installed skills from the tap remain in your local directory, they won't disappear, but they also won't receive updates |
| Published skill rejected | hermes skills publish fails with a rejection message | Common rejections: missing required frontmatter fields, description that's too vague, no ## Requirements section for skills that need external tools, or a name collision with an existing hub skill. Read the rejection message, fix the issue, and re-publish |
| Hub skill overwrites a local skill with the same name | After hermes skills install, your local skill is gone | Hub skills and local skills share the same namespace (name field). If you have a local skill called docker-pipeline and install a hub skill with the same name, the hub skill replaces the local one. Rename your local skill before installing, or use a different name for the hub skill with hermes skills install <id> --name <custom-name> |
Confirm it worked
Verify the hub integration by searching, inspecting, and installing a remote artifact, followed by immediately tearing it down to maintain a clean environment.
bash
# 1. Browse the catalog (network required for first fetch)
hermes skills browse
# 2. Search for a commonly available skill
hermes skills search "git"
# 3. Inspect a skill without installing (replace with an actual hub skill ID)
hermes skills inspect <skill-id>
# 4. Install a community skill
hermes skills install <skill-id>
# 5. Verify it appears in your local list
hermes skills list | grep <skill-id>
# 6. Check for updates
hermes skills check
# 7. Uninstall to clean up
hermes skills uninstall <skill-id>If step 5 shows the installed skill in your local list, the hub install pipeline is working. If step 6 runs without errors, the update check pipeline is working.
For a broader perspective on how reusable skills fit into the agent development workflow, including the skill pattern across different agent platforms and when to invest in a skill vs. a one-shot prompt, see the flagship course's Building Reusable Skills lesson.
Next: Day 3, The Gateway, deploying Hermes as a persistent service on Telegram, Discord, and other messaging platforms.