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

5.3 KiB

title description type domain tags
Claude Plugins Personal Marketplace 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. reference development
claude-code
plugins
gitea
marketplace

Claude Plugins Personal Marketplace

Repo: cal/claude-plugins on Gitea (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

# 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

{
  "name": "my-plugin",
  "description": "One-line description of what it does.",
  "version": "1.0.0"
}

Command Frontmatter

---
description: "What this command does"
allowed-tools: Bash
---

SKILL.md Frontmatter (legacy)

---
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:

{
  "name": "my-plugin",
  "source": "./plugins/my-plugin",
  "description": "One-line description."
}

Commit and Push

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.com10.10.0.225 as user git)
  • No secrets — repo is public; plugins are just prompt definitions, no credentials
  • Plugins requiring MCP serversbacklog, 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