Create a skill and immutable version
Creates a skill from a SKILL.md document and returns it. The document’s frontmatter supplies the skill’s name and description, which are validated against the Agent Skills standard: the name must be lowercase letters, digits, and single hyphens, and a description is required because it is the only signal the model has when deciding whether to use the skill. Send a multipart/form-data body with a bundle part instead to upload a zipped skill directory, whose scripts/ and references/ are mounted into the sandbox for sessions that attach it.
Authorizations
A Recursion API key, created in the console under API keys.
Body
Request body for creating or updating a skill. The document is the source of truth: the skill's name and description come from its frontmatter. Publishing a new version of an existing skill goes through createSkillVersion, which mints one rather than editing the last.
The complete SKILL.md: YAML frontmatter delimited by --- on the very first line, then Markdown instructions. name and description are required in the frontmatter and are read from it.
Human-readable title for listings. Defaults to the frontmatter name.
Relative paths of files bundled with the skill, listed to the model when it activates the skill. Paths must stay inside the skill directory.
Caller-owned key/value data stored with the skill and returned unchanged.
Catalog group to file this skill under. Send an empty string to remove it from its group; omit to leave the group unchanged. Grouping is for browsing and bulk attachment only and is never disclosed to the model.
Response
A reusable procedure an agent loads when it judges the procedure relevant. Its name and description are disclosed in every turn; the instructions enter the conversation only when the agent activates it. Updating a skill mints a new immutable SkillVersion.
A reusable procedure an agent loads when it judges the procedure relevant. Its name and description are disclosed in every turn; the instructions enter the conversation only when the agent activates it. Updating a skill mints a new immutable SkillVersion.
Server-assigned RFC 3339 timestamp of when the skill was created.
When to use this skill. Disclosed to the model in every turn, so it is the whole routing signal: write it as the condition under which the skill applies.
The skill's addressable name, lowercase with single hyphens, e.g. cut-release. This is what an agent passes to the activation tool.
Organization that owns the skill. Server-assigned from the caller's credentials; a value sent in a request body is ignored.
Server-assigned id of the skill, used in the skill and skill-version routes.
Where the skill came from: platform, organization, or repository. Decides which skill wins a name collision, most specific first.
Server-assigned RFC 3339 timestamp of the most recent update to the skill.
Human-readable title shown wherever skills are listed. Defaults to the name.
Length in characters of the newest version's instructions, the body disclosed to the model when it activates the skill. Zero for a skill with no version yet. Instructions are truncated at 64000 characters when a session assembles them.
Server-maintained id of the newest version of this skill; agents that attach it without pinning a version use this one.
How many versions this skill has, which is also the number of the newest one, since versions are numbered from 1 in creation order. Zero for a skill with no version yet.
Caller-owned key/value data stored with the skill and returned unchanged.
Catalog group this skill is filed under, if any. Grouping is for browsing and for attaching a set of skills to an agent in one entry; it is never disclosed to the model and does not scope the skill's name.