Skip to main content

Claude Code Plugin Marketplace (Managed Skills)

LiteLLM AI Gateway acts as a central registry for Claude Code plugins. Admins can govern which plugins are available across the organization, and engineers can discover and install approved plugins from a single source.

Prerequisites​

  • LiteLLM Proxy running with database connected
  • Admin access to LiteLLM UI
  • Plugins hosted on GitHub, GitLab, any git-accessible URL, or as a zip archive on an HTTPS host

Admin Guide: Managing the Marketplace​

Step 1: Navigate to Skills​

In the LiteLLM Admin UI, click on Skills in the left navigation menu. Only proxy admins can add, edit, enable, disable, or delete plugins.

Step 2: View the Plugins List​

You'll see the list of all registered plugins. From here you can add, enable, disable, or delete plugins.

Step 3: Add a New Plugin​

Click + Add Skill to register a plugin in your marketplace.

Step 4: Fill in Plugin Details​

Paste the source URL first. It can be a GitHub URL, a git clone URL over HTTPS or SSH, a tree/<branch>/<path> link to a subdirectory, or an HTTPS link to a zip file. LiteLLM detects the source type and suggests a name. Then fill in the name (kebab-case, e.g. my-plugin) and any optional fields: domain, namespace, description, category, keywords, version, and author.

Step 5: Submit the Plugin​

After filling in the details, click Add Skill to register it.

Step 6: Enable/Disable Plugins​

New plugins are enabled as soon as they are added. Toggle plugins on or off to control what appears in the public marketplace. Enabled plugins are visible to everyone. A disabled plugin is only visible to keys or teams granted it through Allowed Skills (object_permission.skills), as described in Private skills.

Engineer Guide: Installing Plugins​

Step 1: Add the LiteLLM Marketplace​

Add your company's LiteLLM marketplace to Claude Code:

claude plugin marketplace add http://your-litellm-proxy:4000/claude-code/marketplace.json

If you were granted private plugins, add your key so they appear too:

claude plugin marketplace add "http://your-litellm-proxy:4000/claude-code/marketplace.json?key=sk-..."

Step 2: Browse Available Plugins​

Run /plugin inside Claude Code to browse plugins from the litellm marketplace, or list them from the proxy:

curl http://your-litellm-proxy:4000/claude-code/marketplace.json

Step 3: Install a Plugin​

Install any plugin from the marketplace:

claude plugin install my-plugin@litellm

Step 4: Verify Installation​

The plugin is now installed and ready to use:

API Reference​

Public Endpoint (No Auth Required)​

GET /claude-code/marketplace.json​

Returns the marketplace catalog for Claude Code discovery. Without a key it lists enabled plugins. With ?key=sk-... it also lists the disabled plugins granted to that key or its team.

curl http://localhost:4000/claude-code/marketplace.json

Response:

{
"name": "litellm",
"owner": {
"name": "LiteLLM",
"email": "support@litellm.ai"
},
"plugins": [
{
"name": "my-plugin",
"source": {
"source": "github",
"repo": "org/my-plugin"
},
"version": "1.0.0",
"description": "My awesome plugin",
"category": "productivity",
"keywords": ["automation", "tools"]
}
]
}

Management Endpoints (Auth Required)​

Every write endpoint below requires a proxy admin key and rejects any other key with a 401 or 403. The read endpoints accept any key and only return plugins visible to it.

POST /claude-code/plugins​

Register a new plugin. This only creates; a name that already exists returns 409.

curl -X POST http://localhost:4000/claude-code/plugins \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{
"name": "my-plugin",
"source": {"source": "github", "repo": "org/my-plugin"},
"version": "1.0.0",
"description": "My awesome plugin",
"category": "productivity",
"keywords": ["automation", "tools"]
}'

GET /claude-code/plugins​

List the plugins visible to the caller: everything for a proxy admin, otherwise enabled plugins plus the ones granted to the key. Add ?enabled_only=true to return only enabled plugins.

curl http://localhost:4000/claude-code/plugins \
-H "Authorization: Bearer sk-..."

GET /claude-code/plugins/{name}​

Get one plugin. Returns 403 for a disabled plugin that is not granted to the caller.

curl http://localhost:4000/claude-code/plugins/my-plugin \
-H "Authorization: Bearer sk-..."

PUT /claude-code/plugins/{name}​

Replace an existing plugin. The name comes from the path and cannot change. This is a full replace, so omitted fields reset to their defaults and version is cleared if omitted.

curl -X PUT http://localhost:4000/claude-code/plugins/my-plugin \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{
"source": {"source": "github", "repo": "org/my-plugin"},
"version": "1.1.0",
"description": "My awesome plugin, now with more tools",
"category": "productivity",
"keywords": ["automation", "tools"]
}'

POST /claude-code/plugins/{name}/enable​

Enable a plugin.

curl -X POST http://localhost:4000/claude-code/plugins/my-plugin/enable \
-H "Authorization: Bearer sk-..."

POST /claude-code/plugins/{name}/disable​

Disable a plugin.

curl -X POST http://localhost:4000/claude-code/plugins/my-plugin/disable \
-H "Authorization: Bearer sk-..."

DELETE /claude-code/plugins/{name}​

Delete a plugin.

curl -X DELETE http://localhost:4000/claude-code/plugins/my-plugin \
-H "Authorization: Bearer sk-..."

Plugin Source Formats​

{
"name": "my-plugin",
"source": {
"source": "github",
"repo": "organization/repository"
}
}

Example: Setting Up an Internal Plugin Marketplace​

1. Create Internal Plugins​

Structure your plugin repository:

my-company-plugin/
├── plugin.json # Plugin manifest
├── SKILL.md # Main skill file
├── skills/ # Additional skills
│ └── helper.md
└── README.md

2. Register Plugins via API​

# Register your internal tools plugin
curl -X POST http://localhost:4000/claude-code/plugins \
-H "Authorization: Bearer $LITELLM_MASTER_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "internal-tools",
"source": {"source": "github", "repo": "mycompany/internal-tools"},
"version": "1.0.0",
"description": "Internal development tools and utilities",
"author": {"name": "Platform Team", "email": "platform@mycompany.com"},
"category": "internal",
"keywords": ["internal", "tools", "utilities"]
}'

3. Use in Claude Code​

Send engineers the marketplace URL:

# One-time setup for each engineer
claude plugin marketplace add http://litellm.internal.company.com/claude-code/marketplace.json

# Install company plugins
claude plugin install internal-tools@litellm

Troubleshooting​

Plugin not appearing in marketplace:

  • Verify the plugin is enabled in the admin UI, or that it is granted to your key and you added the marketplace with ?key=
  • Run claude plugin marketplace update litellm to refresh the local copy of the catalog

Installation fails:

  • Ensure the git repository is accessible from the engineer's machine
  • For private repos, engineers need appropriate git credentials configured
  • For git-subdir sources, check that path matches the skill's directory in the repository; Claude Code reports Subdirectory '<path>' not found otherwise

Database errors:

  • Verify LiteLLM proxy is connected to the database
  • Check proxy logs for detailed error messages