Skip to content
bravewPublic

About

Open-source plugin marketplace for AI coding assistants — write skills once, ship to Claude Code, Cursor, OpenAI Codex, OpenCode, Gemini CLI, and AGENTS.md hosts.

Resources

Code of conduct

Contributing

Security policy

Stars

10 stars

Watchers

0 watching

Forks

Latest commit

 

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trove

Open-source plugin marketplace for AI coding assistants. Author skills once in Markdown — ship them to Claude Code, Cursor, OpenAI Codex, GitHub Copilot CLI, OpenCode, Gemini CLI, and any tool that reads AGENTS.md.

9 first-party plugins, 65 first-party skills, 7 projection surfaces. Optional MCP connector metadata lives on the role plugins until a curated third-party entry projects as a real installable plugin.

Install

# Claude Code
/plugin marketplace add bravew/trove
/plugin install trove-dev@trove
/plugin install trove-workflow@trove

# Cursor
cursor plugin marketplace add bravew/trove
cursor plugin install trove-dev@trove
cursor plugin install trove-workflow@trove

# GitHub Copilot CLI
copilot plugin marketplace add bravew/trove
copilot plugin install trove-dev@trove
copilot plugin install trove-workflow@trove

# Universal — clones, auto-detects supported local installers
git clone https://github.com/bravew/trove.git ~/.trove
cd ~/.trove && ./setup

The universal setup script installs to Claude Code, Cursor, Codex, GitHub Copilot CLI, OpenCode, and Gemini CLI. Pass repeated --host claude / --host cursor / --host codex / --host copilot / --host opencode / --host gemini flags to scope, or --role dev / --role design / --role pm to select Copilot plugins by role. Use --host agents for the generic AGENTS.md output. Setup records the links, Copilot plugins, and marketplace registration it creates; existing user entries are never claimed, and ./setup --uninstall reverses only owned state.

Upgrade

Match the upgrade command to how you installed:

# Claude Code marketplace install — open /plugin and pick Update from
# the menu, or force a fresh fetch by removing and re-adding:
/plugin marketplace remove trove
/plugin marketplace add bravew/trove
/plugin install trove-dev@trove
/plugin install trove-workflow@trove   # repeat for other enabled plugins

# Cursor marketplace install — open the Plugins panel and Update,
# or remove + re-add via `cursor plugin marketplace add bravew/trove`.

# GitHub Copilot CLI
copilot plugin marketplace update trove
copilot plugin update trove-dev@trove
copilot plugin update trove-workflow@trove

# Universal ./setup clone (recommended for most users)
cd ~/.trove && git pull && ./setup
# or, equivalently, the install-aware upgrader:
./bin/trove upgrade                         # interactive; --check for dry-run
./bin/trove doctor                          # read-only health check

trove upgrade detects the install type (git-backed clone vs. vendored copy) and refuses to act when uncertain — see docs/self-upgrade.md. Setup leaves user-authored host entries alone and records the state it owns under ~/.trove/.

Plugins

Plugin For What you get
trove-dev Engineers Python, React, Vue, Swift, Lambda — plus review, commit, and explain workflows
trove-workflow Engineers Session bootstrap, skill discipline, brainstorm, plan, debug, dispatch, verify, worktree, and skill-authoring workflows
trove-design Designers Component specs, accessibility checks, design review
trove-product PMs Specs, user stories, release notes
trove-security All Security review, secret scanning, OWASP / STRIDE patterns
trove-infra DevOps Terraform, AWS CDK, Docker patterns
trove-research PMs and engineers Last-30-days pulse across global and Chinese social platforms
trove-doc Note authors and researchers Obsidian Markdown, Bases, JSON Canvas, vault operations, and web clipping
trove-media Developers, designers, and PMs Media editing, product promos, shot recipes, beat sync, and delivery review

Optional MCP connector metadata lives on role plugins such as trove-design, trove-product, and trove-security. Curated external plugins are added only when they project as installable marketplace entries.

Platforms

Platform Skills Hooks Agents MCP Marketplace
Claude Code ✅ ✅ ✅ ✅ native
Cursor ✅ native skills + scoped rules partial subagents ✅ native
OpenAI Codex ✅ — — ✅ native
OpenCode ✅ bootstrap plugin — — ~/.config/opencode/skills
Gemini CLI ✅ via extension bootstrap context — ✅ via extension ~/.gemini/extensions
GitHub Copilot CLI ✅ native plugin skills local command hooks; interactive prompt hooks ✅ ✅ native
Windsurf / Aider / Junie AGENTS.md fallback — — — manual

Full feature matrix in docs/cross-platform.md; discovery roots, honored frontmatter, and the source and date each was verified against in docs/host-matrix.md.

What's a skill?

A skill is a Markdown file with frontmatter that an AI assistant loads as context when relevant. Authors edit one canonical template; the build projects it into each platform's native format.

---
name: trove-python
description: Python/FastAPI conventions — async, type hints, Pydantic, logging.
preamble-tier: 2
activation:
  globs: ["**/*.py"]
triggers:
  - python conventions
  - fastapi patterns
---

{{PREAMBLE}}

# Python / FastAPI Conventions
…

Skills can auto-attach by file glob, auto-trigger by natural-language phrasing, or be manually invoked. See docs/skill-authoring.md.

Develop

bun install
bun run build                # 5-stage pipeline: skills → plugins → marketplace → routing → deps
bun run validate             # frontmatter, naming, hooks, MCP, secret scan
bun run dev                  # watch mode

# Scaffold
bun run scaffold:plugin -- --name trove-testing --role dev
bun run scaffold:skill -- --plugin trove-dev --name trove-debug

# Browse the catalog
./bin/trove search "security"
./bin/trove list --role=dev
./bin/trove info trove-dev

# Local install / health / upgrade
./bin/trove doctor        # read-only diagnostic
./bin/trove upgrade       # detection-first upgrade (git-backed vs vendored)
./bin/trove config list   # ~/.trove/config.yaml — local prefs

Test a change locally

Verify the artifacts first — no host required:

bun run build
bun run validate
bun test
bun run verify:generated          # rebuild + fail if a committed artifact was stale
bun run validate:claude-manifests # claude plugin validate --strict, every plugin

verify:generated is the gate CI blocks on: it catches a .tmpl edit whose generated output was never committed.

Then install the marketplace from the checkout itself — every host takes an absolute path where it takes a GitHub slug:

/plugin marketplace add /abs/path/to/trove     # Claude Code; then /plugin install trove-dev@trove
cursor  plugin marketplace add /abs/path/to/trove
copilot plugin marketplace add /abs/path/to/trove   # reads .github/plugin/marketplace.json
./setup --host claude --role dev               # symlink installer for hosts without a marketplace
./setup --uninstall                            # reverses only what setup created

After a rebuild, /plugin marketplace update trove re-reads the regenerated manifest. To keep a live config untouched, point the host at a throwaway config dir first — CLAUDE_CONFIG_DIR=/tmp/trove-test claude — and add the marketplace inside that session.

Behavior and install-layout checks:

bun run test:acceptance:artifacts  # deterministic bootstrap-anchor artifacts
bun run test:acceptance:setup      # installer link layout in a disposable HOME
bun run test:acceptance:copilot    # copilot install smoke
RUN_CLAUDE_ACCEPTANCE_LIVE=1 bun run test:acceptance claude   # live host evidence

Skill quality runs through bun run eval:changed (needs ANTHROPIC_API_KEY; falls back to a structure-only check without one). See docs/bootstrap.md for the acceptance harness and docs/eval-system.md for rubrics.

Tech stack: Bun ≥1.0 runtime, TypeScript, YAML manifests, @anthropic-ai/sdk for LLM-as-judge evals. Zero non-stdlib dependencies in the CLI surface.

Architecture

skills/<category>/<skill>/SKILL.md.tmpl   ─┐
plugins/<plugin>/plugin.yaml              ─┼─►  bun run build  ─►  per-platform output
marketplace.yaml                          ─┘
                                                                  ├─ Claude Code:  in-place SKILL.md, .claude-plugin/marketplace.json
                                                                  ├─ Cursor:       output/cursor/.agents/skills/<skill>/SKILL.md + filtered rules
                                                                  ├─ Codex:        output/codex/.agents/skills/<skill>/SKILL.md
                                                                  ├─ Copilot CLI:  plugins/<plugin>/{.plugin,.copilot}/ + .github/plugin/marketplace.json
                                                                  ├─ OpenCode:     output/opencode/.agents/skills + plugins/<plugin>/index.ts
                                                                  ├─ Gemini CLI:   output/gemini/.agents/skills + plugins/<plugin>/{skills,GEMINI.md}
                                                                  └─ AGENTS.md:    output/agents/AGENTS.md + per-plugin scoped files

Each host adapter (hosts/<name>.ts) declares its projection kinds and its frontmatter projection profile. Adding a new platform = one new host file + one entry in hosts/index.ts. See docs/cross-platform.md.

Release model

The release flow is automated on merge to main — don't hand-bump VERSION in feature branches.

PR → main           feature work, no VERSION bump, no CHANGELOG header
   │
   ▼ merge
release.yml         build → validate → eval:gate → bump-version → tag → force-push canary
   │
   ▼ 48h soak
canary              early adopters; auto-update for users tracking canary
   │
   ▼ bun run promote-stable
stable              promoted manually after soak passes

Calendar-versioned (YYYY.M.D). The release.yml workflow owns VERSION, the tag, and the canary push. See docs/contributing.md.

Documentation

Get started

Author

Cross-cutting

Inspired by

Trove's committed-distribution-artifact layout (marketplace catalogs and per-plugin bundles checked into the repo, read directly by clients with no build step) follows the pattern used by anthropics/claude-code's plugin marketplace support and anthropics/claude-plugins-official. The bundled trove-react-best-practices skill is adapted from vercel-labs/agent-skills under its original MIT license, with attribution preserved in the skill's frontmatter (metadata.source).

License

MIT

About

Open-source plugin marketplace for AI coding assistants — write skills once, ship to Claude Code, Cursor, OpenAI Codex, OpenCode, Gemini CLI, and AGENTS.md hosts.

Resources

Code of conduct

Contributing

Security policy

Stars

10 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages