152 lines
5.3 KiB
Markdown
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
|