Skill format
Kheish loads skills from disk into a daemon-wide catalog at startup. A skill is a directory centered aroundSKILL.md, with optional runtime metadata under agents/kheish.yaml.
Directory layout
The minimal layout is:Discovery roots
The daemon discovers skills from:- explicit roots passed through daemon configuration such as
--skill-root - repository roots under
skills/ - compatibility roots under
.claude/skillsand legacy.agents/skills - user roots under
~/skills - compatibility user roots under
~/.claude/skillsand legacy~/.agents/skills
SKILL.md
SKILL.md contains the reusable instruction body. It can start with YAML frontmatter.
Supported frontmatter fields are:
namedescriptionversionwhen_to_usewhen-to-use
name is omitted, Kheish derives one from the relative directory path under the discovered skill root, using : as the namespace separator.
If description is omitted from frontmatter, Kheish derives it from the first prose paragraph in SKILL.md. A skill still needs a non-empty description one way or the other.
agents/kheish.yaml
agents/kheish.yaml provides runtime metadata for the skill.
Supported fields are:
allowed_toolsblocked_toolscontextagent_profileprovidermodelfallback_model
providershould be one configured route identifier such asopenai,anthropic, oropenroutermodelandfallback_modelshould be backend model names for that route
provider plus raw model values in agents/kheish.yaml.
The current context values are:
inlinefork
inline when the skill should activate inside the current session and persist as session-scoped active skill state. Use fork when the skill should execute through an isolated child-agent path.
Precedence and conflicts
Skills are keyed by their resolved name. When duplicate names exist across roots, the first higher-precedence root wins and lower-precedence duplicates are ignored with loader warnings. In practice, precedence is:- explicit skill roots in daemon configuration order
- repository-local roots nearest the workspace root first
- within one ancestor, canonical
skills/before compatibility roots - user-level roots
Operational notes
- Skills are loaded when the daemon starts.
- The HTTP skill endpoints are inspection-only.
- Runtime activation happens through
list_skillsanduse_skill. - Inline activations are session-scoped. Fork activations run through a child-agent execution path.
