/precheck, /discipline, plus 16 topical context packs), and authenticated users can author and publish their own.
There are two layers:
Built-in skills
The CLI ships built-in skills directly. Insidesf agent, type /<trigger> to run one. List them via the public API:
User skills — full schema
A user skill row contains:Authentication
Every endpoint below exceptGET /api/public/skills* and GET /api/skills requires Authorization: Bearer sf_live_xxx. Mutating endpoints additionally enforce ownership: only the row’s userId can update, delete, fork (their own), or publish it.
CRUD endpoints
Create a skill
name, trigger, description, prompt. Returns 201 with the new row.
List your skills
Get one skill
404 if not found or not owned by the caller.
Update a skill
name, trigger, description, prompt, category, tags, toolsUsed, estimatedTime, auto, version.
404 when the row doesn’t exist or isn’t owned by the caller. Server stamps updatedAt.
Delete a skill
{ deleted: true, id }. Hard delete. 404 if not found.
Fork a public skill
name (with ” (fork)” suffix), trigger, description, prompt, category, tags, toolsUsed, estimatedTime, and sets forkedFromId to the original. forkCount on the original is atomically incremented.
201 with the new row. 404 if the source skill isn’t public or doesn’t exist.
Publish / unpublish
isPublic = true and pins a public slug:
^[a-z0-9-]{3,60}$. Unique across all published skills.
Successful publish returns
{ published: true, slug, skill }. The skill is then live at simplefunctions.dev/skills/{slug} and discoverable via GET /api/public/skills.
Unpublish flips isPublic = false and returns { unpublished: true }. The slug is kept so future publishes can reuse it.
Public catalog
/api/public/skills returns up to 100 published skills, optionally filtered:
/api/public/skill/{slug} returns the full row including prompt text. Both endpoints are no-auth, Cache-Control: public, s-maxage=300.
Discovering skills from MCP
These tools are also available over MCP — see MCP tools reference:create_skill,list_skills,run_skill,publish_skill,fork_skill— authenticated.browse_public_skills— public.
run_skill returns the skill’s prompt and metadata; execution happens in the calling agent (Claude Code, Cursor, sf agent, etc.) — the SimpleFunctions server does not run the prompt itself.
See also
MCP tools reference
create_skill, fork_skill, publish_skill, full schemas.Build agents
How skills compose with the SimpleFunctions agent loop.
Agentic CLI
Built-in skills are bundled here;
sf agent recognizes their slash commands.Browse public skills
Live catalog on the website.