Skills Guide

Skills are reusable local workflows. A skill is rooted at a SKILL.md file and describes a repeatable task pattern that an agent can load when needed.

What a Skill Is

A skill typically contains:

Skills are not automatically active. The runtime exposes a catalog of available skills, and the agent opens the relevant SKILL.md only when a matching task appears.

Location

Repository-local skills commonly live under:

.codex/skills/<skill-name>/SKILL.md
skills/<skill-name>/SKILL.md

Example skills in this repository include:

How Agents Use Skills

  1. The runtime exposes a skills catalog with name, description, and path
  2. The agent chooses a skill only if it matches the current task
  3. The agent reads the skill's SKILL.md
  4. The agent follows the workflow with normal tool calls

This keeps skills explicit and avoids loading irrelevant guidance.

Managing skills with the CLI

Holon separates skill management into two layers:

Skill Library (global)

The Skill Library is your local catalog of skills. Manage it with:

List the library catalog

holon skills catalog

Shows all skills registered in the local Skill Library.

Add a skill to the library

# Add from a local directory or SKILL.md file
holon skills add /path/to/skill-dir

# Add from a remote source
holon skills add https://github.com/user/repo/tree/main/skills/my-skill --remote

# Copy the skill into the user directory instead of referencing it
holon skills add /path/to/skill --copy

Remove a skill from the library

holon skills remove my-skill

Check library consistency

# Check all library entries against .skill-lock.json
holon skills check

# Check a specific skill
holon skills check my-skill

Note: Installing an already-installed global skill is idempotent — holon skills add skips the install and reports the existing entry without error. This is safe to repeat in scripts and automation.

Reconcile library with lock file

# Reconcile all library entries
holon skills reconcile

# Reconcile a specific skill
holon skills reconcile my-skill

Update skills from remote sources

holon skills update

Fetches remote skill sources and compares against the lock file (.skill-lock.json). Skills that have changed upstream are downloaded and updated. The update preserves the npx skills v3 lock format (source, subdir, mode, etag) for interoperability.

Agent Skills (per-agent)

Once a skill is in the library, enable it for a specific agent:

List enabled skills for an agent

# List for the default agent
holon skills list

# List for a specific agent
holon skills list --agent reviewer

Shows all skills currently enabled for the agent, including their name, scope (agent, workspace, or user), and source.

Enable a skill for an agent

# Enable for the default agent
holon skills enable my-skill

# Enable for a specific agent
holon skills enable my-skill --agent reviewer

# Enable and copy into the agent home
holon skills enable my-skill --copy

Disable a skill for an agent

# Disable for the default agent
holon skills disable my-skill

# Disable for a specific agent
holon skills disable my-skill --agent reviewer

Compatibility aliases: holon skills install and holon skills uninstall are still accepted but map to the new add/enable and remove/disable model. Prefer the new commands for clarity.

Skill uses shorthand

When adding a GitHub-hosted skill, you can use the uses shorthand syntax instead of the repository URL:

# Full URL form
holon skills add https://github.com/holon-run/holon/tree/main/skills/ghx --remote

# uses shorthand — same result
holon skills add holon-run/holon/skills/ghx@main

The uses form (owner/repo/path@ref) is normalized to the full GitHub URL internally. It also accepts owner/repo/path#ref as a compatible input.

Skill source types

SourceFlagExample
Local path(default)holon skills add ./skills/my-skill
Remote URL--remoteholon skills add https://... --remote

Command summary

LayerCommandPurpose
Libraryholon skills catalogList library catalog
Libraryholon skills updateFetch and update skills from remote sources
Libraryholon skills refreshRefresh runtime catalog by rescanning local roots
Libraryholon skills add <source>Add a skill to the library
Libraryholon skills remove <name>Remove from the library
Libraryholon skills check [name]Check lock-file consistency
Libraryholon skills reconcile [name]Reconcile with lock file
Agentholon skills list [--agent]List enabled skills
Agentholon skills enable <name>Enable for an agent
Agentholon skills disable <name>Disable for an agent

Note: The --builtin flag and kind = "builtin" in template manifests have been removed in v0.26.0. Official Holon skills are referenced the same way as any other GitHub-hosted skill.

Managing skills via HTTP

The HTTP control plane separates library and agent operations:

Library endpoints

MethodPathPurpose
GET/api/skills/catalogList library catalog
GET/api/skills/catalog/{skill_id}Get skill detail
POST/api/skills/catalog/addAdd a skill to the library
POST/api/skills/catalog/refreshRefresh runtime catalog
POST/api/skills/catalog/removeRemove from the library
POST/api/skills/catalog/reconcileReconcile with lock file
POST/api/skills/catalog/checkCheck consistency
POST/api/skills/_updateUpdate skills from remote sources

Agent endpoints

MethodPathPurpose
GET/agents/:agent_id/skillsList agent skills
POST/control/agents/:agent_id/skills/enableEnable for agent
POST/control/agents/:agent_id/skills/disableDisable for agent

Deprecated: POST /api/control/agents/:agent_id/skills/install and POST /api/control/agents/:agent_id/skills/uninstall remain for compatibility but are superseded by enable/disable and add/remove.

Non-blocking install jobs

When a skill is installed through the HTTP API (e.g., from the Web GUI), the install runs as a background job instead of blocking the request. Job progress is available at GET /api/jobs/{job_id} and persists across page reloads via localStorage.

TUI integration

The Terminal UI provides skill management alongside the CLI:

These TUI features let you manage skills without leaving the interactive session.

Writing a Good Skill

Keep skills:

Good skill topics:

Poor skill topics:

Relationship to AGENTS.md

Use:

These are different layers:

SurfacePurpose
AGENTS.mdStanding instructions and boundaries
SKILL.mdReusable workflow for a type of task
Work itemCurrent objective and progress

See Also