# Skills Implementations Per-product implementation details for Agent Skills support. ## Claude Products ### Claude Code The origin of the `.claude/skills` convention. **Storage Paths:** | Scope | Path | | ----- | ---- | | Personal | `~/.claude/skills/` | | Project | `.claude/skills/` | | Plugin | Bundled with installed plugins | **Precedence:** Not officially documented. Skills are "automatically discovered" from all sources. **Special Features:** - `allowed-tools` frontmatter to restrict tool access (Claude Code only, not SDK/API) - Skills are model-invoked (vs user-invoked slash commands) **SDK Note:** By default, the SDK does not load skills from filesystem. Must explicitly set `settingSources: ['user', 'project']`. **Reference:** [Claude Code Skills Docs](https://code.claude.com/docs/en/skills) --- ### Claude (claude.ai) **Storage:** - Custom skills uploaded as **zip files** via Settings - Per-user (not admin-managed) - Does not sync to API or other surfaces **Pre-built Skills:** - Document actions (automatic activation) **Reference:** [Claude Skills Docs](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) --- ### Claude API **Storage:** - Pre-built skills referenced by stable IDs (`pptx`, `xlsx`, `docx`, `pdf`) - Custom skills uploaded via Skills API endpoints - Stored **org-wide** (separate from claude.ai uploads) **Integration:** - Reference `skill_id` in code execution container **Reference:** [Claude API Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) --- ## GitHub Copilot **Storage Paths:** | Scope | Path | | ----- | ---- | | Primary | `./.github/skills//SKILL.md` | | Compatibility | `./.claude/skills/` | **Notes:** - Currently repo-level only - Org/enterprise-level skills "coming soon" - `SKILL.md` injected into agent context when used --- ## VS Code (Copilot) **Storage Paths:** | Scope | Path | | ----- | ---- | | Recommended | `./.github/skills/` | | Legacy | `./.claude/skills/` | **Availability:** - Preview in **VS Code Insiders** - Enable via `chat.useAgentSkills` setting **Reference:** [VS Code Agent Skills](https://code.visualstudio.com/docs/copilot/customization/agent-skills) --- ## OpenAI Codex **Storage Paths (with precedence, highest overrides lowest):** | Priority | Scope | Path | Use Case | | -------- | ----- | ---- | -------- | | 1 (highest) | Repo (CWD) | `$CWD/.codex/skills` | Skills for specific folder/microservice | | 2 | Repo (parent) | `$CWD/../.codex/skills` | Shared skills in parent folder | | 3 | Repo (root) | `$REPO_ROOT/.codex/skills` | Repository-wide skills | | 4 | User | `$CODEX_HOME/skills` (`~/.codex/skills`) | Personal skills across all repos | | 5 | Admin | `/etc/codex/skills` | SDK scripts, automation, admin defaults | | 6 (lowest) | System | Bundled with Codex | Built-in skills (`$plan`, `$skill-creator`) | **Note:** Skills with the same name are overwritten by higher-precedence scopes. **Built-in skills:** `$plan`, `$skill-creator`, `$skill-installer` **Reference:** [Codex Skills](https://developers.openai.com/codex/skills/) --- ## Cursor **Storage:** - File-based and repo-trackable - Can install via GitHub repository links - Exact default paths not publicly documented **Availability:** - Agent Skills only on **Nightly** update channel - Enable via Settings > Rules > Import Settings > Agent Skills - Switch channel: Cursor Settings (`Cmd+Shift+J`/`Ctrl+Shift+J`) > Beta > Nightly **Constraints:** - Skills are agent-decided only — cannot be configured as "always apply" or manually invoked **Reference:** [Cursor Skills Docs](https://cursor.com/docs/context/skills) --- ## Amp **Storage Paths:** | Scope | Path | | ----- | ---- | | Workspace (default) | `.agents/skills/` | | User-level | `~/.config/amp/skills/` (per manual) | | User-level (alt) | `~/.config/agents/skills/` (per announcement) | | Compatibility | `.claude/skills/`, `~/.claude/skills/` | **Note:** Official docs have conflicting user paths — manual says `~/.config/amp/skills/`, announcement says `~/.config/agents/skills/`. **Behavior:** - Skills are lazy-loaded instructions (on-demand) **Reference:** [Amp Owner's Manual](https://ampcode.com/manual#agent-skills) --- ## Letta (Letta Code) **Storage Path:** - Project root: `.skills/` - Custom location: `letta --skills ~/my-global-skills` - Each skill is a subdirectory with `SKILL.md`, optional `references/`, `scripts/`, `examples/`, `assets/` **Internal Persistence (Two Memory Blocks):** - **`skills` block** (always visible, read-only): List of available skills with names + descriptions - **`loaded_skills` block** (session, read-only): Full content of currently loaded skills **Token Optimization:** - Only loaded skills consume context tokens - Can have 50 available skills but only 2 loaded **Special Commands:** - `/skill` — Extract a new reusable skill from recent work (agent reflects on recent messages) **Reference:** [Letta Code Skills Docs](https://docs.letta.com/letta-code/skills) --- ## Goose **Storage Paths (with precedence, highest first):** | Priority | Path | | -------- | ---- | | 1 (highest) | `./.goose/skills/` | | 2 | `./.claude/skills/` | | 3 | `~/.config/goose/skills/` | | 4 (lowest) | `~/.claude/skills/` | **Compatibility:** - Explicitly supports "Claude Desktop" skill sharing - Treats `.claude/skills/` as compatibility layer --- ## OpenCode **Important:** Skills are NOT native to OpenCode. Requires the third-party **`opencode-skills`** community plugin. **Installation:** ```json { "plugin": ["opencode-skills"] } ``` Requires OpenCode SDK ≥ 1.0.126. **Storage Paths (precedence, highest first):** | Priority | Scope | Path | | -------- | ----- | ---- | | 1 (highest) | Project | `.opencode/skills/` | | 2 | Custom | `$OPENCODE_CONFIG_DIR/skills/` | | 3 | Global | `~/.opencode/skills/` | | 4 (lowest) | XDG | `~/.config/opencode/skills/` | **Integration:** - Plugin discovers skills at startup (cached, no hot reload) - Skills registered as dynamic tools: `skills_{name}` (hyphens → underscores) - Example: `brand-guidelines/` → `skills_brand_guidelines` **Operational Notes:** - Adding/modifying skills requires restarting OpenCode - Duplicate skill names: project version takes precedence (with warning) **References:** - [opencode-skills Plugin](https://github.com/malhashemi/opencode-skills) - [Superpowers for OpenCode](https://blog.fsck.com/2025/11/24/Superpowers-for-OpenCode/)