dsh-plugin-shop 详细部署教程

dsh-plugin-shop 是 DeepSeek Harness 的官方插件市场,它提供了一个可浏览、可审计的插件目录,让你能够轻松发现、安装、启用和更新各类插件。

本文将介绍两种主要的部署和使用方式:面向普通用户的快速安装面向开发者的本地部署


一、 什么是 dsh-plugin-shop?

在开始之前,请先理解它的核心机制:

  • 它不是传统的“应用商店”:它没有自己的数据库或后台。它的工作方式是每天自动扫描整个 npm 仓库和 GitHub,寻找所有标记了 dsh-plugindeepseek-harness 关键词的包和仓库,然后将其整理成一个可读的目录。
  • 严格筛选,但非人工审核:每个候选插件都会经过一套机械化的门禁测试(如是否有许可证、是否可安装、是否有描述等),通过者才会被收录。请注意,这并不意味着官方安全背书。安装一个插件意味着你完全信任其作者,因为它可以访问你的文件系统和 shell。

二、 准备工作

在使用插件市场之前,请确保已经准备好:

  1. Node.js 环境:需要安装 Node.js(建议 LTS 版本)。

  2. 安装 DeepSeek Harness:你需要有 dsh 命令行工具。如果没有,可以通过以下命令全局安装:

    1
    npm install -g @deepseek-ai/dsh pnpm

    安装后,用 dsh --versionpnpm --version 验证是否成功。

  3. 一个 DeepSeek Harness 配置文件 (Profile):如果你还没有创建,可以先运行 dsh web 启动 Web 界面,它会引导你完成初始设置,或者通过 dsh init 命令创建。


三、 方式一:快速安装插件市场(面向用户)

这是在你本地的 DeepSeek Harness 环境中启用插件市场的最快捷方式。

核心命令:在你的终端中执行以下命令之一。

重要提示:命令中的 @0.8.0 是安装时的版本号。为了确保确定性安装,强烈建议指定具体版本,而不是使用 latest。你可以在项目的 GitHub Releases 或通过 npm view dsh-plugin-shop version 查看最新稳定版本号。

方法一:如果 dsh 命令已在 PATH 中

1
2
# 将插件市场添加到名为 'web' 的配置文件中
dsh plugin --profile web add dsh-plugin-shop@0.8.0

请将 web 替换为你实际使用的 profile 名称(可通过 ls ~/.dsh/profiles/ 查看)。

方法二:通过 npx 直接运行(无需全局安装 dsh)

1
npx -y @deepseek-ai/dsh plugin --profile web add dsh-plugin-shop@0.8.0

安装成功后,请重启 dsh 进程(新添加的插件包不会在运行中的进程里生效)。然后,在 DeepSeek Harness 的 Web 界面中,进入 设置 (Settings) → 插件 (Plugins),你应该能看到 Plugin shop 标签页。

对于 AI 代理或脚本(非交互式安装)

如果你需要在脚本中自动安装,必须明确指定 --profile 参数:

1
2
3
4
5
6
7
8
9
10
11
12
# 1. 列出所有可用的 profile 名称
ls -1 "${DSH_HOME:-$HOME/.dsh}/profiles" | grep -v '^node_modules$'

# 2. 安装到指定的 profile
dsh plugin --profile <你的profile名称> add dsh-plugin-shop@0.8.0

# 3. 验证是否安装成功
dsh plugin --profile <你的profile名称> list --depth 0
# 输出中应包含 dsh-plugin-shop

# 4. 重启该 profile 使插件生效
dsh --profile <你的profile名称>

四、 方式二:本地开发与源码构建(面向开发者)

如果你想为插件市场贡献代码,或需要在本地调试,可以按照以下步骤从源码构建。

第一步:克隆项目

1
2
git clone https://github.com/LivXue/dsh-plugin-shop.git
cd dsh-plugin-shop

第二步:安装依赖
项目使用 pnpm 作为包管理器。如果你没有安装,先全局安装:

1
npm install -g pnpm

然后安装项目依赖:

1
pnpm install

第三步:运行测试与类型检查

1
2
3
4
5
# 运行单元测试
pnpm test

# 运行 TypeScript 类型检查
pnpm typecheck

第四步:构建本地插件市场包
构建出的包可以用于本地测试,或发布到 npm。

1
2
# 构建 catalog(目录数据)和 client(客户端)
pnpm build:catalog

第五步:在本地环境中测试
你可以将构建好的包通过 dsh plugin add /本地路径 的方式安装到你的 DeepSeek Harness 中进行测试。


五、 核心目录与配置说明

了解项目结构有助于更好地使用和排查问题:

  • registry/:这是插件的目录生成管道。它包含了从 npm/GitHub 收割数据、执行门禁测试、生成最终 JSON 目录的全部逻辑。
  • registry/verified.yml人工审核记录。目前此文件为空,表示所有插件均为社区层级的未审核状态。
  • registry/denied.yml拒绝列表。记录了被机械门禁拒绝的包及其原因。
  • packages/dsh-plugin-shop/:这是实际发布的 npm 包的源码,包含在 Harness 设置界面中显示商店的客户端逻辑。
  • docs/design/:项目的详细设计文档,是了解其架构的权威来源。

六、 如何让自己的插件被收录?

如果你开发了一个插件并希望它出现在市场中,只需在 package.json 中添加相应的关键词并发布到 npm,或者将 GitHub 仓库添加为话题(Topic)。

  1. 发布到 npm:在你的 package.json 文件的 keywords 数组中添加 "dsh-plugin""deepseek-harness",然后发布到 npm。
  2. 仅存在于 GitHub:如果你的插件只托管在 GitHub 上,请在该仓库的 Topics 中添加相同的关键词(dsh-plugindeepseek-harness),并确保根目录有一个包含 namedsh.bundle 字段的 package.json 文件。

每日构建会自动抓取并处理。你还可以通过可选的 dsh.catalog 字段在 package.json 中自定义插件的分类、摘要和能力标签。

1
2
3
4
5
6
7
8
9
10
11
12
{
"name": "my-awesome-plugin",
"keywords": ["dsh-plugin"],
"dsh": {
"bundle": { "patch": "./my-plugin.yml" },
"catalog": {
"category": "tool", // 可选: tool, workflow, knowledge 等
"summary": { "en": "Does something cool", "zh": "做一些很酷的事" },
"capabilities": ["fs", "shell"] // 声明能力
}
}
}

七、 重要安全提示与注意事项

  • 安装插件即意味着完全信任:DeepSeek Harness 的插件拥有 ctx 的全部权限,可以读写你的文件、执行 shell 命令、操纵模型请求。本插件市场仅提供发现和过滤功能,并不提供任何形式的沙盒隔离。 在安装前,请务必审查插件源码。
  • “已审核”标签的意义:目前(registry/verified.yml 为空),所有插件都是“社区层”的,安装时会要求你明确确认。
  • 版本固定:插件市场的版本(如 @0.8.0)是固定的。一个版本通过审核后,作者不能恶意更新同版本号的内容,这提供了一层保护。
  • 安装失败排查:如果安装失败,检查 dsh plugin --profile <name> list --depth 0 命令的输出,或查看 ~/.dsh/profiles/<name>/package.json 文件中 dsh.profile.bundles 字段下的记录。

请务必在完全理解安全风险的前提下,负责任地使用此插件市场。如果遇到项目本身的问题,可以在其 GitHub Issues 页面反馈。