Skip to content

yousiki/claude-plugins

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yousiki's Claude Plugins

A personal marketplace of Claude Code plugins.

Language servers, MCP servers, formatter hooks, and room for future plugin kinds such as slash commands and agents. Tool-backed plugins are wrapped in launchers that probe a runtime fallback chain (bunx / uvx and friends), so nothing has to be installed globally on the host.

License: MIT Claude Code Plugins Maintenance

Install  ·  Plugins  ·  Design  ·  Layout  ·  Contributing


Highlights

  • No global installs required. Each plugin launches through a runtime fallback chain — JS/TS via bunxpnpm dlxnpx, Python via uvxpipx run. You only need one runtime from each chain on PATH.
  • On-demand resolution. Packages resolve from the registry at launch time, so there are no pinned global binaries to keep up to date.
  • Broad plugin coverage. Current plugins span language servers, MCP servers, and PostToolUse formatter hooks; the marketplace is structured to add future Claude Code plugin kinds such as slash commands and agents.
  • Metadata-only folders. One folder per plugin — no vendored binaries, no submodules.
  • Personal scope. These are the tools I reach for; expect the roster to drift as my own workflow changes.

Plugins

Grouped by current plugin kind. The roster is 26 plugins across language servers, MCP servers, and formatter hooks; future categories can be added when they become useful. All plugins live under plugins/ and are registered in .claude-plugin/marketplace.json.

Language Servers (11)

Plugin Language Runtime chain Notes
typescript-lsp TypeScript, JavaScript JS/TS typescript-language-server, pulls the typescript peer dep fresh
pyright-lsp Python JS/TS Microsoft Pyright (npm-distributed)
basedpyright-lsp Python Python Stricter community fork of Pyright
ty-lsp Python (beta) Python Astral's Rust-based type checker; pre-1.0, expect churn
biome-lsp JS, TS, JSON JS/TS Biome language server (lint + format diagnostics)
bash-lsp Bash, shell JS/TS bash-language-server; integrates with shellcheck when on PATH
yaml-lsp YAML JS/TS Red Hat yaml-language-server
tombi-lsp TOML Python tombi LSP (chose over Taplo — Taplo's npm pkg lacks the LSP subcommand)
vscode-html-lsp HTML JS/TS vscode-langservers-extracted (HTML binary)
vscode-css-lsp CSS, SCSS, LESS JS/TS vscode-langservers-extracted (CSS binary)
vscode-json-lsp JSON, JSONC JS/TS vscode-langservers-extracted (JSON binary)

MCP Servers (4)

Plugin Purpose Transport
apple-events Native macOS Reminders and Calendar via EventKit (FradSer/mcp-server-apple-events) Local stdio
browseros Drive the local BrowserOS agentic browser (53 browser tools + 40+ app integrations) Local HTTP
context7 Up-to-date library documentation lookup (Upstash Context7) Remote HTTP
deepwiki AI-grounded Q&A over any public GitHub repo's wiki (Devin DeepWiki) Remote HTTP

Hooks — Formatters (11)

Auto-format on PostToolUse of Write / Edit / MultiEdit. Subset variants exist so you can pick only the languages you want formatted.

Plugin Files formatted Runtime chain
ruff-formatter .py Python
biome-formatter .js, .jsx, .ts, .tsx, .json, .jsonc JS/TS
biome-js-formatter .js, .jsx, .ts, .tsx JS/TS
biome-json-formatter .json, .jsonc JS/TS
prettier-formatter All prettier-supported extensions JS/TS
prettier-js-formatter .js, .jsx, .ts, .tsx JS/TS
prettier-json-formatter .json JS/TS
prettier-css-formatter .css, .scss, .less JS/TS
prettier-html-formatter .html, .htm JS/TS
prettier-markdown-formatter .md, .mdx JS/TS
prettier-yaml-formatter .yaml, .yml JS/TS

Additional plugin kinds (slash commands, agents, specialized hooks) may be added as I start using them.

Install

Inside Claude Code:

/plugin marketplace add yousiki/claude-plugins
/plugin install <plugin-name>@yousiki-claude-plugins

For example, to grab the TypeScript language server and the Ruff formatter hook:

/plugin install typescript-lsp@yousiki-claude-plugins
/plugin install ruff-formatter@yousiki-claude-plugins

Each plugin's folder lists the runtime candidates it probes — at least one of them has to be on your PATH. Recommended baseline: bun for the JS/TS chain and uv for the Python chain.

Design

Three rules shared by plugin categories in this marketplace:

  1. No global installs. The launcher script probes a runtime chain and runs the tool on demand. Missing one runtime is fine; missing all of them fails loudly with a clear error.
  2. Fallback by distribution ecosystem, not by language ecosystem. Pyright is a Python tool but ships on npm — so it routes through the JS/TS chain. Basedpyright ships on PyPI — so it uses the Python chain.
  3. Metadata-only plugin folders. plugin.json wires the launcher path; the launcher resolves the binary. Nothing is vendored, nothing is pinned beyond the tool's own versioning.

Formatter hooks additionally follow a graceful-miss contract: if no runtime on the fallback chain is present, the hook exits 0 silently rather than blocking the write. This is intentional — a missing formatter shouldn't break the edit flow.

Repository Layout

.
├── .claude-plugin/
│   └── marketplace.json          # authoritative plugin registry
├── plugins/
│   └── <name>/
│       ├── .claude-plugin/
│       │   └── plugin.json       # plugin metadata
│       ├── scripts/
│       │   └── launch-<name>.sh  # runtime fallback wrapper
│       └── README.md
├── templates/                    # copy-paste scaffolds (not executable)
│   ├── js-ts-tool-plugin/
│   ├── python-tool-plugin/
│   └── formatter-hook-plugin/
├── LICENSE
└── README.md

Contributing

This marketplace is primarily for my own use, and I don't promise any particular support level — but the scaffolding is deliberately general, so feel free to fork and adapt, or open an issue / PR if you spot something broken.

To add a new plugin:

  1. Pick the runtime chain based on how the tool is distributed, not what it analyzes. Rule of thumb: if it ships on npm (like Pyright), use the JS/TS chain; if it ships on PyPI (like Basedpyright), use the Python chain.
  2. Copy the matching template from templates/ into plugins/<name>/ and replace every <placeholder> with the concrete value. Formatter hooks start from templates/formatter-hook-plugin/.
  3. Register the plugin by appending an entry to .claude-plugin/marketplace.json.
  4. Sanity-check the launcher by invoking it directly — and, if you want to confirm the fallback works, try unsetting each runtime in turn (PATH manipulation works) and check the launcher still resolves with any single one present.

License

MIT © yousiki

About

A personal marketplace of Claude Code plugins.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages