内容
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/lockup-dark.png">
<img src="docs/assets/lockup.png" alt="Greenfield Labs" width="420">
</picture>
</p>
<h1 align="center">Greenfield Labs 插件市场</h1>
<p align="center"><em>Greenfield Labs 为 Claude Code 提供的插件市场 - 一个安装、更新和分享团队生产力工具的地方。</em></p>
<p align="center">
<a href="https://github.com/gf-labs/gfl-marketplace/actions/workflows/validate.yml"><img src="https://github.com/gf-labs/gfl-marketplace/actions/workflows/validate.yml/badge.svg" alt="validate"></a>
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-21A64A?style=flat-square" alt="license"></a>
<img src="https://img.shields.io/badge/Claude_Code-marketplace-d97757?style=flat-square&logo=anthropic&logoColor=white" alt="Claude Code marketplace">
<img src="https://img.shields.io/badge/plugins-2-6366f1?style=flat-square" alt="plugins">
</p>
<p align="center">由 <a href="https://github.com/berniegreen">Bernie Green</a> · <a href="https://github.com/gf-labs">Greenfield Labs</a> 构建</p>
---
## 为什么存在
Claude Code 的强大功能来自于其扩展点 - 斜杠命令、钩子、子代理、MCP 服务器。但一个聪明的命令只有在其他开发人员的 `~/.claude/` 目录中时,才能成为团队的能力,当有一种方法可以分发它时:以相同的方式在每个地方安装它,一步更新它,并相信每个人都在运行相同的版本。
这种分发渠道是一个**市场**。`gfl-marketplace` 是 Greenfield Labs 目录 - 一个单一的源,您只需注册一次,然后每个 GFL 插件都只需一个命令即可安装。
### 什么是 Claude Code 市场
- **是什么** - 一个小的清单(`marketplace.json`),列出插件以及在哪里获取每个插件。插件代码不存储在此;它是一个纯粹的目录。
- **为什么** - 这样整个团队可以一致地安装、固定和更新插件,而不是手动复制文件。
- **如何** - 您只需注册一次市场,然后运行 `/plugin install <name>@gfl-marketplace` 即可。在安装时,Claude Code 将每个插件的源存储库克隆到其本地缓存中。
```mermaid
flowchart TD
A["注册一次 - /plugin marketplace add gf-labs/gfl-marketplace"] --> B["Claude Code 从 GitHub 获取 marketplace.json"]
B --> C["/plugin install ramp@gfl-marketplace"]
C --> D["从目录中解析插件的 source.url"]
D --> E["将该存储库克隆到本地插件缓存中"]
E --> F["插件激活 - 其技能、钩子和代理加载"]
```
---
## 插件
| 插件 | 安装 | 功能 |
|--------|---------|--------------|
| **[`ramp`](https://github.com/gf-labs/ramp)** | `/plugin install ramp@gfl-marketplace` | 自适应、基于存储库的学习模式 - 知识图、间隔重复和被动技能观察器。适用于工程师入职 Claude Code 和您的代码库。 |
| **[`tools`](https://github.com/gf-labs/claude-toolbox)** | `/plugin install tools@gfl-marketplace` | 会话生命周期管理 - 定位、检查点、结账和存档。保持上下文清洁,线程在会话之间不断开。(存储库:`claude-toolbox`。) |
---
## 安装
注册市场一次,然后安装您需要的任何插件:
```text
/plugin marketplace add gf-labs/gfl-marketplace
/plugin install ramp@gfl-marketplace
/plugin install tools@gfl-marketplace
```
您是否更喜欢声明式、版本受控的设置?请将以下内容合并到 `~/.claude/settings.json` 中(在您已有的任何密钥旁边添加):
```json
"extraKnownMarketplaces": {
"gfl-marketplace": {
"source": { "source": "github", "repo": "gf-labs/gfl-marketplace" }
}
}
```
无需本地克隆 - Claude Code 从 GitHub 获取目录。您可以在任何时候使用 `/plugin marketplace update gfl-marketplace` 刷新它。
> 一些插件有自己的先决条件 - 例如,`tools` 需要设置 `CLAUDE_TOOLBOX_ROOT` 环境变量(本地克隆加上 `settings.json` 中的一行),在其命令运行之前 - 请参阅 [其 README](https://github.com/gf-labs/claude-toolbox)。每个插件的 README 都涵盖了其特定内容。
---
## 故障排除
| 症状 | 可能原因 | 解决方法 |
|---------|--------------|-----|
| `/plugin install` 失败,提示 `could not read Username` 或克隆/身份验证错误 | 插件的源存储库是私有的,或者 git 没有 GitHub HTTPS 凭证 | 源存储库必须是公开的,或者您必须具有访问权限。如果您的 `gh` 仅限 SSH,请运行 `gh auth setup-git`,以便 git 可以使用您的令牌通过 HTTPS 克隆。 |
| 插件代码更改未显示 | 安装按版本缓存 | 在其 `plugin.json` 中增加插件的 `version`,推送,然后重新安装。`/reload-plugins` 仅适用于会话内的小编辑 - 它不会从 GitHub 拉取新代码。 |
| 目录看起来已过时 - 例如,新添加的插件丢失 | 您的市场本地副本已缓存 | 使用 `/plugin marketplace update gfl-marketplace` 刷新它。 |
| `/tools:*` 命令出错或安装后立即无响应 | `tools` 需要其 `CLAUDE_TOOLBOX_ROOT` 环境变量设置 | 按照 [`claude-toolbox`](https://github.com/gf-labs/claude-toolbox) 的 README 中的一次性设置 - 本地克隆加上 `settings.json` 中的一行。 |
---
## 贡献插件
将插件添加到目录中是单个文件的四步更改:
1. 确保插件存储库具有有效的 `.claude-plugin/plugin.json`。
2. 将其推送到 GitHub。
3. 在 [`.claude-plugin/marketplace.json`](.claude-plugin/marketplace.json) 中添加一个条目,其中包含存储库的 HTTPS `.git` URL。
4. `/plugin install your-plugin@gfl-marketplace`。
目录条目如下所示:
```json
{
"name": "your-plugin",
"description": "一行描述其功能",
"source": { "source": "url", "url": "https://github.com/gf-labs/your-plugin.git" },
"category": "productivity",
"author": { "name": "您的姓名" }
}
```
**房屋约定** - 一个刻意严格的官方模式子集,[`scripts/validate-marketplace.py`](scripts/validate-marketplace.py) 在 CI 中强制执行,以便目录和这些文档不会漂移:
- **`$schema` 存在。** 官方模式将其视为可选(Claude Code 在加载时忽略它);我们要求它,以便编辑器获得自动补全。值是一个*标识符*,不是可检索的 URL - 它按设计为 404。
- **顶级 `description`。** 模式还接受它在 `metadata` 中以兼容旧版;我们将其保留在顶级。
- **HTTPS `github.com` `.git` `url` 源。** 模式更广泛 - 它还允许 `github` (`owner/repo`)、`git-subdir` 和 `npm` 源,并且 `url` 接受 SSH 和裸 URL - 但此目录标准化为一种形式。
- **`sha` (可选)固定插件到提交。** 我们跟踪每个插件的默认分支;添加 `sha` 以实现可复制的固定安装。
---
## 本地开发
**目录更改是实时的。** 当此存储库注册为本地 `directory` 源时,Claude Code 每会话都会从磁盘读取 `marketplace.json` - 无需推送即可生效 manifest 编辑。(当注册为 `github` 源时,请先推送到 GitHub。)
**插件*代码*更改使用 `--plugin-dir`。** 要实时开发插件,请绕过市场,直接从其存储库加载:
```bash
claude --plugin-dir path/to/ramp # 实时开发 ramp
claude --plugin-dir path/to/claude-toolbox # 实时开发 tools
```
要通过安装(缓存)的路径捕获代码更改,请在插件的 `plugin.json` 中增加版本号,推送并重新安装。`/reload-plugins` 重新加载活动插件以进行小型会话内编辑,但不会从 GitHub 拉取新代码 - 对于实际的插件工作,请优先使用 `--plugin-dir`。
---
## 关于 Greenfield Labs
Greenfield Labs 构建适用于 Claude Code 的开发者工具,遵循单一的主线:**工具应该使团队明显更高效,而不仅仅是更忙碌。** 此目录中的两个插件都旨在阅读和运行 - 每个插件都是 Claude Code 扩展模型的某个切片的示例,从斜杠命令和钩子到子代理和 MCP 服务器。
---
## 鸣谢
基于 [Claude Code](https://claude.com/claude-code) 和 [Claude Code 插件系统](https://code.claude.com/docs/en/plugins) 由 Anthropic 构建。市场清单遵循 [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official) 中发布的模式。
---
## 许可证
[MIT](./LICENSE) © 2026 Greenfield Labs