Skip to main content
A skill is a written procedure the agent loads when the task matches its description. It is a folder: a markdown body plus optional reference files. See Skills for the concept. A skill an app installed belongs to that app. It reads like any other, and every write is refused. Reconfigure the app to change it, or create a skill of your own next to it.

list_skills

string
required
Returns each skill with its slug, name, description and the list of reference files it carries. A skill installed by an app also carries connector, the slug of the service that owns it, and readOnly: true.

get_skill

Reads one skill in full: its body, plus every reference file it carries with its size in bytes. The content of those files is not included, since a skill can bundle a corpus: read one with read_skill_file when the body points at it.
string
required
string
required
Response
A skill installed by an app also carries connector and readOnly: true.

read_skill_file

Reads one 100,000-character page of a reference file bundled with a skill. One file per call.
string
required
string
required
string
required
Path inside the skill folder, as returned by get_skill, e.g. references/format.md.
integer
Character offset to start at. Omit it for the first page, then pass the returned nextOffset to continue.
Returns { slug, path, content, offset, nextOffset, totalChars, truncated }. truncated is true and nextOffset is non-null when another page remains. SKILL.md is not readable this way: it is the body get_skill already returns. Reach for it before rewriting a reference file, since upsert_skill replaces a file whole.

upsert_skill

Creates a skill, or replaces the one with the same name.
string
required
string
required
The skill name. The slug is derived from it.
string
required
The procedure, in markdown.
string
What makes the agent decide to load this skill, so state when to use it. This is the only line the agent sees before opening the skill.
string
The existing skill to update, when the name is changing too. Without it, a new name creates a second skill.
object[]
Reference documents the body can point to, which keeps the body short. Each entry needs path and content, and is written whole. Files already on the skill and not listed again are kept.
string[]
Reference files to delete, e.g. ["references/old.md"]. A path cannot be in both files and removeFiles.
Request arguments
The whole skill is written in one atomic swap. If the call fails, nothing changed. removeFiles is applied after that swap, so a deletion that fails leaves the file in place rather than the skill half-written. A skill an app installed is refused, whether you name its slug or pass a name that lands on it. The error names the app that owns it. An imported skill can carry up to 200 reference files. Each text file can be up to 10 MB, and the complete skill can be up to 50 MB including SKILL.md. Editing an existing reference file is a round trip: get_skill to see what the skill carries, read_skill_file to get the current content, then upsert_skill with the new content for that path.

delete_skill

Deletes a skill and its reference files. A skill an app installed is refused: detach that app to remove its skill.
string
required
string
required
boolean
required
Must be true.