Short answer
Share Claude skills in one of three ways: commit them to Git in the repo's .claude/skills/ folder, ship them as a Claude Code plugin, or install a pinned version from a registry such as AIPM. On Claude Team and Enterprise plans you can also share, publish, or provision skills in the Claude app so they sync to Claude Code. The table shows which option fits one repo, many repos, or a pinned version.
| Option | Works in | Scope | How updates reach people | Version pinning | Plan needed |
|---|---|---|---|---|---|
Commit .claude/skills/ | Claude Code, including cloud sessions; Cursor also reads the folder | One repo | git pull | A Git commit or tag | Any Claude Code setup |
| Plugin in a team marketplace | Claude Code (repo-declared plugins don't load in cloud sessions) | Many repos | claude plugin update, or auto-update if it's on for that marketplace | Manifest version, or a source ref and sha | Any Claude Code setup |
| Claude app: share, publish or provision | Claude app chat and Cowork; Claude Code v2.1.273+ signed in with the same account | People, groups (Enterprise) or the whole org | Shared: at next use. Published: when a new version is approved | Published items stay on the approved version | Team or Enterprise |
| Managed settings | Claude Code on every managed machine | The whole fleet | Admin changes the policy | Admin-controlled | Admin access to managed settings |
| Package registry (AIPM) | Claude Code (--target claude) and Codex (--target codex); Cursor reads both folders | Many repos, public or private org packages | aipm update, then commit | Exact version, such as @1.2.0 | An AIPM org namespace for private packages |
Words used in this guide
- AIPM: a tool that installs and updates reusable AI instructions.
- Package: a named group of files that people can install and update together.
- Repository or repo: a project folder whose changes are saved and tracked.
- Git: a tool that records file changes so people can review or undo them.
- MCP: a standard way for an AI tool to connect to other tools and information.
- CLI: a tool that you use by typing commands in a terminal.
What this means
Option 1: Commit skills to the repo (.claude/skills/)
Save each skill as .claude/skills/<name>/SKILL.md in the repository and commit it. Everyone who clones the repo gets the skill, and Claude Code cloud sessions load the committed .claude/skills/ too. Cursor also reads .claude/skills/, so the same folder serves teammates who use Cursor. Every folder Claude reads skills from, and which sessions load each one, is in where Claude skills are stored.
- Before you share, check the frontmatter:
nameanddescriptionare required by the Agent Skills spec, Cursor and Codex. See the SKILL.md frontmatter reference. - Updates arrive with
git pull, and Git history is your version record: review skill changes in pull requests like code. - The catch is one copy per repo. Ten repos means ten copies that drift apart unless someone syncs them.
- Personal skills in
~/.claude/skills/are not shared: they stay on your machine and don't load in Cowork or cloud sessions.
mkdir -p .claude/skills/code-review
# write .claude/skills/code-review/SKILL.md, then:
git add .claude/skills/code-review
git commit -m "Add code-review skill"Option 2: A Claude Code plugin in a team marketplace
Put the skills in a plugin's skills/ folder, list the plugin in a .claude-plugin/marketplace.json catalog, and host it in a Git repository. Teammates add the marketplace once with /plugin marketplace add your-org/your-marketplace and install from it. Plugin skills are namespaced, so they run as /plugin-name:skill-name. A plugin can also bundle hooks, subagents and MCP servers; skills vs MCP vs subagents vs hooks explains when each is the right tool. Background: Claude Code plugins vs skills and Claude skills marketplaces.
To have a repository ask its contributors for the plugin, commit extraKnownMarketplaces and enabledPlugins in the repo's .claude/settings.json:
- The marketplace registers only after the contributor accepts the workspace trust dialog for the folder. In an untrusted folder the entries are ignored without a message.
- A plugin listed by a relative path inside the marketplace loads once those entries apply. A plugin whose entry points at an external source, such as its own GitHub repo, does not install from repo settings alone: each teammate sees
Plugin "<name>" is enabled in project settings but isn't installeduntil they run the install command above. - Install scopes: user (
~/.claude/settings.json, every project on your machine), project (.claude/settings.json, everyone in the repo) and local (.claude/settings.local.json, just you in this repo). - Private marketplace repos: each user needs Git read access, and the clone uses their stored Git credentials. On GitHub Actions, export a token with read access as
GH_TOKENand rungh auth setup-git. - In
-pand CI runs, plugins install in the background and can miss the first turn. SetCLAUDE_CODE_SYNC_PLUGIN_INSTALL=1to wait for them. - Plugins declared in the repo's
.claude/settings.json, or enabled only in user settings, don't load in cloud sessions. Commit the skills themselves if cloud sessions need them.
.claude/settings.json
{
"extraKnownMarketplaces": {
"your-marketplace": {
"source": { "source": "github", "repo": "your-org/your-marketplace" }
}
},
"enabledPlugins": {
"code-review@your-marketplace": true
}
}Each teammate, when the plugin's marketplace entry points at an external source
claude plugin install code-review@your-marketplace --scope projectOption 3: Share skills in the Claude app (Team and Enterprise)
On Claude Team and Enterprise plans there are four ways to hand a skill to colleagues, all documented in the Claude Help Center. Menu labels can differ slightly between articles.
Anthropic's Agent Skills platform overview still says claude.ai skills are individual-only and each team member must upload them. The Help Center articles above document sharing, publishing and provisioning, so use them as the reference.
- Skill sharing is on by default for Team plans and for Enterprise plans that haven't set a skills preference. Share with organization and Share with groups are off by default.
- Publishing policy is Requires review, Open or Off. Team plans start Open (Off if Share with organization was already off); Enterprise starts Off (Open if Share with organization was already on). If no setting is chosen, it switches to Requires review on October 2, 2026.
- Shared access is removed automatically when a recipient leaves the organization. A published item stays in the library if its author leaves.
- Enterprise plans can target groups by bundling skills into a plugin and assigning it to a group.
- Skills need code execution. If an owner turns code execution off, skills are unavailable.
- On Enterprise plans with skill scanning on, Anthropic checks each uploaded or edited third-party skill before it can run; most scans finish in about one to two minutes.
| Method | Who can do it | Where | What recipients get | Updates |
|---|---|---|---|---|
| Share with people | Any user, if Skill sharing is on | Customize > Skills > … > Share | View-only; greyed out until they enable it | Automatically at next use |
| Share with a group | Any user on Enterprise, if Share with groups is on | Same menu, choose a group | Same as above | Automatically at next use |
| Publish to org | Any user, if Publishing is on | Customize > Skills > open the skill > Publish to org | An item in the org library, offered as Available to install, Installed by default or Required | Users stay on the approved version until the next one is approved |
| Provision | Owners | Organization settings > Plugins & skills > Add > Upload a skill (ZIP with SKILL.md) or Create a skill | Available to everyone at once, enabled by default; users can turn it off | Managed by owners in Organization settings |
How Claude app skills reach Claude Code
Skills enabled for your claude.ai account, including ones your organization provisions, load in Claude Code when you sign in with that account. Claude Code v2.1.273 or later downloads them to ~/.claude/skills/synced/ at session start and checks for changes about every 10 minutes. See where Claude skills are stored for how the synced folder fits with your other skills.
- No sync in sessions that use an API key (or
ANTHROPIC_AUTH_TOKEN,CLAUDE_CODE_OAUTH_TOKEN,apiKeyHelper), on Amazon Bedrock, or withCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICset. - Sync is download-only. Editing a file in
~/.claude/skills/synced/doesn't change the skill on claude.ai, and the next sync can overwrite it. - To stop syncing, set
syncClaudeAiSkillstofalsein user settings, or in managed settings for the whole organization. - Set
CLAUDE_CODE_SYNC_SKILLS=1to make a non-interactive run wait for the skill list.
Option 4: Push skills to every machine with managed settings
Administrators can deploy skills to .claude/skills/ inside the managed settings directory (for example /etc/claude-code/.claude/skills/ on Linux), or force-enable plugins fleet-wide with the same extraKnownMarketplaces and enabledPlugins keys in managed settings.
- Managed settings arrive through server-managed settings (Organization settings > Claude Code > Managed settings, Owner role), an MDM policy, or a
managed-settings.jsonfile. - Managed settings beat every other scope, so a user disabling a managed plugin doesn't stop it loading.
- Set
autoUpdateon a managed marketplace entry to decide auto-update for everyone, or setDISABLE_AUTOUPDATERin the managedenvblock to turn plugin auto-update off fleet-wide.
Keep everyone on the same version: pin, update and lock skills
A skill that changes silently changes what the agent does, so teams need to know which version everyone runs. It's a common pain point: "Ask HN: How do you manage skills files?" had 320 points and 299 comments when checked on 25 September 2026. The npx skills CLI documents npx skills update ("Update installed skills to latest versions"), and its versioning RFC (issue #11) and install-from-lock-file request (issue #283) are both still open.
Plugin auto-update is on by default for Anthropic's official marketplaces and marketplaces added from claude.ai, and off for knowledge-work-plugins, first-party-plugins and every other marketplace. A plugin that pins "version": "1.0.0" in its manifest stays on the cached copy until the author changes that field, even after new commits. After an update, a running session keeps the old version and shows Plugin updated: <name> · Run /reload-plugins to apply.
With AIPM, published versions can't be overwritten: publishing the same version again is rejected. aipm install installs every package at the version recorded in aipm.package.json, so committing that file and aipm-lock.json gives teammates and CI the same pinned versions. Version ranges aren't supported: pin exact versions.
| Method | Pin a version | Update | Where the version is recorded |
|---|---|---|---|
| Committed skills | A commit or tag | git pull, reviewed in pull requests | Git history |
| Claude Code plugins | Manifest version, else marketplace entry version, else the 12-character commit SHA; or a source ref plus a 40-character sha | claude plugin update <plugin>@<marketplace>, /plugin, or auto-update | installed_plugins.json on each machine |
| Claude app | Published items stay on the approved version | Shared: next use. Published: after approval | Your Claude organization |
| AIPM | Exact version: aipm add @scope/name@1.2.0 | aipm update (latest), then commit | aipm.package.json and aipm-lock.json in the repo |
Pinned, private skills across repos with AIPM
npm install -g @aipm-registry/cli
aipm init --target claude
aipm add @your-org/review-helper@1.2.0 # exact version
git add aipm.package.json aipm-lock.json # commit both
# teammates: sign in once for private org packages, then install
aipm login
aipm install # versions from aipm.package.json
# CI: org install token, non-interactive
AIPM_TOKEN=<install-token> aipm install --ci --target claude
aipm update @your-org/review-helper # move to the latest version
aipm list
aipm remove @your-org/review-helperUsing Cursor or Codex too?
Cursor reads skills from .claude/skills/ and .agents/skills/ in the repo, so committed Claude skills work there. For plugins, Cursor has team marketplaces on Teams (up to 1) and Enterprise (unlimited) plans, managed in Dashboard > Plugins & MCPs. See how to share Cursor rules and how to install Cursor skills.
Codex reads repo skills from .agents/skills, not .claude/skills, and distributes skills through plugins. One AIPM package can be installed with --target claude and --target codex; both installs work in Cursor. Differences: Claude Code skills vs Codex skills.
Which option should your team use?
Pick by where your team works and how much control you need:
AIPM installs skills and AIPM prompts only. It doesn't install plugins, CLAUDE.md, AGENTS.md or Cursor rules; for always-on instruction files, see how to share AI coding agent instructions. Prompts are covered in how to version AI prompts, and the skills.sh comparison is in AIPM vs Skills.sh.
- One repo: commit
.claude/skills/. - Many repos, all Claude Code: a plugin marketplace, or registry packages pinned to exact versions.
- Non-developers in the Claude app or Cowork: share, publish or provision in the Claude app.
- The whole fleet, enforced: managed settings.
- Claude Code and Codex together, with pinned versions and private packages: AIPM. See the CLI commands and publishing guide.
Simple steps
- Decide the scope: one repo, many repos, the Claude app, or the whole fleet.
- For one repo, commit .claude/skills/<name>/SKILL.md.
- For many repos, publish a plugin marketplace or registry packages with exact versions.
- On Team or Enterprise, share, publish or provision the skill in the Claude app.
- Decide who approves updates, and pin versions so everyone runs the same one.
Where to go next
If you want to try this in a real project, start with how to use AIPM and the command reference. If you want to share your own workflow, read the publishing guide.
FAQ
Can Claude skills be shared with others?
Yes. Commit them to a repository, distribute them as a Claude Code plugin, or, on Team and Enterprise plans, share, publish or provision them in the Claude app.
How do I share Claude Code skills with my team?
Commit them to the repo's .claude/skills/ folder, or put them in a plugin and declare its marketplace in the repo's .claude/settings.json with extraKnownMarketplaces and enabledPlugins.
Do shared skills in the Claude app update automatically?
Skills shared with people or groups update at next use. Skills published to the organization update when an owner approves the new version.
Do skills from the Claude app work in Claude Code?
Yes, in Claude Code v2.1.273 or later signed in with the same Claude account. They sync to ~/.claude/skills/synced/. They don't sync with an API key or on Amazon Bedrock.
How do I update Claude Code skills or plugins?
Committed skills: git pull. Plugins: claude plugin update <plugin>@<marketplace>, /plugin, or auto-update. AIPM packages: aipm update, then commit aipm.package.json and aipm-lock.json.
How do I pin a skill to a specific version?
Git: a commit or tag. Plugins: a manifest version, or a ref and sha on the marketplace source. AIPM: aipm add @scope/name@1.2.0. AIPM doesn't support version ranges.
Can I share private skills only inside my company?
Yes: a private repository or marketplace, Claude org sharing or provisioning, or private AIPM org packages installed after aipm login or with an org install token (--token or AIPM_TOKEN).
Sources
- Claude Code docs: Skills (share skills, synced skills)
- Claude Code docs: Manage plugins for your organization
- Claude Code docs: Plugin loading, versions and updates
- Claude Code docs: Marketplace reference (plugin sources)
- Claude Code docs: Discover and install plugins
- Claude Help Center: Use skills in Claude
- Claude Help Center: Provision and manage skills for your organization
- Claude Platform docs: Agent Skills overview (sharing scope)
- Cursor docs: Plugins (team marketplaces)
- Cursor docs: Agent Skills
- OpenAI Codex docs: Build skills
- OpenAI Codex docs: Plugins
- Hacker News: Ask HN: How do you manage skills files?
- vercel-labs/skills issue #11: [RFC] Versioning
- vercel-labs/skills issue #283: install from lock file