Skills
Skills are sticky overlays that inject instructions and optional MCP tool servers into agent sessions.
Mental model
A skill is a temporary overlay on a session. When activated, it injects instruction text into the session context and, optionally, launches an MCP tool server whose tools become available alongside native tools. When deactivated or when the session ends, the overlay is dropped.
Activation is sticky: once a skill is active, its instructions stay in context across multiple turns. The reader should think of a skill as a temporary mode the agent enters — not as a per-turn prompt template.
Why skills are sticky
Skills are sticky because most useful behaviors require more than one turn to play out: a code review touches multiple files, an onboarding assistant walks the user through a sequence, a research skill accumulates context. Per-turn prompt injection would force the user to repeat the activation command on every message. Sticky activation collapses that friction into a single decision.
Writing a SKILL.md
A skill lives on disk as a directory under workspace/skills/ with a required SKILL.md file. The YAML frontmatter declares metadata, optional tier override, and optional MCP server. The Markdown body is the instruction text injected into the session.
workspace/skills/my-skill/
├── SKILL.md # Required: instructions + metadata
├── scripts/ # Optional: helper scripts
├── templates/ # Optional: document templates
└── resources/ # Optional: reference files---
name: github-assistant
description: Work with GitHub via MCP
tier: coding
mcp:
command: npx -y @modelcontextprotocol/server-github
env:
GITHUB_PERSONAL_ACCESS_TOKEN: ${GITHUB_TOKEN}
startup_timeout: 30
idle_timeout: 10
---
Use the available MCP tools to work with GitHub.
Focus on the repositories the user asks about.
When creating issues or PRs, summarize first and ask for confirmation.name
Skill identifier. Lowercase, alphanumeric with hyphens. Must be unique across the workspace.
Required
description
Short description shown in the marketplace and /skills list.
Required
tier
Override the active tier when the skill is in effect (balanced, smart, coding, deep).
Optional
mcp
Declare an MCP server: command, env, startup_timeout, idle_timeout. Started on activation.
Optional
Activation lifecycle
A skill moves through four states.
- Installed — the directory exists on disk, metadata is parsed, skill is visible in the marketplace. Not affecting any session.
- Activating— a user, chat command, or the agent's
skill_managementtool triggered the skill. Frontmatter is parsed, tier is overridden if declared, MCP server (if any) is started and handshaked. - Active— instructions are in context, MCP tools are exposed. Subsequent turns see the skill's effect.
- Deactivated — the skill was dismissed or the session ended. The MCP server is stopped after its idle timeout. Instructions are removed from the next context build.
Activation can also be triggered from the Skills page in the dashboard or via the /skills chat command.
Installing and creating
Install skills from Settings → Skills Marketplace (or use /skills in chat to list and activate installed skills). Custom skills appear automatically when you add a directory under workspace/skills/ with a valid SKILL.md.
---
name: code-reviewer
description: Review code for bugs and style issues
---
Review the provided code for:
- Logic errors and edge cases
- Style violations
- Missing error handlingRecipe for the MCP pattern
Creating a skill that launches an MCP server is the common path. Step-by-step with token setup, activation, and verification lives in Cookbook → Connect GitHub via MCP.
What can go wrong
Common issues
- Skill not appearing. The marketplace only lists directories with a readable
SKILL.mdand valid YAML frontmatter. Checkworkspace/skills/<name>/SKILL.mdexists and parses. - Name conflict. Skill names must be unique. The marketplace rejects duplicates at load time.
- MCP server fails to start. See MCP Servers for the full lifecycle and the check/fix table.
What to do next
Related pages
User Guide
MCP Servers
How MCP servers are declared in skills, how the runtime manages their lifecycle, and how to debug handshake failures.
User Guide
Model Routing
How the model router turns abstract tier names into concrete model calls, and the priority order that resolves tier conflicts.
Cookbook
Connect GitHub via MCP
Create a skill that launches the GitHub MCP server, wire up authentication, activate, and verify with a test query.