Upload a skill
Creates a workspace-owned skill from caller-supplied content. The body may be either inline markdown (wrapped automatically as SKILL.md) or a multi-file pack of base64-encoded files that must include a SKILL.md at the root. The display name must be 3 to 60 characters of letters, digits, spaces, hyphens, or underscores and is used to derive the slug; an optional runtime profile (claude-sdk, hermes, or openai-agents; defaults to claude-sdk) and an optional capability slot may be set. Size limits apply (up to 50 files, 256 KiB total raw content, 64 KiB markdown, and a 1 MB request limit). Re-uploading with the same derived slug updates the existing skill in place. Returns the resulting slug and version with HTTP 201. Admin only; scoped to the caller’s own workspace.
Authorizations
Personal Access Token. Send as Authorization: Bearer hq_pat_....
Body
- Option 1
- Option 2
Inline markdown: server wraps it as SKILL.md in a single-file
tarball. Covers the "paste a paragraph or two" case.
markdown Display name (3–60 chars, alphanumeric + spaces/hyphens). Used to derive the slug.
One-line description shown on the Skills page.
Runtime profile this pack targets. Defaults to claude-sdk.
Capability slot this skill fills, e.g. app-design. When set (and
the skill is enabled), it supersedes the platform default that
provides the same capability for this workspace - the tenant's own
instructions replace ours. Brand tokens still flow via the
workspace preamble, independent of which design skill is active.