claude-home/development/claude-plugins-marketplace.md
Cal Corum 730f100619
All checks were successful
Reindex Knowledge Base / reindex (push) Successful in 4s
docs: sync KB — claude-plugins-marketplace.md
2026-03-19 16:00:43 -05:00

152 lines
5.3 KiB
Markdown

---
title: "Claude Plugins Personal Marketplace"
description: "Reference for the cal/claude-plugins Gitea repo — personal Claude Code plugin marketplace with 20 plugins (10 agents, 10 skills), including installation, adding new plugins, and maintenance."
type: reference
domain: development
tags: [claude-code, plugins, gitea, marketplace]
---
# Claude Plugins Personal Marketplace
**Repo:** `cal/claude-plugins` on Gitea ([https://git.manticorum.com/cal/claude-plugins](https://git.manticorum.com/cal/claude-plugins))
**Local clone:** `/mnt/NV2/Development/claude-plugins/`
**License:** AGPL-3.0
## What It Is
A self-hosted Claude Code plugin marketplace containing 20 plugins (10 agents, 10 skills) extracted from local `~/.claude/` definitions. Registered via `claude plugin marketplace add https://git.manticorum.com/cal/claude-plugins.git` (stored in `~/.claude/settings.json` under `extraKnownMarketplaces`).
## Plugin Inventory
### Agents (10)
| Name | Description |
|------|-------------|
| architect | PRD creation, system design, technical specs |
| claude-researcher | Web research with multi-query decomposition |
| designer | UX/UI design review, visual design, accessibility |
| engineer | Code implementation, debugging, optimization, testing |
| issue-worker | Autonomous Gitea issue fixer — creates PRs |
| pentester | Penetration testing and vulnerability assessments |
| pr-reviewer | Automated Gitea PR reviewer |
| swarm-coder | Implementation agent for orchestrated swarms |
| swarm-reviewer | Code reviewer for orchestrated swarms |
| swarm-validator | Spec validator for orchestrated swarms |
### Skills (10)
| Name | Description |
|------|-------------|
| backlog | Surface next Gitea issue or TODO to work on |
| create-scheduled-task | Manage headless Claude scheduled tasks on systemd timers |
| json-pretty | JSON prettifier CLI tool |
| optimise-claude | Guide for writing effective CLAUDE.md files |
| playwright-cli | Browser automation for testing and screenshots |
| project-plan | Generate PROJECT_PLAN.json for task tracking |
| resume-tailoring | Tailored resume generation with company research |
| save-doc | Save documentation to KB with proper frontmatter |
| youtube-transcriber | Transcribe YouTube videos via OpenAI GPT-4o-transcribe |
| z-image | Local GPU image generation with Z-Image Turbo |
## Installation
```bash
# Marketplace is already registered. To install a plugin:
claude plugin install <name>@cal-claude-plugins --scope user
# Enable/disable:
claude plugin enable <name>@cal-claude-plugins
claude plugin disable <name>@cal-claude-plugins
# Update marketplace cache (pulls latest from Gitea):
claude plugin marketplace update cal-claude-plugins
```
## Adding a New Plugin
### Directory Structure
Each plugin lives under `plugins/<name>/` with this layout:
```
plugins/<name>/
.claude-plugin/
plugin.json # name, description, version
commands/ # user-facing slash commands (preferred)
<verb>.md # shows as /plugin-name:verb in autocomplete
skills/<verb>/ # alternative to commands (legacy)
SKILL.md # skill definition with frontmatter
scripts/ # helper scripts referenced by commands/skills
tool.py
agents/ # for agent plugins
<name>.md # agent definition
```
### Commands vs Skills
**Commands** (`.md` files in `commands/`) are preferred for user-facing slash commands. They appear in autocomplete as `/plugin-name:command-name`, giving a clean grouped prefix (e.g., `/json-pretty:format`).
**Skills** (`SKILL.md` in `skills/<name>/`) are the older pattern. They work but don't group as cleanly in autocomplete.
Commands reference scripts via `${CLAUDE_PLUGIN_ROOT}/scripts/` — no symlinks needed.
### plugin.json
```json
{
"name": "my-plugin",
"description": "One-line description of what it does.",
"version": "1.0.0"
}
```
### Command Frontmatter
```yaml
---
description: "What this command does"
allowed-tools: Bash
---
```
### SKILL.md Frontmatter (legacy)
```yaml
---
allowed-tools: Read,Write,Edit,Glob,Grep,Bash
description: What this skill does
user-invocable: true
---
```
### Register in marketplace.json
Add an entry to `.claude-plugin/marketplace.json` in the `plugins` array:
```json
{
"name": "my-plugin",
"source": "./plugins/my-plugin",
"description": "One-line description."
}
```
### Commit and Push
```bash
cd /mnt/NV2/Development/claude-plugins
git add plugins/my-plugin .claude-plugin/marketplace.json
git commit -m "feat: add my-plugin skill"
git push origin main
```
Then update the cache: `claude plugin marketplace update cal-claude-plugins`
## Important Notes
- **Commands use `${CLAUDE_PLUGIN_ROOT}`** — reference scripts via `${CLAUDE_PLUGIN_ROOT}/scripts/` instead of absolute paths or symlinks
- **SSH remote** — uses `git@git.manticorum.com:cal/claude-plugins.git` via SSH config alias (`~/.ssh/config` maps `git.manticorum.com``10.10.0.225` as user `git`)
- **No secrets** — repo is public; plugins are just prompt definitions, no credentials
- **Plugins requiring MCP servers** — `backlog`, `issue-worker`, and `pr-reviewer` require `gitea-mcp`; they install fine without it but those tool calls won't execute
- **sync-kb does NOT apply here** — this is a standalone repo, not part of claude-home. Changes require manual commit/push