Claude Code Skills Marketplace: Where Skills Live, How to Install, Publish and Vet Them

- A marketplace is a catalog, not a store: a repo with
.claude-plugin/marketplace.jsonlisting plugins and where to fetch each one. Skills reach Claude Code inside those plugins. - Anthropic's two:
claude-plugins-official(317 entries in our census, added automatically) andclaude-community(2,283 entries, add with/plugin marketplace add anthropics/claude-plugins-community). - Install in two commands:
/plugin marketplace add owner/repo, then/plugin install name@marketplace; choose user, project or local scope in the details pane. - Publish without a form: push a
marketplace.jsonto any git repo; runclaude plugin validate --strictfirst. Anthropic's directory on claude.ai is a separate submission throughclaude.ai/directory/manage. - Third-party is the norm on X: 85% of 293 shared
marketplace addcommands pointed outsidegithub.com/anthropics, across 148 distinct sources. - Vet before install: a plugin's hooks, monitors and MCP servers run with your user privileges, outside Claude Code's permission rules and sandbox. Read
hooks/hooks.json,.mcp.jsonandbin/.
People searching for a Claude Code skills marketplace usually want one of three things: a place to browse skills and plugins, the exact commands to add a catalog and install from it, or a way to list their own work. This page covers all three, plus the step most guides skip: how to vet a plugin before it runs code on your machine.
This page is about where skills and plugins are listed and installed. The file format of a single skill (frontmatter fields, folder layout, how the agent loads it) is covered in our SKILL.md explainer, and the hook events a plugin can register are covered in our Claude Code hooks guide; both are linked below rather than repeated here.
Every number on this page comes from a study we ran: a census of 2,728 entries in four catalog files Anthropic publishes on GitHub, 813 public posts on X about Claude Code marketplaces, and a first-hand run of Claude Code 2.1.325's validator on a plugin we built around our own public skill.
85% (249 of 293) across 148 distinct sources in 813 X posts, collected in 2026, while Anthropic's community catalog alone lists 2,283 reviewed submissions with 99.9% pinned to a commit.
What a Claude Code skills marketplace actually is
Claude Code does not have an app store. Per Anthropic's plugin documentation, a marketplace is "a directory or repository with a .claude-plugin/marketplace.json file that lists your plugins and where to fetch each one." Anyone can host one. Claude Code clones it when you add it and installs individual plugins from it by name.
Skills ride inside plugins. A plugin is a folder with a .claude-plugin/plugin.json manifest and any mix of skills, commands, agents, hooks, monitors, MCP servers and LSP servers. When people say "skills marketplace" they mean a marketplace whose plugins mostly carry skills. A plugin skill is namespaced with the plugin name, so a skill hello in plugin my-first-plugin runs as /my-first-plugin:hello.
You do not need a marketplace for one skill. A standalone skill folder in ~/.claude/skills/ loads on its own, and a plugin can be loaded for one session with claude --plugin-dir ./my-plugin. A marketplace adds two things those routes lack: install by name, and updates on request or on a schedule.
The catalog file. marketplace.json requires a name, an owner and a plugins array; each entry needs a name and a source. The source can be a relative path inside the repo, a github repo, a git-subdir (a folder inside another repo), a url to any git host, an archive zip over HTTPS, an npm package, or a command that produces the directory on the installing machine.
Anthropic's marketplaces: official, community and topic catalogs
Anthropic's docs list two general-purpose marketplaces and several topic-specific ones. The marketplace name is what you type after @ when you install, and for the community catalog it differs from the repository name.
Names are protected. Claude Code accepts the official and community marketplace names only when the source is a github.com/anthropics/ repository, so a third-party catalog cannot pose as Anthropic's. The docs list fourteen official-tier names (among them claude-plugins-official, agent-skills, anthropic-agent-skills and knowledge-work-plugins) and three community-tier names (claude-community, claude-plugins-community, healthcare).
A deprecated name you will still see in tutorials. The claude-code-plugins marketplace inside anthropics/claude-code is deprecated; Anthropic's docs say to skip any tutorial step that runs /plugin marketplace add anthropics/claude-code and install from claude-plugins-official instead. Its ralph-wiggum plugin is now ralph-loop.
Browsing on the web. Besides the /plugin Discover tab, Anthropic's docs point to Claude Marketplace at claude.com/marketplace/plugins, which shows install counts and marks some plugins "Anthropic verified". Anthropic's directory on claude.ai is a separate catalog for claude.ai and Cowork; a plugin added there reaches Claude Code through account sync as <name>@synced.
What the catalogs contain: a census of 2,728 entries
We downloaded the four marketplace.json files above and counted every entry. The community catalog is about 7 times the size of the official one. Nearly every remote entry in both is pinned to a specific git commit (sha), which matters: per the security docs, where the community catalog pins a commit, Claude Code refuses to install a different one, so a repository owner cannot silently swap code under an existing listing.
Where the code lives. In the official catalog, 163 entries point to a git URL, 98 to a folder inside another repo, 55 sit inside the catalog repo itself and 1 uses a command source. In the community catalog, 1,876 point to a git URL, 400 to a repo subfolder and only 7 live inside the catalog repo: the community catalog is an index of other people's repositories.
Categories. The official catalog's largest categories are development (123), productivity (70), database (39), monitoring (22) and security (18). Only 7% of community entries carry a category at all, so searching the community catalog by keyword works better than browsing by category.
X data in the catalogs. No official or knowledge-work entry mentions X or Twitter in its name or description; 10 community entries do, ranging from transcription tools to social-listening plugins. None of the 2,728 entries is from TwitterAPI.io: our skill is published as a plain SKILL.md file and our MCP server is a hosted endpoint, both covered below.

How to add a marketplace and install a skill or plugin
Inside a Claude Code session the whole flow is two commands. /plugin market works as a short form of /plugin marketplace, and the same commands exist in your shell as claude plugin ... for scripts and for claude -p runs, where the interactive /plugin panel is not available.
Step 1: add the catalog. /plugin marketplace add accepts a GitHub owner/repo (append #ref to pin a branch or tag), a full git URL on any host, a local directory or file (start a relative path with ./ so it is not read as GitHub shorthand), or the https:// URL of a hosted marketplace.json. Private repositories work with the git credentials already on your machine; Claude Code never prompts for them.
Step 2: install by name. /plugin install <plugin>@<marketplace> opens the plugin's details instead of installing at once. The pane lists what will be installed (commands, agents, skills, hooks, MCP and LSP servers) and, for official-catalog plugins, a context cost estimate. You then pick a scope.
One-step form. Newer Claude Code builds can add and install together: /plugin install deploy-helper --marketplace your-org/plugins in a session (v2.1.275 or later) or claude plugin install deploy-helper --marketplace your-org/plugins in the shell (v2.1.292 or later).
Updates. Auto-update is on by default for claude-plugins-official and the other official names except knowledge-work-plugins and first-party-plugins, and off for the community catalog and every third-party marketplace. claude plugin update <plugin>@<marketplace> updates one plugin on demand; removing a marketplace with claude plugin marketplace remove <name> uninstalls every plugin you installed from it.
# Inside a Claude Code session
/plugin marketplace add anthropics/claude-plugins-community
/plugin install <plugin>@claude-community # opens the details pane, then pick a scope
# From your shell (scripts, CI, or before a claude -p run)
claude plugin marketplace add anthropics/skills
claude plugin install <plugin>@anthropic-agent-skills --scope project
claude plugin marketplace list # shows the source each catalog came from
claude plugin details <plugin> # component inventory + always-on token cost
claude plugin update <plugin>@anthropic-agent-skillsWhat people share on X: mostly third-party marketplaces
To see which marketplaces people actually pass around, we searched X for posts containing plugin marketplace add and for posts mentioning Claude Code together with a marketplace and skills or plugins. The two searches returned 240 and 484 posts from 188 and 383 distinct authors; the broader search ran at about 38.2 posts a day over 12.7 days.
Across every collected post, 281 contained a marketplace add command. Of the sources they named, 249 (85%) were third-party repositories and 41 (14%) were Anthropic's, led by anthropics/skills with 33. The third-party side is a long tail: 148 distinct sources, 73% of them named only once, and the ten most-shared accounting for 28.5% of third-party commands.
Who is talking. The marketplace conversation is multilingual: in the plugin marketplace add search, 105 posts were English, 66 Chinese, 16 Japanese and 13 Korean. Engagement is modest and skewed: the median post in the broader search had 4 likes and 341.5 views, the 90th percentile 72 likes.
Safety comes up, but not often. 13.6% of the broader marketplace posts used a word such as malicious, malware, prompt injection, security, audit or trust; in the marketplace add posts it was 7.1%. A separate search for Claude Code skills or plugins next to a security word returned 224 posts in 2.5 days, so the topic is discussed, just mostly apart from the posts that hand out install commands.

Vet a plugin before you install it
Anthropic's security page opens with the sentence that should frame every install: "A Claude Code plugin you install can execute arbitrary code on your machine with your user privileges." A marketplace name tells you who publishes the catalog, not what each plugin does.
What runs outside your guardrails. Command hooks and monitors are shell commands that run with your full user permissions. Hooks, monitors, MCP servers, LSP servers and processes a plugin's mod starts all run outside Claude Code's sandbox, and permission rules apply only to Claude's own tool calls (calling a plugin's MCP tool, or running a file from its bin/ directory). Skills, commands and agents enter Claude's context as instructions, so a hostile skill works by steering Claude with the tools it already has.
Updates change what you reviewed. With auto-update on, the files on disk can change after your review. That is one reason third-party marketplaces default to auto-update off, and a reason to keep it off for catalogs you do not control.
The four-step review Anthropic documents. First, run claude plugin marketplace list to see where each catalog came from. Second, read the details pane's Will install section. Third, open the plugin's source and read hooks/hooks.json (the command each hook runs), .mcp.json (each server's command or URL) and every file in bin/. Fourth, clone the repository and run claude --plugin-dir <dir> plugin details <name>, which prints the component inventory without starting a session.
For teams. Managed settings let an administrator allowlist or blocklist marketplace sources, force-enable plugins, turn off --plugin-dir, limit hooks to managed ones, and stop plugins synced from members' claude.ai accounts from loading. Project scope plus a committed .claude/settings.json is how a team standardizes on a reviewed set.
Removing one. claude plugin uninstall <plugin> with the scope you used removes it; the cached files stay under ~/.claude/plugins/cache/ for 14 days unless you delete that folder yourself.
Publish your own skill: three routes and a validator run
Anthropic's publishing docs describe three routes. Sending a folder or .zip reaches the people you send it to, with no updates. Your own marketplace reaches anyone who can clone the repository, with no submission form, and users get updates on request or with auto-update. Anthropic's directory on claude.ai reaches claude.ai, Cowork and Claude Code users through account sync; you submit through the developer portal at claude.ai/directory/manage, which needs a paid claude.ai plan. The docs add that claude-plugins-official does not take submissions through that portal.
What we ran. To see the author side first-hand, we wrapped our public twitterapi-io SKILL.md in a one-plugin marketplace under a temporary folder and ran Claude Code 2.1.325's validator. claude plugin validate --strict on the plugin passed, with one directory-profile note that no icon was present (the CLI adds that the directory also runs a safety scan and a policy review it does not). claude plugin validate on the marketplace passed with one warning: no marketplace description.
What it costs in context. claude plugin details reported 1 skill, 0 hooks and 0 MCP servers, an always-on cost of about 135 tokens per session, and about 3,600 tokens each time the skill fires. A skill's description is what every session pays for; the body is paid only on use.
What the validator catches. We then broke the catalog on purpose. A source of ./../plugins/twitterapi-io failed with Path contains "..", and the message explains that paths resolve from the marketplace root (the folder that holds .claude-plugin/), not from marketplace.json. A plugin named Bad Name failed twice: no spaces, and each part of plugin@marketplace may use only letters, digits, ., _ and -. A marketplace named claude-plugins-official passed the validator; per the docs the reserved-name refusal happens when someone adds the marketplace. The failing run exited with code 1 with or without --strict; --strict additionally fails on warnings, which is what you want in CI.
Release hygiene from the docs. Pick a permanent kebab-case name (a rename looks like a new plugin to every install; use the catalog's renames map if you must). Either bump version on every release or omit it so the commit SHA is the version. Pin remote sources to a sha the way Anthropic's catalogs do.
{
"name": "your-unique-marketplace",
"description": "Skills for X (Twitter) data work",
"owner": { "name": "Your Team" },
"plugins": [
{
"name": "twitterapi-io",
"source": "./plugins/twitterapi-io",
"description": "Read X data through a REST API: search, timelines, profiles, followers"
},
{
"name": "another-plugin",
"source": { "source": "github", "repo": "your-org/another-plugin" },
"description": "Fetched from its own repository at install time"
}
]
}Giving Claude Code live X (Twitter) data: skill, plugin or MCP server
A common reason to browse a skills marketplace is to give Claude Code access to an outside data source. For X, there are three ways to wire it, and none of them needs a marketplace listing to work.
A skill. Our twitterapi-io skill is a single SKILL.md at twitterapi.io/skills/twitterapi-io/SKILL.md. Drop it in ~/.claude/skills/twitterapi-io/, set TWITTERAPI_IO_API_KEY, and Claude calls the REST API with curl or Python when a task needs X data. You can also list it in your own team marketplace as shown above. Reads need no X account.
An MCP server. Our hosted server at https://mcp.twitterapi.io/mcp takes an Authorization: Bearer <key> header and exposes X reads as MCP tools. A plugin can bundle an MCP server in .mcp.json, which is how many marketplace plugins deliver integrations; the MCP server explainer linked below covers the protocol.
What the data costs. TwitterAPI.io bills per result: $0.15 per 1,000 tweets returned (15 credits per tweet), $0.18 per 1,000 profiles, with a 15-credit minimum on each search, so a search that finds nothing costs $0.00015. On the official X API pay-per-usage rate card, a post read is $0.005, or $5 per 1,000, about 33 times more per 1,000 tweets. New accounts that pass the automatic bot check get up to $1 of free credits (at most 100,000 credits, no card, one per person or network, expiring after 31 days).
What our study cost. The X half of this page's study was 54 search requests returning 813 distinct posts, about $0.12 at $0.15 per 1,000 tweets.
How we collected this
Question. What do Anthropic's Claude Code plugin catalogs contain and how are entries sourced and pinned; when people on X share a marketplace, does it point at Anthropic or at third parties; and what does Claude Code's validator report for a small skill plugin?
Catalog census. One HTTPS download each of the .claude-plugin/marketplace.json files in anthropics/claude-plugins-official, anthropics/claude-plugins-community, anthropics/knowledge-work-plugins and anthropics/skills, collected in 2026: 2,728 entries. We counted source types, commit pins, categories, homepages and entries that mention X or Twitter.
X sample. Four searches through TwitterAPI.io's /twitter/tweet/advanced_search (Latest): "plugin marketplace add"; "claude code" with marketplace and skills or plugins; "claude code" with skills or plugins and a security word; and posts from the official @claudeai account about plugins, skills or marketplaces (58 posts). 54 requests, 813 distinct posts, the most recent matches at collection time, collected in 2026. Commands were parsed from post text with a regular expression; placeholder sources such as owner/repo were excluded.
First-hand run. Claude Code's claude plugin validate, claude plugin validate --strict and claude --plugin-dir ... plugin details on a temporary marketplace holding our public skill, plus a deliberately broken copy. No marketplace was added to settings and nothing was installed.
What the sample cannot show. Search returns recent posts, so it reflects a short window, not all time; it cannot see install counts, private team marketplaces or how many people installed what they saw. Catalogs change often, so entry counts are a snapshot. Keyword matching for safety terms counts words, not intent.
Privacy. Aggregates only. Topic-search authors are private individuals: raw pages were not kept in the repository, the de-identified sample has no ids, URLs, text or handles, and third-party repositories owned by individuals are counted, never named. Only Anthropic's organization repositories and the official @claudeai account are named.
"""Before you install: audit a Claude Code marketplace and check what X says about a plugin.
1. Downloads a marketplace's .claude-plugin/marketplace.json from GitHub (no auth).
2. Flags entries whose source is not pinned to a commit and entries without a homepage.
3. Searches recent X posts that mention the plugin together with a safety word.
"""
import os
import time
import requests
BASE = "https://api.twitterapi.io"
HEADERS = {"X-API-Key": os.environ["TWITTERAPI_IO_API_KEY"]}
MARKETPLACE_REPO = "anthropics/claude-plugins-official" # any owner/repo that holds a marketplace
PLUGIN = "commit-commands" # the plugin you are about to install
def load_marketplace(repo, ref="main"):
url = f"https://raw.githubusercontent.com/{repo}/{ref}/.claude-plugin/marketplace.json"
r = requests.get(url, timeout=30)
r.raise_for_status()
return r.json()
def audit(catalog):
print(f"marketplace name: {catalog['name']} entries: {len(catalog.get('plugins', []))}")
for p in catalog.get("plugins", []):
src = p.get("source")
if isinstance(src, str):
kind, pinned = "relative path (inside the catalog repo)", True
else:
kind, pinned = src.get("source", "?"), bool(src.get("sha"))
if p["name"] == PLUGIN or not pinned:
print(f" {p['name']}: source={kind} pinned_to_commit={pinned} homepage={p.get('homepage', 'none')}")
def x_mentions(plugin, max_pages=3):
"""Recent posts naming the plugin with a safety word. Billed per tweet returned."""
query = f'"{plugin}" (malicious OR malware OR "prompt injection" OR backdoor OR security) -is:retweet'
cursor, posts = "", []
for _ in range(max_pages):
r = requests.get(
f"{BASE}/twitter/tweet/advanced_search",
headers=HEADERS,
params={"query": query, "queryType": "Latest", "cursor": cursor},
timeout=30,
)
r.raise_for_status()
body = r.json()
posts.extend(body.get("tweets", []))
if not body.get("has_next_page"):
break
cursor = body.get("next_cursor", "")
time.sleep(1)
return posts
if __name__ == "__main__":
audit(load_marketplace(MARKETPLACE_REPO))
posts = x_mentions(PLUGIN)
print(f"\n{len(posts)} recent X posts name {PLUGIN} with a safety word")
for t in sorted(posts, key=lambda t: t.get("likeCount", 0), reverse=True)[:5]:
print(f"- {t['createdAt']} | {t.get('likeCount', 0)} likes | {t['text'][:140]!r}")
print(f" {t['url']}")
Researching this?Free starter credits cover end-to-end testing — Google sign-in, no card. Get a key.
Questions readers ask
Is there an official Claude Code skills marketplace?
Yes. Anthropic runs claude-plugins-official (repository anthropics/claude-plugins-official), which Claude Code adds automatically the first time you start an interactive session, and a community marketplace named claude-community (repository anthropics/claude-plugins-community) that you add yourself. Anthropic also publishes topic catalogs such as anthropics/skills. Skills are delivered inside plugins listed in these catalogs.
How do I add a marketplace in Claude Code?
Run /plugin marketplace add owner/repo in a session, or claude plugin marketplace add owner/repo in your shell. The source can also be a git URL on any host, a local path starting with ./, or the https:// URL of a hosted marketplace.json. Append #ref to pin a branch or tag.
What is the difference between a skill and a plugin?
A skill is a folder with a SKILL.md that Claude loads when a task matches it. A plugin is a package with a .claude-plugin/plugin.json manifest that can bundle skills plus commands, agents, hooks, monitors and MCP or LSP servers. Marketplaces list plugins, so a skill reaches a marketplace by being wrapped in a plugin.
Why does /plugin install say the plugin is not found?
Usually the marketplace is not added yet, or you used the repository name instead of the marketplace name: the community catalog's repository is claude-plugins-community but you install with @claude-community. It also happens when a catalog entry's name differs from the name in that plugin's own plugin.json.
Are third-party Claude Code plugins safe?
Anthropic does not review third-party marketplaces, and its docs state that an installed plugin can execute arbitrary code with your user privileges. Hooks, monitors and MCP servers run outside Claude Code's sandbox and permission rules. Read hooks/hooks.json, .mcp.json and bin/ before installing, keep auto-update off for catalogs you do not control, and prefer entries pinned to a commit.
How do I publish my own skill to a marketplace?
Wrap the skill in a plugin, add a .claude-plugin/marketplace.json with name, owner and a plugins entry to a git repository, run claude plugin validate --strict, and push. There is no submission form for your own marketplace. To be listed in Anthropic's directory on claude.ai, submit through the developer portal at claude.ai/directory/manage, which requires a paid claude.ai plan.
Do plugins work in claude -p or cloud sessions?
In claude -p runs the /plugin panel is not available, but plugins you already installed load; manage them with claude plugin shell commands. Cloud sessions, including Claude Code on the web, do not load plugins you installed locally or those enabled in the repository's .claude/settings.json; organization plugins come through managed settings.
How much context does a plugin cost?
Run claude plugin details <name>. For our one-skill plugin it reported about 135 always-on tokens per session and about 3,600 tokens each time the skill runs. For official-catalog plugins the /plugin details pane also shows an estimate before you install.
Continue
- Claude Code docs: Anthropic's marketplaces (official, community, topic catalogs, deprecated claude-code-plugins)
- Claude Code docs: Install and manage plugins (marketplace add sources, scopes, auto-update)
- Claude Code docs: Plugin security and trust (what plugins can run, reserved names, review steps)
- Claude Code docs: Create a marketplace (marketplace.json fields, source types, validate)
- Claude Code docs: Publish and distribute a plugin (own marketplace vs Anthropic's directory)
- GitHub: anthropics/claude-plugins-community, the community catalog's marketplace.json
- X (Twitter) API hub: endpoints, pricing and guides
- SKILL.md explained: the skill file format and our X data skill
- Claude Code hooks: events, matchers and what a hook can run
- The last30days skill: install it and feed it X data
- What an MCP server is and how Claude Code calls one
- Use Claude with the Twitter (X) API
- TwitterAPI.io hosted MCP server for X data
- TwitterAPI.io pay-per-use pricing
- 01Free LLM API options in 2026: what is still free, the real limits, and how to feed it Twitter (X) data
- 02RAG vs MCP: Retrieval vs Live Tools, Measured on Twitter (X) Data
- 03Clay Pricing in 2026: Plans, Data Credits, Actions and the Cost of a Twitter (X) Column
- 04MCP Inspector: How to Test and Debug an MCP Server, Tested on a Live X Data Server
- 05What Is an API Key? Meaning, a Real Request, and How to Keep One Safe
- 06Claude Cowork vs Claude Code: Which Anthropic Agent Fits Your Work (and Your Twitter (X) Data)?
- 07Cursor vs Claude Code: Plans, MCP Setup and Headless Runs Compared for Twitter (X) Data Work
- 08Codex vs Claude Code: Plans, Usage Limits, MCP Setup and Headless Runs for Twitter (X) Data Agents
Writing about something you built with TwitterAPI.io? Our community rewards program pays API credits for honest tutorials, build logs and videos.
Stop reading. Start building.
Starter credits cover real testing on real data. Google sign-in, no card, no application queue.
Get an API keyAlready building with TwitterAPI.io? Publish an honest tutorial or build log about it and earn up to $200 a month in API credits.