Claude Code skills

Claude Code skills: how they work and the skills Nimbalyst ships

Nimbalyst is an open-source visual workspace that runs Claude Code and OpenAI Codex side by side, with pluggable agent harnesses. The desktop and iOS apps are MIT licensed.

Definition

What are Claude Code skills?

A Claude Code skill is a reusable agent capability stored as a folder. The folder contains a SKILL.md file and can also include scripts, examples, templates, or reference files.

The current Claude Code layout supports three locations:

  • Project skills: .claude/skills/<skill-name>/SKILL.md
  • User skills: ~/.claude/skills/<skill-name>/SKILL.md
  • Plugin skills: <plugin>/skills/<skill-name>/SKILL.md

SKILL.md is the contract. It tells Claude what the skill is for, when to use it, and what workflow to follow once loaded. A good skill defines three things: a trigger (the description Claude matches against), a workflow (what to read, run, and output), and any extra context (supporting files in the same folder).

Skills turn repeated prompt patterns into named, versioned workflows that live in a repo, can be reviewed in Git, and are reused across sessions.

Mechanism

How Claude Code skills work

Claude Code uses YAML frontmatter in SKILL.md as the configuration surface. The most important field is description, because Claude uses it to decide when to auto-load the skill.

A minimal skill looks like this:

---
name: release-notes
description: Draft release notes from merged pull requests. Use when the user asks for release notes, changelog copy, or a ship summary.
---

# Release Notes Skill

1. Read the recent merged PRs.
2. Group changes by user-visible impact.
3. Draft concise release notes.

When Claude Code encounters a relevant request, the flow is:

  1. Match the request against available skill descriptions.
  2. Load the matching SKILL.md.
  3. Pull in supporting files only when the instructions require them.
  4. Keep running as the same agent, with the skill instructions in context.

Skills can auto-load from their description, so you do not need to rely only on a manual slash invocation. Older custom command files under .claude/commands/*.md still work, but the modern skill layout is .claude/skills/<name>/SKILL.md, especially when the workflow needs supporting files.

Build your own

Building your own Claude Code skill

The shortest useful recipe:

  1. Create a folder at .claude/skills/<name>/.
  2. Add a SKILL.md file with YAML frontmatter.
  3. Write a precise description so Claude knows when to use the skill.
  4. Add the workflow steps in the body.
  5. Drop examples or scripts into the same folder when the workflow needs more context.
  6. Test on a real task and tighten the instructions where Claude improvises badly.

If the workflow is one short markdown file, a command under .claude/commands/ may still be enough. When the workflow needs reference files, templates, or a reusable package of context, prefer a skill folder.

Inside Nimbalyst, project .claude/skills, user ~/.claude/skills, project .claude/commands, and extension-provided workflows all feed a shared workflow registry, so the same workspace can expose Claude-compatible workflows to Claude Code sessions and export generated skills for Codex sessions when needed.

Comparison

Subagents vs skills

Skills, commands, and subagents are three separate Claude Code primitives. They get mixed up constantly.

Skills

Reusable capabilities defined by a folder and a SKILL.md file. Best for workflows you want Claude to learn and reuse. Live in .claude/skills/.

Commands

Slash-triggered markdown files, usually one file each. Live in .claude/commands/. Still supported and common in older repos.

Subagents

Fresh agent instances with their own context window, tool permissions, and instructions. Live in .claude/agents/. A parent agent can dispatch several in parallel.

A skill extends what one agent knows how to do. A subagent creates another agent to do part of the work. A command is a slash-triggered workflow file, usually without the richer folder structure of a skill. The two systems cooperate: a skill can instruct Claude to fork a context, and a subagent can preload one or more skills.

FAQ

Frequently asked questions

What is a Claude Code skill?

A Claude Code skill is a reusable folder with a SKILL.md file plus any supporting files the workflow needs. Claude can auto-load the skill when a request matches its description, or you can invoke it directly from slash command typeahead.

Where do Claude Code skills live?

Project skills live in .claude/skills/<name>/SKILL.md. User skills live in ~/.claude/skills/<name>/SKILL.md. Plugin-bundled skills live in a plugin's skills/<name>/SKILL.md directory.

What is inside SKILL.md?

SKILL.md contains YAML frontmatter plus a markdown body. The frontmatter defines the skill metadata, especially the description that Claude uses for matching. The body contains the workflow, examples, and references.

How does Claude Code load a skill?

Claude matches the request against available skill descriptions, loads the relevant SKILL.md, then reads supporting files only if the instructions call for them. The same agent keeps running with that skill in context.

Are .claude/commands obsolete?

No. Command files still work and many repos still rely on them. The skill folder layout is better when you want a richer package with supporting files instead of a single markdown command.

How are Claude Code skills different from subagents?

Skills extend one agent's capabilities. Subagents create fresh agent instances with their own context window, tool permissions, and instructions. Skills live under .claude/skills/. Subagents live under .claude/agents/.

Does Nimbalyst support both Claude Code and Codex?

Yes. Nimbalyst is an open-source visual workspace that runs Claude Code and OpenAI Codex side by side, with pluggable agent harnesses.

Is Nimbalyst open source?

Yes. The desktop and iOS apps are MIT licensed.

Which folder-based Claude Code skills does Nimbalyst ship today?

The current open-source repo includes mockuplm, excalidraw, datamodellm, planning, git-commit, feedback-intake, and extension-development as folder-based skills.

What is the best example of a visual Claude Code skill in Nimbalyst?

MockupLM, Excalidraw, and DataModelLM are the strongest examples because the skill output opens in a dedicated visual editor instead of staying as raw text in the transcript.

Run Claude Code skills in a visual workspace