DeepSeek Harness 插件与智能体配置档包索引——一条命令装好 dsh-plugin
40.8/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/Sunrisepeak/dsh-index.git按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · market
装得上吗
作者未把包发布到 npm,只能用源码安装
插件本身没问题,是分发方式不同
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 1 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-index(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 08:45:01
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 包内无可扫 JS
- · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/3(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 插件与配置档索引
- 一条命令安装
README
由 DeepSeek 最新模型翻译生成dsh-index
Agent = dsh + 一组插件。 本索引同时浏览与分发这两者 —— DeepSeek Harness 生态的插件,以及由它们组装成的完整 Agent。
站点:<https://sunrisepeak.github.io/dsh-index>
这个项目是什么
1 · 生态浏览站。 收录值得装的 dsh 插件,可搜索,标明它做什么、字节从哪来,以及生态随时间的增长曲线。
2 · 一条命令安装,两条路可选。 dsh 自己就能装插件,所以每个插件页先给出它的原生命令;本索引的命令排在下面,补上 dsh 给不了的东西:sha256 校验与 CN 镜像。
3 · Agent 的分发渠道。 Agent = dsh + 一组插件 —— 在 dsh 自己的模型里就是一个 profile。这里每个 Agent 是一个 xpkg 描述文件,xlings install 会解析成员、装齐、写好 profile,并注册一个以包名命名的命令。
一次安装,一个词就能跑:
xlings install dsh:agent-web-coding -y → agent-web-coding
profile 名同样是包名,所以 dsh --profile agent-web-coding 是同一件事的长写法。
展开完整文档(README 剩余 1 节)
dsh-index
Agent = dsh + 一组插件。 本索引同时浏览与分发这两者 —— DeepSeek Harness 生态的插件,以及由它们组装成的完整 Agent。
站点:<https://sunrisepeak.github.io/dsh-index>
这个项目是什么
1 · 生态浏览站。 收录值得装的 dsh 插件,可搜索,标明它做什么、字节从哪来,以及生态随时间的增长曲线。
2 · 一条命令安装,两条路可选。 dsh 自己就能装插件,所以每个插件页先给出它的原生命令;本索引的命令排在下面,补上 dsh 给不了的东西:sha256 校验与 CN 镜像。
3 · Agent 的分发渠道。 Agent = dsh + 一组插件 —— 在 dsh 自己的模型里就是一个 profile。这里每个 Agent 是一个 xpkg 描述文件,xlings install 会解析成员、装齐、写好 profile,并注册一个以包名命名的命令。
一次安装,一个词就能跑:
xlings install dsh:agent-web-coding -y → agent-web-coding
profile 名同样是包名,所以 dsh --profile agent-web-coding 是同一件事的长写法。
快速开始
xlings install dsh -y
xlings config --index-repo dsh:https://github.com/Sunrisepeak/dsh-index.git
xlings install dsh:agent-web-coding -y # 一个完整 Agent agent-web-coding # 运行它 —— 包名就是命令
最后一行不是笔误。装完一个 Agent,你会得到一个以它命名的命令,经 xlings 的 xvm 注册,本质是 dsh --profile agent-web-coding 的别名。
因为这个名字归 xvm 管,带版本、按 subos 是白拿的:
xlings install dsh:agent-web-coding@0.2.0 -y
xlings use agent-web-coding 0.1.0 # 切换,只影响当前 subos
dsh --profile agent-web-coding 依然可用 —— 命令是别名,不是替代。
还没装 xlings?点开看安装命令
Linux / macOS
curl -fsSL https://d2learn.org/xlings-install.sh | bash
Windows — PowerShell irm https://d2learn.org/xlings-install.ps1.txt | iex
了解 xlings → xlings.d2learn.org
三层
| 层 | 是什么 | 安装它会做什么 |
| 插件 | 一个上游 bundle —— 原子 | 下载并 pin 好字节,打印出组合它的那一行 |
| 插件组 | 可干净共存的可复用组合 | 装齐全部成员 |
| Agent | dsh + 一组插件 + 这个 Agent 自己的配置层 | 建它的 profile、把成员全部组合进去,并注册一个以包名命名的命令 |
插件组和 Agent 没有自己的字节,它们是几百字节的清单,载荷在成员身上。
成员必须是已镜像的包 —— 一个内容要在启动时回上游拉的"精选集",会把镜像本来要消除的失败模式全部继承回来。
为什么 Agent 必须是一个包,而不能只是一个 YAML
dsh 的 profile 由四层 patch 组合而成,启动时还能再叠一层:
dsh --profile agent-web-coding --patch ./extra.yml
但 patch 只有配置、没有依赖声明,而 dsh 的启动路径根本不碰包管理器。
让它引用一个你没装的插件,直接退出:
Error: dsh: plugin tree failed to load: failed to apply loader entry include
带依赖的是 profile 的 package.json,那才是 pnpm install 读的东西。
所以分发一个 Agent 需要"能执行安装"的东西 —— 而这正是 xpkg 的 deps 闭包。
安装
每个插件页都给出两条命令,它们不等价:
dsh 原生 —— 装了 dsh 就能用,直连源头
dsh plugin --profile web add dsh-cc-tui@0.1.6
本索引 —— sha256 校验,许可证允许时还有 CN 镜像 xlings install dsh:dsh-cc-tui -y
原生命令的 spec 逐包不同,在站点构建时实测决定,绝不靠猜:npm 确实按我们 pin 的版本提供的走名字,其余走 pin 死的 commit。今天是 17 个走名字、51 个走 commit —— 裸 bundle_name 只是包自己 package.json 的 name,不代表已发布。
你需要的全部命令 —— 安装、切换、卸载
添加本索引(namespace: dsh) xlings config --index-repo dsh:https://github.com/Sunrisepeak/dsh-index.git
搜索与查看 xlings search dsh:tui xlings list dsh:dsh-cc-tui
安装 xlings install dsh:agent-web-coding -y # 一个 Agent xlings install dsh:group-web-essentials -y # 一个插件组 xlings install dsh:dsh-cc-tui -y # 单个插件 xlings install dsh:dsh-cc-tui@0.1.6 -y # 指定版本
改掉插件打印那一行里的 profile 名
XIM_DSH_PROFILE=work xlings install dsh:dsh-at-file -y
按 subos 切换版本 —— 对 Agent 来说就是切换它的命令指向哪个版本,所以两个版本可以同时装着 xlings use agent-web-coding 0.1.0
卸载 xlings remove dsh:dsh-cc-tui -y
XIM_DSH_PROFILE 是本索引的变量,故意不叫 DSH_PROFILE:dsh 根本不读这个变量(它只读 DSH_HOME、DSH_WEB_URL、DSH_TELEMETRY_DISABLED),用那个名字等于宣称一个并不存在的上游约定。
插件装到哪去了?怎么启动?
装一个插件不会把它放进任何 profile。 取字节和做组合是两件事、两个主人,所以原子只负责取,并打印出组合它的那一行:
dsh-at-file is downloaded and pinned. It is not in any profile yet.
Add it: dsh plugin --profile web add /…/dsh-at-file-0.1.0.tgz Launch it: dsh web
原来原子自己注册的时候,装一个 Agent 会连带把它的五个成员也塞进 web —— 因为每个成员在 Agent 还没运行时就已经替自己决定了归属。
| 你装的是 | profile | 启动 |
| 一个 Agent | 它自己的包名,已替你组合好 | dsh --profile <包名> |
| 一个插件组 | 无;成员只是被取下来,没有被组合 | — |
| 单个插件 | 在你粘贴那一行之前,无 | dsh web,或 dsh --profile <name> |
那行里的 profile 是插件自己 README 所写的名字(65 个 web,2 个 tui, 1 个 cc-tui)—— 本索引不发明名字,换成任何名字都行。Agent 用自己的包名,所以 xlings install dsh:X 之后一定是 dsh --profile X;一个东西两个名字,读者没有办法知道它们是同一个。
实际装了什么,以及层的组合顺序
cat ~/.dsh/profiles/<profile>/package.json
dsh --profile <profile> --dump-config | grep '^# == '
已镜像 vs 直连
每个插件二选一,站点上有标:
| | 已镜像 | 直连 |
| 字节来自 | xlings-res,带 sha256 | GitHub,pin 死的 commit |
| CN 镜像 | 有 | 无 |
| 上游删库后 | 仍可安装 | 没了 |
| 带 prepare 脚本 | 已在本索引 CI 里构建 | pnpm 会拦住,需你显式允许 |
由许可证决定,不是偏好:镜像即再分发。在 dsh-plugin topic 调研的 169 个 bundle 里,29 个完全没有 LICENSE,另有 13 个无法识别 —— 本索引无权镜像它们,所以它们保持直连并如实标注。
定义一个 Agent
这是本仓库最重要的一类贡献:把已经存在的插件组合成一个别人可以直接运行的东西。 Agent 是一份清单 —— 几百字节,列出成员,自己没有载荷。
Agent 和插件组是生成的,改源文件、不要改描述符;CI 会重跑展开,两者不会漂移。
// tools/agents.json
"agents": [
{ "name": "agent-web-coding", "version": "0.1.0",
"description": { "en": "…", "zh": "…" },
"groups": ["group-web-essentials"], // 展开进 members
"extra": ["dsh-notification"] } // 再加这些插件
]
tools/gen_agents.py # 写出描述符 tools/gen_agents.py --check # CI 跑的
三条规则,全是拒绝而不是告警 —— 因为这里是索引在选组合:
| 规则 | 为什么 |
| profile 名 = 包名 | xlings install dsh:X 之后必须是 dsh --profile X |
| 成员必须已镜像 | 内容要在启动时回上游拉的"精选集"不可复现 |
| 两个成员不得替换同一个 dsh-base 行 | patch 替换整行,后装的静默胜出 |
成员被 pin 到版本和 commit,所以一个 Agent 指代一批固定的字节。
新增一个插件
让扫描器去收集事实 —— 它先 pin 住 head sha,再在那个 sha 上读 package.json:
tools/discover.py --new --json /tmp/new.json
tools/sync.py --new /tmp/new.json
pkgs/<首字母>/<名字>.lua 下的描述符是纯数据 —— 没有 hook、没有 xpm、没有 type。全部生命周期来自 template.lua,由 pkgindex-build.lua 在索引构建时追加到每个描述符。
package = {
spec = "1",
name = "dsh-cc-tui",
description = "Claude Code 风格全屏终端界面",
repo = "https://github.com/ccch1mneyyy/dsh-cc-tui",
licenses = {"BSD-3-Clause"},
dsh = {
kind = "plugin", -- plugin | group | profile
profile = "cc-tui", -- 它自己 README 让读者输入的名字
bundle_name = "dsh-cc-tui",
versions = { ["0.1.6"] = { commit = "<40 位 sha>" } },
latest = "0.1.6",
needs_build = false,
},
}
永远 pin 40 位 commit。这个生态里包名不可信:36 个社区仓库把自己命名进了 DeepSeek 在 npm 上真正拥有的 @deepseek-ai/ 作用域,裸名可能悄悄解析到别的代码。
用 agent 参与这个项目
编写规范都写成了 skill,把路径给你自己的 agent,它就拿到了完整约定 ——逐字段规则、两个 Lua 运行时各自会静默失败的缺口、以及提 PR 的要求。
阅读 https://github.com/Sunrisepeak/dsh-index —— 一个 xlings 包索引,分发 DeepSeek Harness 的 Agent,其中 Agent = Harness + Plugins。动手前先读 .agents/skills/xpkg-creater/SKILL.md 了解包的编写约定,读 .agents/skills/pr-workflow/SKILL.md 了解变更如何合入,设计依据在 .agents/docs/。
然后 <你要做的事>。
| Skill | 覆盖 |
| xpkg-creater | 三层模型、每个 dsh.* 字段、两个 Lua 运行时各自缺什么、隔离约束、验收 |
| pr-workflow | 分支、PR 正文、必须全绿的检查、合并规则 |
短路径见 docs/contributing.md。
保持跟进
tools/discover.py 扫描 dsh-plugin topic,回答三个分开的问题,每个问题各自成为一个 PR:
tools/discover.py --new # 索引还没收录的仓库 tools/discover.py --bump # 已收录但上游发了新版 tools/discover.py --audit # 已收录但 pin 的 commit 在上游消失了
--audit 永不自动合入。pin 的 sha 消失意味着 force push 或删库,静默跟进会让"本索引 pin 死这些字节"这个承诺无声失效。
检查
lua5.4 tests/libxpkg_sandbox_harness.lua . # 索引构建回归门
git checkout -- pkgs/ # harness 会追加,跑完还原
pytest -q # 描述符 schema 与策略 tools/gen_agents.py --check # 组合包与其源文件一致
沙箱门不是可选项。xlings 在 libxpkg 的最小 plain-Lua 沙箱里运行 pkgindex-build.lua,那里 cprintf / try / raise 全是 nil;混进任何一个,构建出的索引会静默丢掉全部 xpm 段,走 artifact 路径的所有用户安装都会挂。
相关链接
- DeepSeek Harness · 插件文档
- dsh-plugin topic —— 上游的发现入口
- xim-pkgindex —— xlings 官方索引(xim:dsh 在那里)
- awesome-dsh-plugins —— 生态兼容性报告
许可证
Apache-2.0。每个被收录的插件保留自己的许可证;本仓库只再分发许可证允许的那些。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Sunrisepeak/dsh-index
DeepSeek Harness 插件与智能体配置档包索引——一条命令装好 dsh-plugin
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,025未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,358已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13938 个插件含 PR 收录与…
★ 350已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7