Repo layout
A tap is any GitHub repo (public or private - private needs GITHUB_TOKEN ) laid out like this: Rules: Each skill lives in its own directory under the tap's root path (default skills/ ). The directory name becomes the skill's install slug. Each skill directory must contain a SKILL.md with standard SKILL.md frontmatter ( name , description , plus optional metadata.hermes.tags , version , author , platforms , metadata.hermes.config ). Subdirectories like references/ , templates/ , scripts/ , assets/ are downloaded alongside SKILL.md at install time. Skills whose directory name starts with . or _ are ignored. Hermes discovers skills by listing every subdirectory of the tap path and probing each for SKILL.md .
From the official Hermes Agent documentation.
owner/repo
├── skills/ # default path; configurable per-tap
│ ├── my-workflow/
│ │ ├── SKILL.md # required
│ │ ├── references/ # optional supporting files
│ │ ├── templates/
│ │ └── scripts/
│ ├── another-skill/
│ │ └── SKILL.md
│ └── third-skill/
│ └── SKILL.md
└── README.md # optional but helpful