Claude Code skills
Your account has its own marketplace of Claude Code skills on Kadmo Git. Admins edit its skills in the app, and anyone in the account can push to it with git. Every agent of the account installs the skills and keeps them current, and every member can connect their own Claude Code to the same marketplace. This page covers what a skill is, the marketplace and its repository, editing and pushing, how agents get the skills, connecting your own Claude Code, what a slug rename changes, the limits and troubleshooting.
What a Claude Code skill is
A skill is a folder with a SKILL.md and the files it uses. Claude Code installs the folder, reads its description and uses the skill when a task fits. You can also call it by name, as /<account>:<skill>: in the account acme, the skill release-notes is /acme:release-notes.
A skill is not a skill pack, and it does not replace a workspace's skill uploads:
| Where it lives | What reads it | Who has it | |
|---|---|---|---|
| A Claude Code skill in your marketplace | The account's marketplace on Kadmo Git | Claude Code, which installs it as a plugin | Every agent of the account, and every member who connects their own Claude Code |
| A workspace skill | The workspace's Skills field, delivered to .claude/skills/ in its folder (see Code & files tab) | Claude Code, in that workspace's folder only | The agents assigned to the workspace |
| A skill pack | The account's pack repository | The agent runtime, which serves the knowledge to the agent | The account's agents |
Put a skill in the marketplace when the whole company should have it, and in a workspace when only that workspace's agents need it. Both kinds keep working side by side.
Your account's marketplace
The marketplace is created with the account, so every account has one. It is a standard Claude Code marketplace that holds one plugin, named after the account. Its address is:
https://git.kadmo.ai/<account>/skills.gitThe marketplace and its plugin are both named after the account's slug, so the plugin installs as <account>@<account>, acme@acme in the examples. Claude Code refuses names that look like its own. If your slug starts with claude-, anthropic-, anthropics- or cc-plugin-, the marketplace and the plugin are named <account>-skills instead, and every <account> in an install name or a skill call on this page reads <account>-skills. The address keeps the slug.
The plugin has a version, such as 1.4.2. Agents and Claude Code fetch a new copy only when that version moves (see Pushing with git).
Open the marketplace at Settings › Library › Skills. The header shows:
- the address, with Copy;
- the plugin's version, and who changed it last and when;
- Deploy to agents, with how many of the account's agents are at this version.
The list below shows each skill's name, description, size and last change. Admins edit here. Members see the page read-only, and can still push with git.
The repository
skills.git
├── .claude-plugin/
│ └── marketplace.json the marketplace: its name, its owner, the one plugin
├── plugins/
│ └── <account>/
│ ├── .claude-plugin/
│ │ └── plugin.json the plugin: its name and version
│ └── skills/
│ └── release-notes/
│ ├── SKILL.md the skill: name and description in the frontmatter, then the instructions
│ ├── references/ optional files the skill reads
│ └── scripts/ optional scripts the skill runs
└── README.mdThe two manifests belong to the marketplace. Leave their names alone, because the app writes them and they follow the slug. Each skill is one folder under plugins/<account>/skills/, with its SKILL.md at the folder's root.
main is the only branch. A push to any other branch is refused.
Adding, editing and removing in the app
An admin works on Settings › Library › Skills:
| Action | What it does |
|---|---|
| Add skill | Adds a skill from a dropped .md or .zip, from a pasted SKILL.md, or from a workspace skill, which lists the skills your workspaces already upload. A .zip is re-rooted so that SKILL.md sits at the skill's root |
| The skill's page | The SKILL.md editor checks the frontmatter as you type. The page also lists the skill's files, with upload and remove |
| Save & commit | Writes one commit on main, authored as you, and moves the version |
| Remove | Deletes the skill in one commit, after a confirmation that names the agents that have it |
Errors and warnings appear next to the field they concern. A save with an error is refused and nothing is committed. A save that would pass a limit, or that takes a name already in use, is refused as well.
On a workspace's Code & files tab, an admin can lift a workspace skill into the marketplace with Promote to the account.
Pushing with git
Anyone in the account can clone the marketplace and push to main with their personal git token, exactly as with the account's other repositories:
git clone https://git.kadmo.ai/acme/skills.gitEvery push to main is checked by the lint:
- the layout above is intact;
- every skill folder has a
SKILL.md; - its
nameequals the folder's name, and itsdescriptionis not empty; - Claude Code's own frontmatter keys are accepted, and any other key gets a warning;
- there are no symbolic links, no nested
.gitand no path that leads out of the skill's folder.
A push that passes moves the version. A content change bumps the patch number (1.4.2 → 1.4.3) and a removed skill bumps the minor number (1.4.3 → 1.5.0). If your push already changed the version in plugin.json, your version is kept. Settings › Library › Skills then shows the push's commit.
A push that fails the lint is still kept on main, but it is not released: the version stays where it was, and the Skills page shows the error and the commit that caused it. Agents and members that already have the plugin keep their version until a later push passes.
How agents get the skills
With Deploy to agents on (the default) and at least one skill in the marketplace, every agent of the account installs the plugin <account>@<account> into Claude Code. It uses the account's own Kadmo Git credential, which Kadmo delivers to the agent, so you set nothing up on agents. When the version moves, the agents update:
| Agent | When it has the new version |
|---|---|
| Idle | At once |
| Busy | When its job ends |
Switching Deploy to agents off stops new installs and updates. Agents keep the copy they have, and the page says so.
On an agent's page, the Items block lists the Account skills group above the workspaces' skills (see Agent updates). The group's header names the marketplace's version and links the Skills page, and each row reads one of:
| State | Meaning |
|---|---|
| Installed | The agent has the marketplace's current version |
| Update on its way | The agent has an older version, or none yet, and the new one is on its way |
| Failed | The install or the update failed, and the row names the reason |
| Not reported yet | The agent has not reported its Claude Code plugins since the request |
Capabilities › Skills lists the account's skills first in its Claude Code skills panel, marked from your skills marketplace, with their deploy state. In the account's Cloud settings, the marketplaces card shows the marketplace as Your skills marketplace · built in, with no Remove. In the Create-Agent wizard, the account's plugin is pre-selected and locked while Deploy to agents is on.
Connect your own Claude Code
Members install the same skills in Claude Code on their own machine. Connect on the Skills page shows these steps with your account's address and names filled in.
1. Create a personal git token. Open Create a personal git token, which leads to Your access in the Kadmo Git dialog. Every member can create one (see Your access). The token starts with kadmo_git_.
2. Store the token where git finds it. Claude Code runs git with its prompts turned off, so git cannot ask you for the token. It has to be in your credential helper before the first command. If git already knows a helper on your machine (macOS Keychain, Git Credential Manager, or git config --global credential.helper store), hand it the token once:
git credential approve <<CRED
protocol=https
host=git.kadmo.ai
username=x-access-token
password=<token>
CREDYou can also clone any of the account's repositories once with git and enter the token when git asks. Your credential manager then keeps it.
3. Add the marketplace and install the plugin:
claude plugin marketplace add https://git.kadmo.ai/acme/skills.git
claude plugin install acme@acmeThe first command prints Successfully added marketplace: acme and records the marketplace in your user settings. The second prints Successfully installed plugin: acme@acme (scope: user).
4. Use the skills. In every Claude Code session, the skills are available, and /acme:release-notes calls one by name.
To bring in a new version at once:
claude plugin update acme@acmeThe command refreshes the marketplace and installs the new version, and the new version applies when you restart Claude Code. If the marketplace's version has not moved, the command says the plugin is already at the latest version.
For a single command you can put the token in the address instead (https://x-access-token:<token>@git.kadmo.ai/acme/skills.git). Claude Code keeps that address, token included, in its marketplace settings and reuses it for every update. Store the token in your credential helper instead, as in step 2.
For a team: the settings block
To give every member the same setup, put this block in a settings.json. Use each member's user settings (~/.claude/settings.json), or the .claude/settings.json of a repository the team works in:
{
"extraKnownMarketplaces": {
"acme": {
"source": { "source": "git", "url": "https://git.kadmo.ai/acme/skills.git", "ref": "main" },
"autoUpdate": true
}
},
"enabledPlugins": { "acme@acme": true }
}extraKnownMarketplaces declares the marketplace, and enabledPlugins turns its plugin on. With the block in user settings, Claude Code clones the marketplace and installs the plugin at its next start, with no commands. With the block in a repository's .claude/settings.json, Claude Code applies it only after the member trusts the folder, and then asks the member to install the marketplace and the plugin. Each member still needs steps 1 and 2: the block holds no credential.
How updates arrive
| Setup | When a new version arrives |
|---|---|
autoUpdate: true in the block | Claude Code checks in the background after a session starts, and says Plugin updated when a new version is installed. Run /reload-plugins or restart to apply it |
The two commands, or the block without autoUpdate | Claude Code does not update a marketplace outside Anthropic's on its own. Run claude plugin update acme@acme, or turn on auto-update for the marketplace under /plugin › Marketplaces |
Either way, a new copy arrives only when the plugin's version moved. A push that failed the lint, or a commit that left the version where it was, brings nothing.
A slug rename
The marketplace's name and the plugin's name follow the account's slug, and its address does too. When the slug changes, the app rewrites both manifests in one commit and moves the version:
- Agents are switched to the new name by the app. The plugin under the old name stays on each agent, shown as not requested.
- Members remove the old marketplace and connect again, because Claude Code cannot carry a marketplace to a new name. Removing a marketplace also uninstalls its plugin:
claude plugin marketplace remove <old-account>
claude plugin marketplace add https://git.kadmo.ai/<new-account>/skills.git
claude plugin install <new-account>@<new-account>- A team changes the names and the address in its settings block.
- Skill calls change with the name:
/<old-account>:release-notesbecomes/<new-account>:release-notes.
Limits
| What | Limit |
|---|---|
| Skills per marketplace | 64 |
| One skill's folder | 5 MB |
| The whole repository | 64 MB |
| A skill's name | Lowercase letters, digits and dashes, starting with a letter or digit, up to 64 characters; unique in the marketplace; a reserved name is refused |
| Branches | main only |
| Workspace slugs | skills is reserved, since the marketplace lives at that address |
Personal git tokens have their own limits, under Your access.
Troubleshooting
| What you see | Cause | Fix |
|---|---|---|
fatal: could not read Username for 'https://git.kadmo.ai': terminal prompts disabled | Claude Code ran git with prompts off, and your credential helper holds no token for git.kadmo.ai | Store your token as in step 2, then run the command again |
Authentication failed from git or from Claude Code | The token is wrong or revoked, or its member was removed from the account | Create a new token under Your access, store it, and run the command again |
… is not a valid GitHub owner/repo shorthand | The address has no https:// | Paste the full address, starting with https:// and ending in skills.git |
Plugin "<account>" not found in marketplace "<account>" | The name does not match the marketplace, for example after a slug rename, or for a slug with a reserved prefix, whose names end in -skills; or the marketplace was never added | Copy the commands from Connect, or follow A slug rename |
| A changed skill does not arrive | The push failed the lint, so the version did not move (the Skills page shows the error), or your Claude Code has not checked for updates yet | Fix the error and push again, then run claude plugin update <account>@<account> |
| The new version is installed but the session still uses the old one | Claude Code applies a plugin update when it reloads | Run /reload-plugins, or restart Claude Code |
| An agent's Account skills row reads Failed | The install or the update failed on the agent, and the row names why | Fix the cause it names |
| An agent has no Account skills group | Deploy to agents is off, or the marketplace holds no skill yet | Switch Deploy on, or add a skill |
| A save is refused with the lint's report | A SKILL.md misses its name or description, the name differs from the folder, or a file breaks a rule of the lint | Fix what the report names, then Save & commit again |
| A save or a new skill is refused for a limit or a name | The skill count, a size limit, the name rules or a name already in use (see Limits) | Remove what you no longer need, or choose another name |
A push to a branch other than main is refused | The marketplace takes pushes to main only | Push to main |
Related
- Skill packs: the knowledge layers agents read, and how they differ from Claude Code skills.
- Kadmo Git: the account's repositories and personal git tokens.
- Agents: the Items block and when a change lands.
- Workspaces: a workspace's own skill uploads.