What’s in a skill
A skill bundle has four parts:
When a skill is attached to a session, all four are made available to the agent as part of its working context.
SKILL.md format
The entry markdown is where you write the actual instructions. It uses YAML frontmatter to declare metadata, followed by the markdown content the agent reads.SKILL.md
Reference files
A skill can ship with files that get mounted into the sandbox alongside the markdown. These can be:- Code samples the agent can read or copy from
- Schemas (OpenAPI, JSON Schema, GraphQL)
- Diagrams (mermaid, ASCII)
- Configuration templates
MCP servers
Skills can declare Model Context Protocol servers that give the agent additional tools. Three transports are supported:
Example MCP configuration in a skill:
Required tooling
Skills can declare system or language tooling the sandbox needs to install at template build time. Tooling is resolved through mise, so any tool mise understands is available.Skill categories
Beyond the standard skill format (skill_v0), Runtime stores a few related directive types in the same system. Each represents a different way of extending agent context:
All of them share the same storage, attachment, and import system, and all live under the same
/api/agent-directives endpoints.
Editing and locking
There is no draft/publish cycle. Each(organization, type, name) has exactly one live row, and that row is the deployed state: editing it takes effect directly, and where the directive is baked into a template snapshot the edit queues a rebuild.
Locking is how a critical skill is protected: a locked directive still loads into sessions and template builds, but edits, deletion, resync, and attachment changes are blocked until an org admin unlocks it.
See the Skills API reference for the full surface.
Authoring skills from a repo
You can keep skill source in a Git repo and import it into Runtime:- Lay out the skill as a directory with
SKILL.mdand reference files - Push it to a GitHub repo Runtime has access to
- Use
POST /api/skills:importor Import to pull it in - Use
POST /api/skills/{id}/resyncto refresh from the repo when files change
Discovering skills in a repo
Runtime can scan a connected Git repo for skill candidates and surface them for import. Use Discover Skills to list every directory in the repo that looks like a skill (has aSKILL.md or matching frontmatter).
Attaching skills
Skills are attached to environments in two places:- Templates - admins attach skills to a template so every session created from it inherits them. See Templates.
- Sessions - skills can be attached to individual sessions for ad-hoc use without modifying the template.
Best practices
- One skill, one workflow. Don’t bundle unrelated guidance into a single skill; create separate skills and attach the ones that apply.
- Keep instructions actionable. Skills should describe how to do something concretely, with examples. Vague philosophy belongs in org instructions.
- Lock skills in production. A locked skill stays attached and rebuildable but cannot be edited until an admin unlocks it, so a runbook does not change under a live agent.
- Iterate from a repo. Authoring in markdown files in a Git repo and resyncing is faster than editing through the API.