guild
Scaffold and manage Claude Code plugin marketplaces.
guild is an opinionated CLI that creates, validates, and builds plugin marketplace repositories for Claude Code. It pairs with psclaude which consumes the marketplaces guild produces.
Install
pip install jaymd96-guild
Quick Start
# Create a new marketplace
guild init my-marketplace --owner "Your Name"
cd my-marketplace
# Add plugins
guild add code-review --description "Automated code review"
guild add test-generator --description "Generate test cases"
# Edit the generated files
$EDITOR plugins/code-review/CLAUDE.md
$EDITOR plugins/code-review/skills/
# Build marketplace.json (regenerated from source)
guild build
# Validate everything
guild validate
Commands
| Command | Description |
|---|---|
guild init [path] |
Scaffold a new marketplace repo |
guild add <name> |
Create a new local plugin |
guild remove <name> |
Remove a local plugin |
guild build |
Regenerate marketplace.json and README |
guild validate |
Check structure and conventions |
guild list |
Show all plugins (local + external) |
guild version <plugin> <ver> |
Set a plugin's version |
Marketplace Structure
my-marketplace/
├── guild.toml # Source of truth for config
├── marketplace.json # Generated — never hand-edit
├── README.md # Generated — plugin catalogue
├── .github/workflows/
│ ├── validate.yml # PR gate
│ └── release.yml # Tag → GitHub release
└── plugins/
└── code-review/
├── plugin.toml # Name, version, description
├── CLAUDE.md # Instructions for Claude
└── skills/
└── review.md # Skill prompt
Opinions
marketplace.jsonis generated — editguild.tomlandplugin.toml, not the output- Local-first — plugins live in the repo by default; external sources are the escape hatch
- One plugin, one directory — no nesting, no sharing skills between plugins
- Kebab-case names — derived from directory name, enforced by validation
- Every plugin has a CLAUDE.md — instructions are mandatory, not optional
- Skills are markdown —
.mdfiles only, no subdirectories - Versions are explicit — every plugin declares a version in
plugin.toml - External sources in
guild.toml— one place to audit dependencies - Validation is structural — checks conventions, not content quality
- CI included — GitHub Actions workflows ship with every new marketplace
External Plugins
Register plugins from GitHub, npm, pip, or any git URL in guild.toml:
[marketplace]
name = "my-tools"
owner = "James"
[external.deploy-helper]
source = "github"
repo = "acme/deploy-helper"
ref = "v2.1.0"
[external.linter]
source = "npm"
package = "@acme/claude-linter"
version = "^1.0"
Consuming with psclaude
from psclaude import PsClaude
client = PsClaude(
marketplaces=["jaymd96/my-marketplace"],
install=["code-review@my-marketplace"],
)
License
MIT
Metadata
Release files for jaymd96-guild 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jaymd96_guild-0.1.1.tar.gz | 39.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jaymd96_guild-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 68.4 kB
Release files / jaymd96_guild-0.1.1.tar.gz
| Download URL | jaymd96_guild-0.1.1.tar.gz |
|---|---|
| Size | 39.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c728f878df5e285ff1c4c33f234761c40ca5ef9c97163dcf94348cc68ae39c30
|
|
BLAKE2b-256 checksum How to use checksums |
38c57eb2bbff12adbe4601847514a8d80c14716909bc82652d4b1f17b66402cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.13.12 HTTPX/0.28.1
|
Release files / jaymd96_guild-0.1.1-py3-none-any.whl
| Download URL | jaymd96_guild-0.1.1-py3-none-any.whl |
|---|---|
| Size | 29.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
541bebfa9acb3321ea2c8d125bc1fd1af387f9a4609a93ad86d458029e021a35
|
|
BLAKE2b-256 checksum How to use checksums |
fa885a66324566265492c0694563a5570928af572b10813c519d9ee67e147516
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.13.12 HTTPX/0.28.1
|