pi-claude-marketplace

Access Claude plugin marketplaces from Pi.

Packages

Package details

extension

Install pi-claude-marketplace from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-claude-marketplace
Package
pi-claude-marketplace
Version
0.10.0
Published
Jul 21, 2026
Downloads
1,831/mo · 323/wk
Author
acolomba
License
MIT
Types
extension
Size
2.2 MB
Dependencies
3 dependencies · 4 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions/pi-claude-marketplace/index.ts"
  ],
  "image": "https://media.githubusercontent.com/media/acolomba/pi-claude-marketplace/refs/heads/main/demos/bootstrap.gif"
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

Pi Claude Marketplace

CI Quality Gate Status Coverage Bugs Code Smells Maintainability Rating Reliability Rating Security Rating GitHub npm pi.dev

Access Claude plugin marketplaces from Pi Coding Agent.

Features

Installs plugins from Claude plugin marketplaces that contain these components:

Plugins that contain unsupported components can be partially installed, but may not function as intended.

Claude marketplaces and plugins are managed via a /claude:plugin command similar to Claude Code's /plugin. A desired-state configuration is kept in [~/].pi/agent/claude-plugins[.local].json files for automated, repeatable plugin installations that may be shared across machines or team members.

Prerequisites

Usage

Install the Pi extension.

pi install npm:pi-claude-marketplace

Bootstrap the official Claude plugin marketplace (anthropics/claude-plugins-official).

/claude:plugin bootstrap

List plugins available for installation.

/claude:plugin list --available

Install a plugin.

/claude:plugin install pr-review-toolkit@claude-plugins-official

Add another marketplace.

/claude:plugin marketplace add upstash/context7

List its plugins.

/claude:plugin list context7-marketplace --available

Add another plugin.

/claude:plugin install context7-plugin@context7-marketplace

Then reload.

/reload

Run a plugin:

/pr-review-toolkit:review-pr

Name mapping

Command and skill names are prefixed with the plugin name. If the command or skill is already prefixed with the plugin name plus -, that common part is elided.

Commands and skill names use Pi's colon form:

Plugin name Command or skill name Pi name
foo bar /foo:bar
foo foo-bar /foo:bar
foo foo /foo:foo

Skills are also registered with hyphenated names after the /skill: prefix:

Plugin name Skill name Pi name
foo bar /skill:foo-bar
foo foo-bar /skill:foo-bar
foo foo /skill:foo

MCP server names are not prefixed or rewritten. The server name is the key from the plugin's mcpServers object. If another MCP config already uses that name, the plugin install or update fails.

Plugin name mcpServers key Pi MCP server name
foo api api
foo foo-api foo-api
bar api conflict if api already exists

Scoping

Marketplaces and plugins can be installed in the user scope or in the current project's scope. The default is user scope.

The user scope is inherited, so it is possible to install a plugin from a user-scope marketplace in the project scope.

It is also possible to install the same plugin in both user and project scopes; the plugin in the user scope takes precedence.

Partially available plugins

Plugins that contain unsupported components, such as an unmappable hook, an LSP server, or a theme, can be partially installed or updated by passing the --partial option. The supported components are installed and the unsupported ones are skipped.

List partially available plugins.

/claude:plugin list --partial

Install a partially available plugin. Placing --partial first enables argument completion for partially available plugins, which are otherwise excluded from completion in absence of that flag.

/claude:plugin install --partial hookify@claude-plugins-official

Configuration files

Each scope stores its declarative marketplace and plugin configuration in claude-plugins.json under the scope root.

Scope File path
user ~/.pi/agent/claude-plugins.json
project <cwd>/.pi/claude-plugins.json

Every mutating command (marketplace add, marketplace remove, marketplace autoupdate, marketplace noautoupdate, install, uninstall, enable, disable, import, bootstrap) records its change into this file. The file is the authoritative record of which marketplaces and plugins are installed. Pi applies its contents at extension load (/reload).

Local configuration files

Each scope can also have a claude-plugins.local.json file alongside the base file.

Scope File path
user ~/.pi/agent/claude-plugins.local.json
project <cwd>/.pi/claude-plugins.local.json

The local file overrides individual entries from the base file: a marketplace or plugin entry in claude-plugins.local.json replaces the same-keyed entry in claude-plugins.json wholesale.

Pass --local to any mutating command to target the local file.

/claude:plugin install context7-plugin@context7-marketplace --local
/claude:plugin marketplace autoupdate context7-marketplace --local

A --local write never touches the base file.

Gitignore convention

In the project scope, commit claude-plugins.json so collaborators install the same marketplaces and plugins, but keep claude-plugins.local.json out of version control. Add the following to your project's .gitignore.

.pi/claude-plugins.local.json

User-scope files live in your home directory; they are personal and never shared.

Command reference

This extension mirrors Claude Code's /plugin command. Use /claude:plugin in Pi for marketplace and plugin operations, then run /reload after installing, uninstalling, updating, or reinstalling plugins so Pi discovers the changed resources.

Marketplace

Add a marketplace from a GitHub repository owner/repo shorthand.

/claude:plugin marketplace add upstash/context7

[!NOTE] Private repositories may trigger a Device Flow authentication if Git is not already authenticated.

Add the same marketplace from a GitHub URL.

/claude:plugin marketplace add https://github.com/upstash/context7-marketplace

Pin a GitHub marketplace to a branch, tag, or commit with a #ref suffix.

/claude:plugin marketplace add https://github.com/upstash/context7-marketplace#v1.0.30

Add a marketplace from the local filesystem. The path may be a directory containing .claude-plugin/marketplace.json or a direct path to a marketplace.json file.

/claude:plugin marketplace add ~/my-marketplace
/claude:plugin marketplace add ~/my-marketplace/.claude-plugin/marketplace.json

Add a marketplace local to the current project with --scope project. The default scope is user.

/claude:plugin marketplace add upstash/context7-marketplace --scope project

List configured marketplaces.

/claude:plugin marketplace list
/claude:plugin marketplace ls

Show details for one marketplace.

/claude:plugin marketplace info context7-marketplace
/claude:plugin marketplace info context7-marketplace --scope user

Update one marketplace, or all marketplaces if a name is omitted.

/claude:plugin marketplace update context7-marketplace
/claude:plugin marketplace update

Remove a marketplace and all plugins installed from it.

/claude:plugin marketplace remove context7-marketplace
/claude:plugin marketplace rm context7-marketplace

Toggle marketplace plugin auto-updates. When the marketplace is updated manually, installed plugins are automatically updated.

/claude:plugin marketplace autoupdate context7-marketplace
/claude:plugin marketplace noautoupdate context7-marketplace

Plugin

List plugins available for installation. Omit the marketplace name to list across configured marketplaces.

/claude:plugin list context7-marketplace --available
/claude:plugin list --available

Filter the list by plugin status, installed, available for installation, partially available (not all features supported), remote (a plugin in a remote repository not yet fetched), or unavailable to install.

/claude:plugin list --installed
/claude:plugin list --available
/claude:plugin list --partial
/claude:plugin list --remote
/claude:plugin list --unavailable

Show details for one plugin.

/claude:plugin info context7-plugin@context7-marketplace

Install a plugin, using the <plugin>@<marketplace> format.

/claude:plugin install context7-plugin@context7-marketplace

Install in the project scope instead of the user scope.

/claude:plugin install context7-plugin@context7-marketplace --scope project

Update one installed plugin, every installed plugin from one marketplace, or all installed plugins.

/claude:plugin update context7-plugin@context7-marketplace
/claude:plugin update @context7-marketplace
/claude:plugin update

[!NOTE] Agent definitions in plugins may include a preferred model for running the agent, e.g. "sonnet", "opus", etc. These are discarded by default, but the --map-model option for install and update can be used to make a best-effort attempt at mapping these models to Pi models.

Reinstall one installed plugin, every installed plugin from one marketplace, or all installed plugins.

/claude:plugin reinstall context7-plugin@context7-marketplace
/claude:plugin reinstall @context7-marketplace
/claude:plugin reinstall

Limit reinstall to one scope with --scope user or --scope project. The flag can appear before or after the target:

/claude:plugin reinstall --scope project
/claude:plugin reinstall @context7-marketplace --scope user

Uninstall a plugin.

/claude:plugin uninstall context7-plugin@context7-marketplace

Reload Pi after changes.

/reload

Remote plugins

Marketplaces can declare remote plugins hosted in a different Git repository. They can be listed with the --remote option.

/claude:plugin list --remote

Repositories of remote plugins are lazily fetched, so /claude:plugin info will not resolve their components. The --fetch option can be passed to fetch the repository of a specific plugin.

/claude:plugin info 2crunch-api-security-testing@claude-plugins-official --fetch

The repository of a specific remote plugin, of all the plugins in a marketplace, or of all remote plugins across all marketplaces can also be be eagerly fetched:

/claude:plugin fetch 2crunch-api-security-testing@claude-plugins-official
/claude:plugin fetch @claude-plugins-official
/claude:plugin fetch

Once fetched, plugins are determined to be available, partially-available or unavailable for installation.

The /claude:plugin install command automatically fetches a remote plugin.

/claude:plugin install 2crunch-api-security-testing@claude-plugins-official

Bootstrap

Bootstrap is a convenience one-shot setup of the official Anthropic marketplace in the user scope with autoupdate enabled.

/claude:plugin bootstrap

This is equivalent to running.

/claude:plugin marketplace add anthropics/claude-plugins-official
/claude:plugin marketplace autoupdate claude-plugins-official

Import

Import is a convenience command to import marketplaces and plugins already defined in Claude Code settings.

/claude:plugin import

By default, marketplaces and plugins are added in accordance to the scope that they're defined in Claude Code. It's also possible to limit the import to a specific scope.

/claude:plugin import --scope user
/claude:plugin import --scope project

Plugins that are not available for installation in Pi because of unsupported components are skipped with a warning.

Contributing

Refer to CONTRIBUTING and CODE_OF_CONDUCT.

AI disclaimer

This project is developed with AI agent engineering practices using the Open GSD spec-driven development system.

The author vibe-coded a prototype until it was feature-complete for a first release, then extracted and reviewed a PRD from the implementation.

The PRD was then used to guide GSD through discussion, planning and implementation phases of a new implementation.

License

This project is licensed under the MIT License. See the COPYING file for details.

Copyright 2026 Alessandro Colomba