skills array, or load them from a GitHub repository mounted on the session. Attached skills come in two types. All skills work the same way: your agent invokes them automatically when they are relevant to the task.
- Pre-built OMA skills: Common document tasks such as PowerPoint, Excel, Word, and PDF handling (
pptx,xlsx,docx,pdf). - Custom skills: Skills you author and upload to your workspace.
Managed Agents API requests require the
managed-agents-2026-04-01 beta header, except memory store endpoints, which use agent-memory-2026-07-22 instead. The SDK sets the correct beta header automatically. See Beta headers.Create a custom skill
A custom skill is a directory containing aSKILL.md file plus any supporting files, uploaded to your workspace as a zip archive or as individual files. Creating the skill returns the skill_* ID you reference when attaching it to an agent. OMA pre-built skills are already available in every workspace and don’t require this step. To use only pre-built skills, skip to Attach skills to an agent.
When you call the Skills API directly with cURL, pass the anthropic-beta: skills-2025-10-02 header explicitly. The CLI and SDKs send it automatically.
These examples omit the optional display_title field, so the skill’s title is derived from SKILL.md. An explicitly passed display_title must be unique among the custom skills in your workspace.
Attach skills to an agent
Attach skills when creating an agent. Each session supports up to 500 skills, counted as the deduplicated set across every agent in the session (see Multiagent orchestration).Mounting more skills increases the time it takes for the session’s sandbox to start. Attach only the skills each agent needs for its task.
skills array uses the following fields:
Load skills from a GitHub repository
Skills can also live in your codebase. When a session mounts a repository through thegithub_repository resource, the repository’s root .claude/skills directory is scanned at session start, and each skill found there becomes available to the agent. No upload and no entry in the agent’s skills array are required. The agent sees each discovered skill’s name, description, and path in the sandbox, and reads the skill’s SKILL.md when a task matches, including any scripts and resources the skill ships. Discovery relies on the agent’s read tool from the agent toolset, which is enabled by default; an agent with read disabled doesn’t load repository skills.
Repository skill discovery runs in cloud sandboxes. Self-hosted sandboxes don’t support GitHub repository resources.
.claude/skills/<skill-name>/SKILL.md, one directory level deep at the repository root:
-
your-repo/-
.claude/-
skills/-
code-review/SKILL.md
-
release-process/SKILL.mdscripts/run_checks.sh
-
-
-
src/
-
.claude/skills/SKILL.md: aSKILL.mdwith no skill directory around it.claude/skills/tools/code-review/SKILL.md: nested more than one directory level deepskills/code-review/SKILL.md: askillsdirectory outside.claude
.claude/skills directory elsewhere in the repository, such as inside a package subdirectory, isn’t announced at session start; those skills can still surface when the agent reads files under that subtree.
Repository skills use the same SKILL.md format as the custom skills you upload. For the format and authoring guidance, see Agent Skills and Skill authoring best practices.
To load skills from a repository, create a session that mounts it. This is the same request shown in Accessing GitHub; mount_path is optional and defaults to /workspace/<repo-name>:
authorization_token must have access to the repository. This is the same personal access token flow used for any repository mount; see Accessing GitHub.
Discovered skills follow the checked-out state of the repository: the checkout branch or commit when the resource sets one, otherwise the repository’s default branch. The scan runs once, when the session starts. Commits pushed mid-session are not picked up; to load updated skills, start a new session.
Repository skills work alongside skills attached through the agent’s skills array. If a repository skill shares a name with an attached skill, or with a skill from another mounted repository, both are available; each is announced with its own path.
Next steps
Cloud environment setup
Customize cloud sandboxes for your sessions.
Using Agent Skills with the API
Learn how to use Agent Skills to extend agent capabilities through the API.
Files API
Upload files once and reference them across API requests.
Get started with Agent Skills in the API
Learn how to use Agent Skills to create documents with the OMA API in under 10 minutes.