Skip to content

[Feature]: skills create / skills edit should support writing to a configurable target directory #4381

@LevSky22

Description

@LevSky22

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:

  1. 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.

  2. 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

  • I'd like to implement this myself and submit a PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havetool/skillsSkills system (list, view, manage)type/featureNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions