Problem or Use Case
When external_dirs is configured, Hermes discovers skills from those paths correctly — but skills create and skills edit (both CLI and agent-invoked) always write to the local skill store (~/.hermes/skills/), regardless of the external directory configuration.
This creates two problems:
-
Intent mismatch. If a user configures an external_dirs path pointing to a vault or shared repo, they expect new skills to land there. Instead, skills are silently written locally and shadow any external skill with the same name — with no warning.
-
Agent self-authoring is uncontrollable. When Hermes autonomously creates a skill during a session, there is no way to direct it to write to a vault-backed path. The only workaround is to prohibit skills create entirely in AGENTS.md and require raw file tool authoring, which loses the structured skill creation flow.
Proposed Solution
A configurable default write directory for skill creation:
skills:
external_dirs:
- /srv/vault/skills
default_write_dir: /srv/vault/skills/internal
When default_write_dir is set, skills create and skills edit write there instead of the local store. If unset, behaviour is unchanged — fully backwards compatible.
Optionally, a --dir flag on the CLI (hermes skills create --dir /path/) would also help for one-off overrides.
Alternatives Considered
Authoring skills manually via file tool directly into the external_dirs path — this works but bypasses the structured SKILL.md scaffolding that skills create provides, and requires explicitly prohibiting the agent from using skills create in AGENTS.md to prevent silent local writes.
The local-wins shadowing rule compounds this further: if a skill exists in both local and an external dir, the local copy takes precedence silently. Combined with the forced local write, there is no clean path to a vault-first workflow without bypassing the skills tooling entirely.
Feature Type
Configuration option
Scope
Small (single file, < 50 lines)
Contribution
Problem or Use Case
When
external_dirsis configured, Hermes discovers skills from those paths correctly — butskills createandskills edit(both CLI and agent-invoked) always write to the local skill store (~/.hermes/skills/), regardless of the external directory configuration.This creates two problems:
Intent mismatch. If a user configures an
external_dirspath pointing to a vault or shared repo, they expect new skills to land there. Instead, skills are silently written locally and shadow any external skill with the same name — with no warning.Agent self-authoring is uncontrollable. When Hermes autonomously creates a skill during a session, there is no way to direct it to write to a vault-backed path. The only workaround is to prohibit
skills createentirely in AGENTS.md and require raw file tool authoring, which loses the structured skill creation flow.Proposed Solution
A configurable default write directory for skill creation:
When
default_write_diris set,skills createandskills editwrite there instead of the local store. If unset, behaviour is unchanged — fully backwards compatible.Optionally, a
--dirflag on the CLI (hermes skills create --dir /path/) would also help for one-off overrides.Alternatives Considered
Authoring skills manually via file tool directly into the
external_dirspath — this works but bypasses the structured SKILL.md scaffolding thatskills createprovides, and requires explicitly prohibiting the agent from usingskills createin AGENTS.md to prevent silent local writes.The local-wins shadowing rule compounds this further: if a skill exists in both local and an external dir, the local copy takes precedence silently. Combined with the forced local write, there is no clean path to a vault-first workflow without bypassing the skills tooling entirely.
Feature Type
Configuration option
Scope
Small (single file, < 50 lines)
Contribution