Skip to content

Skills

Skills teach agents how to use your tools. You declare them under skills in the capabilities file, then run capa install (or capa add) so capa materializes skill folders for each provider.

TypeWhat you provide
inlinedef.content — SKILL.md body in the file
remotedef.url to a SKILL.md
github / gitlabdef.repo with @ or :: grammar
localdef.path to a directory that contains SKILL.md (re-read each install)
installedAlready present elsewhere; capa only records it for tool binding (edit YAML directly)
pluginSkill shipped by a configured plugin; capa does not fetch it again
Terminal window
# GitHub search by basename
capa add owner/repo@skill-name
# Exact path
capa add owner/repo::skills/path/to/skill-name
# GitLab (prefix)
capa add gitlab:group/repo@skill-name
# Pin tag/branch or commit
capa add owner/repo@skill:v1.2.0
capa add owner/repo::skills/x/y#abc1234
# Remote URL or local directory
capa add https://example.com/path/to/SKILL.md
capa add ./path/to/skill
# Registry
capa add skills-sh:vercel-labs/skills/find-skills
FormResolution
owner/repo@basenameRecursive search for a directory whose basename matches (must contain SKILL.md). Basename has no slashes.
owner/repo::exact/pathExact path from the repo root to the skill directory

Pinning works on both: :tag / :branch or #sha.

skills:
- id: find-skills
type: github
def:
repo: vercel-labs/skills@find-skills
requires:
- '@brave.search'
- id: team-review
type: github
def:
repo: acme/agent-kit::skills/code-review:v1.0.0
requires:
- '@gitlab.list_merge_requests'

List the tools the skill needs. MCP tools use @server.tool; command tools use the plain tool id.

def:
requires:
- '@brave.search'
- deploy_service

Under on-demand tool exposure, skills without requires get no tools activated. Prefer setting requires on every skill you care about.