# How to Install a Custom Hermes Skill from GitHub

> Source: <https://blog.devgenius.io/how-to-install-a-custom-hermes-skill-from-github-c9ee50494bfb?source=rss----4e2c1156667e---4>
> Published: 2026-07-07 12:31:59+00:00

This guide walks through a tested end-to-end workflow: copy a custom SKILL.md from GitHub into ~/.hermes/skills, confirm it shows up, run it, and optionally automate it. Hermes does not require a separate register or install command for that layout.

I published a custom SKILL.md on GitHub and wanted a dependable installation path for Hermes. After reading several docs without finding a single operational narrative, I ran through the procedure with an AI assistant and captured the result here.

This article is the cleaned-up version of that session so you can repeat the same steps with less trial and error.

Shell examples below were validated in a real environment; substitute your repo, path, branch, and local skill slug where indicated.

Original ask to the assistant:

i’ve written a customSKILL.mdthat has been published at my Github account. Please guide me how to install it either through chat here or in command line

What the session covered:

The source repo: [https://github.com/j3ffyang/ai-custom-skills](https://github.com/j3ffyang/ai-custom-skills)

You need two things before copying into ~/.hermes/skills:

The example below uses one of my own custom SKILL.md files.

Download to a staging directory, then install (§2):

```
mkdir -p /tmp/hermes-skillcurl -sL -o /tmp/hermes-skill/SKILL.md \  "https://raw.githubusercontent.com/j3ffyang/ai-custom-skills/main/hermes/ai-newsletter-prompt/SKILL.md"
```

**Clone alternative:** If you use git clone, copy SKILL.md from the working tree with cp instead of curl — handy for private repos or when you want sibling files next to the skill.

Copy SKILL.md into ~/.hermes/skills/<skill-name>/SKILL.md. That is the whole install: Hermes loads skills from this directory and does not need an extra CLI step to register a local custom skill. In this example the slug is ai-newsletter-daily, so the path is ~/.hermes/skills/ai-newsletter-daily/SKILL.md.

Run:

```
hermes skills list
```

The custom skill should appear in the output.

```
hermes skills list                         Installed Skills                                   ┏━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┓┃ Name                  ┃ Category   ┃ Source  ┃ Trust   ┃ Status  ┃┡━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━┩│ ai-newsletter-daily   │            │ local   │ local   │ enabled │
```

If you install a skill only by copying it under ~/.hermes/skills, hermes skills inspect does not cover that local skill, so you cannot use inspect to verify required_environment_variables or related metadata.

The example SKILL.md used here does not define required_environment_variables in the file. Runtime keys still depend on what the skill actually calls; set them from the prose in SKILL.md, your README, or your own notes.

For ai-newsletter-daily you need:

Persist these in your shell profile (~/.bashrc, ~/.zshrc, etc.) or export them in the session where Hermes runs.

```
export BRAVE_API_KEY=xxxxxxxxxxxxxxxxxxxxexport FIRECRAWL_API_KEY=yyyyyyyyyyyyyyyyyyyy
```

Hermes routes user intent to skills from both the terminal UI and bridged chat apps. You do not need a special syntax unless your deployment or bridge defines one.

**Hermes TUI**

**Messaging channels (e.g. WhatsApp, Telegram)**

**If the skill does not run**

To generate and deliver output on a schedule (for example a daily newsletter), wire a Hermes cron job or an external scheduler that invokes the same workflow you use interactively. Exact flags depend on your Hermes version and channel setup; use hermes — help and your install docs for cron-specific syntax.

Re-fetch the raw SKILL.md (§1), replace the file under ~/.hermes/skills/<skill-name>/SKILL.md, then confirm with hermes skills list.

[How to Install a Custom Hermes Skill from GitHub](https://blog.devgenius.io/how-to-install-a-custom-hermes-skill-from-github-c9ee50494bfb) was originally published in [Dev Genius](https://blog.devgenius.io) on Medium, where people are continuing the conversation by highlighting and responding to this story.
