面向 DeepSeek Harness dsh 的独立插件索引,对社区友好。
31.4/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/TYEclipse/dsh-plugins-hub.git按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 2 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-plugins-hub(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 22:13:57
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 包内无可扫 JS
- · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/4(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 社区插件精选目录
- 每日更新
README
由 DeepSeek 最新模型翻译生成dsh-plugins-hub
面向 DeepSeek Harness (dsh) 的独立插件索引,对社区友好。
由自动化 + 人工审核筛选。话题:dsh-plugin。
精选插件
| 插件 | 描述 | 安装 | 状态 | 安全 | 试用 | 检查时间 | 提交 |
| dsh-superagent | 面向单个 GitHub 仓库的主动式编码智能体,打包为 DSH bundle:监听 GitHub,可选监听飞书,按 Policy 评估请求,把已授权的请求转成 Ticket,每个 Ticket 在独立的 DSH 会话中执行,发起 pull request,并用 Web 面板展示哪些事项需要人工介入。
展开完整文档(README 剩余 1 节)
dsh-plugins-hub
面向 DeepSeek Harness (dsh) 的独立插件索引,对社区友好。
由自动化 + 人工审核筛选。话题:dsh-plugin。
精选插件
| 插件 | 描述 | 安装 | 状态 | 安全 | 试用 | 检查时间 | 提交 |
| dsh-superagent | 面向单个 GitHub 仓库的主动式编码智能体,打包为 DSH bundle:监听 GitHub,可选监听飞书,按 Policy 评估请求,把已授权的请求转成 Ticket,每个 Ticket 在独立的 DSH 会话中执行,发起 pull request,并用 Web 面板展示哪些事项需要人工介入。DeepSeek 官方研究原型,不是产品;MIT;TypeScript | 专用配置档:git clone https://github.com/deepseek-ai/dsh-superagent-prototype,pnpm install && pnpm build,然后执行 dsh superagent --from-default-profile web --dump-config > /dev/null 和 dsh plugin --profile superagent add "link:$PWD";完整安装步骤见 SETUP.md | ⚠️ 研究原型,未达到生产可用 | ⚠️ worker 以 danger-full-access 权限、按操作员 OS 用户身份运行;请用专用 OS 账号做隔离;每个实例只对应一个仓库;需要专用 GitHub 智能体账号,可选配飞书机器人;指向真实仓库前请先审查 | ⏳ 已在维护者主机上验证结构与面板启动;pnpm check 1196/1197(一个飞书畸形 JSON 健康检查在 Node 26 上失败);安装待完成(没有 GitHub 智能体账号/仓库),未做端到端 ticket 测试 | 2026-11-01 | 6337fc8 |
| dsh-mcp-tools | 面向 DSH Web 设置面板的 MCP 服务器与工具管理器:支持通过 streamable-HTTP(URL 加 Postman 风格的表头行)或 stdio(command / args / env / cwd)添加服务器,粘贴一段 {"mcpServers": {...}} 即可一次导入多个,保存前先跑连通性检查(initialize → tools/list),还能按服务器逐个开关工具,被禁用的工具绝不会注册给模型;关掉的服务器保留配置,整套配置可再复制成 mcpServers 片段导出。一个宿主侧行加一份预构建客户端 bundle(dsh.client.platform = web,无需构建步骤,零运行时依赖),状态与 JSONL 事件日志存放在 $DSH_HOME/dsh-mcp-tools/ 下 | dsh plugin --profile web add dsh-mcp-tools@1.0.2 | ✅ 活跃 | ✅ 零运行时 / peer / 可选依赖,无安装生命周期脚本,发布代码中无遥测或分析 SDK,也不内置任何端点——只有你添加 MCP 服务器并触发连通性检查后,插件才会去连它;宿主侧 API 位于 /mcp-tools/api/,仅对已认证的 Web 会话开放(没有 token cookie 返回 401)。需要留意:你粘贴的服务器定义(含表头值,可能是 token)和事件日志都以明文存放在 $DSH_HOME/dsh-mcp-tools/{state.json,logs.jsonl}——DSH_HOME 可以重定向 | ✅ e2e(来自 hub #65 的 R79:隔离安装 npm dsh-mcp-tools@1.0.2——首次即走中国镜像,预构建,friction=none,resolved 1.0.2,wired=true;mcp-tools 行位于 1445 行的组合配置档树中;Web 启动冒烟 401 → 303(+Set-Cookie)→ 200,客户端描述符 plugins/??dsh-mcp-tools/client.js 以 136 207 字节返回 200,inject 匹配 2/2;GET /mcp-tools/api/state 无 cookie 返回 401,带 cookie 返回 200,响应为 {"ok":true,"version":1,"servers":[],"registeredTotal":0,"paths":{"state":"…/dsh-mcp-tools/state.json"}};随包发布的 scripts/smoke.mjs 在已安装副本上 9/9 通过;未运行:设置面板 UI 交互(添加服务器表单、JSON 导入、按工具开关、复制导出片段)、对真实服务器跑一次 MCP initialize → tools/list、以及 Windows/Electron——提交本身声明仅支持 macOS) | 2026-10-25 | ddfb49acb3cb850b84b9be1a2fe9d85b25430359 |
| DeepSeek Workbench | 把 DeepSeek 网页应用搬进 DSH 网页 GUI:官方页面聊天视图,通过可见的输入框驱动;临时侧边聊天,针对当前对话提问,自带流式输出与取消;DeepSeek API 平台页面;DSH 会话迁移 —— MIT 协议,以可读的 ESM/JSX 源码形式发布(安装时无需构建步骤),只有一个依赖(marked)用于 markdown;engines.dsh 精确锁定 0.2.1-rc.2,宿主一升级就会被 peer 拒绝,直到作者重新发布 | dsh plugin --profile web add https://github.com/gulagala001/dsh-deepseek-workbench/releases/download/v0.1.1-dsh.0.2.1-rc.2/dsh-deepseek-workbench-0.1.1-dsh.0.2.1-rc.2.tgz | ✅ 已启用 | ⚠️ 设计上绑定账号:它把 DeepSeek 账号 token 存进宿主凭据存储,并以 x-dsh-auth-token / Bearer 发给 chat.deepseek.com 和 platform.deepseek.com(账号探测),还用 credentials: include(浏览器 cookie)读取官方页面来提取对话;所有流量都发往 DeepSeek 自家域名(chat.deepseek.com、platform.deepseek.com、files.deepseeksvc.com)—— 没有遥测 SDK、没有分析、没有安装时回调、没有 eval、没有子进程;UI 状态存在浏览器 localStorage/sessionStorage | ✅ 端到端验证(R78,hub #57:用 gh release download 下载发布产物,sha256 9d2b4f73…aaa91a1,189 677 B;安装前先读结构 —— cordis.patch.yml 是普通单行插入,没有覆盖 approval / sandbox-policy / fs-observation-policy,39 个文件,无原生二进制,无安装钩子;本地 file: 安装无摩擦,解析为 0.1.1-dsh.0.2.1-rc.2,已接入;合成配置 1232 行,含 deepseek-workbench 层;启动冒烟 401 → 303 + Set-Cookie → 200(38 083 字节页面),描述符提供 dsh-deepseek-workbench/client.js 返回 200 / 159 013 B,其注入列表与 package.json 9/9 一致。未运行:所有绑定账号的功能(网页聊天、临时侧边聊天、平台页面、会话迁移 —— 需要已登录的 DeepSeek 账号)、独立的 desktop/ 宿主集成、LLM 驱动的已安装副本会话(@deepseek-ai/dsh-headless 无法装在这台宿主上)、Windows/macOS。给安装者的提醒:提交里的安装命令指向 0.1.1 标签下一个 0.1.2 文件(404)—— 本行固定的是真实的 0.1.1 产物) | 2026-10-24 | 47119973 |
| dsh-theme-plugin | DSH Web GUI 的外观与主题管理器:三个原生外观页面(外观设置、主题管理、由四个目录供给的可视化市场),六套内置外观和 29 套配色,能发现已安装的主题,支持文件导入导出、按功能控制主题,并在宿主或适配器变化时重新校验;主题包先暂存并校验,通过后才启用,安装失败会恢复之前的外观。精确锁定 DSH 0.2.1-rc.2(engines.dsh),MIT 协议,以固定的 GitHub release tarball 发布,不走 npm(无作用域的 npm 包名属于另一位作者) | dsh plugin --profile web add https://github.com/gulagala001/dsh-theme-plugin/releases/download/v0.2.0-dsh.0.2.1-rc.2/gulagala001-dsh-theme-plugin-0.2.0-dsh.0.2.1-rc.2.tgz | ✅ 已启用 | ⚠️ 市场 + 代码执行披露:这是主题市场客户端,按设计会联系第三方目录(dsh-market.com、dshmarket.com、dsh.a2hmarket.ai、awesome-dsh-plugin.com、kingofsoysauce.github.io、api.github.com、raw.githubusercontent.com、codeload.github.com、registry.npmjs.org),并安装它下载的主题包——这些包用 esbuild-wasm 打包,然后作为 Web UI 后端运行,拥有正常的 Node/DSH 能力;宿主还会启动子进程做运行时探测。上游明确说明,它的预检不是恶意代码沙箱,所以安装主题就等于运行第三方代码。未发现遥测 SDK 或安装时回调;除此之外,这一行就是一条普通的 insert 行(不碰 approval、sandbox-policy 或 fs-observation-policy) | ✅ e2e(R76:release 资产 tarball,sha256 a804e3be…38e1,用 gh release download 下载,安装之前先做结构检查——package.json + cordis.patch.yml 是一条普通的单行 insert,没有策略覆盖;用该资产做本地 file: 安装,摩擦 = 无,解析出 0.2.0-dsh.0.2.1-rc.2,已接线,363 行合成配置里有 dsh-theme-plugin 行;启动冒烟 401 → 303 + Set-Cookie → 200,带 data-dsh-skin;客户端模块 200 / 415 211 B,描述符的 inject 列表与 package.json 匹配 8/8;没有模型可调用的工具——它是 UI 插件;宿主前缀 /theme 未注册(改用 RPC 通道)。未验证:外观页面本身、市场浏览、真实主题下载/回滚、导入导出——需要浏览器驱动的会话;engines.dsh 是精确锁定,所以宿主升级后会被 peer 拒绝,直到作者重新发布) | 2026-10-22 | 6a7ad62 |
| dsh-undo-plugin | 就地回退对话及其工作区文件,带确认和真正的撤销:一个紧挨 Copy 的按钮、空闲时双击 Escape 或输入 /rewind 唤出原生选择器、以及用 /undo 反向撤销一次恢复。每次恢复操作都先确认。文件恢复覆盖同步工具和同一工作区内的子代理;外部副作用不会回滚,没有文件快照的运行只恢复对话,这一点会在确认前显示。本地状态存放在 ~/.dsh/rewind-plus(每个宿主进程一份归属租约)。完全不发起任何网络请求 —— MIT | dsh plugin --profile web add https://github.com/gulagala001/dsh-undo-plugin/releases/download/v0.1.0-dsh.0.2.1-rc.2/gulagala001-dsh-undo-plugin-0.1.0-dsh.0.2.1-rc.2.tgz | ✅ 已启用 | ✅ 无对外请求:发布的 lib/ 和 src/ 中不含任何 http(s) URL,不含遥测 SDK(没有 posthog/sentry/analytics/mixpanel),也没有 eval;它唯一写入的状态是本地归属租约,位于 ~/.dsh/rewind-plus/v1/owners/<pid>-<uuid>.json(本机上为 {"pid","protocol":2,"busy":false})。它确实会对工作区文件做快照,以便之后恢复 —— 这正是它的用途,快照留在本机。恢复需要显式确认;没有快照的插件只恢复对话,并在你确认前显示。tarball 中附带第三方声明和上游 DSH 许可证 | ✅ e2e(release 资产 tarball,资产 sha256 4436c038c9d7798931f7242e25541bab1bb151d357865652f9516afbe4c10d9d;通过 file: 隔离安装到临时配置档 —— friction=none,解析为 0.1.0-dsh.0.2.1-rc.2,已接入;package.json 的 engines 要求 dsh 0.2.1-rc.2 + cordis 4.0.5,与本机完全一致,26 个文件,无原生二进制,无安装期脚本,无随包携带的 node_modules,MIT + LICENSE.DSH 齐全;组合配置 1232 行,含 dsh-undo-plugin 层;web 启动冒烟 401 → 303 + Set-Cookie → 200,页面引用了 @gulagala001/dsh-undo-plugin/client.js,该请求返回 200 / 23238 字节,包内九个 dsh.client.inject 模块都出现在宿主页面中)。未验证:实际的回退/撤销往返(需要一场由工具驱动文件编辑的交互式会话)、附件恢复、双击 Escape 与 /rewind//undo 的 UI 路径,以及作者列为未验证的 Windows/Linux 流程 | 2026-10-21 | d613e9e |
| dsh-biorxiv | bioRxiv 预印本检索、版本/发表状态与导出工具箱:biorxiv_search(同义词查询、日期窗口、字段、minScore 过滤)、biorxiv_paper(最新版本、已发表 DOI/期刊、撤稿标记)、biorxiv_latest(日期窗口与分类)、biorxiv_export(JSON/Markdown/CSV/BibTeX,写入限定在指定路径内)以及 biorxiv_digest(结构化 markdown,可选启用中文摘要)——零运行时依赖,只用公开 API | dsh plugin --profile web add github:TYEclipse/dsh-biorxiv#v0.1.0-alpha.20 | ✅ 活跃 | ✅ 零运行时依赖,无安装脚本,无遥测;只用公开 API(Europe PMC、bioRxiv、Crossref、OpenAlex);可选摘要默认关闭,只发送公开的标题/摘要;缓存存本地,键做哈希处理 | ✅ e2e(从 tag v0.1.0-alpha.20 隔离安装,friction=none,解析到 0.1.0-alpha.20;--dump-config 中有 dsh-biorxiv 层;用安装后的副本执行命令行,对真实公开 API 跑通全部五个工具——search 命中 1 条未缓存结果,paper 返回 DOI,latest 返回 1 条,digest 生成 1 条 markdown,export 导出 2 条记录 / 518 B;MCP initialize 报告 0.1.0-alpha.20;145 个测试,行覆盖率 100%。未运行:LLM 驱动的无头会话(仅基础配置档)、用真实密钥跑可选 AI 摘要(默认关闭)、Windows/macOS) | 2026-10-19 | b56344e |
| dsh-netdoctor | 网络诊断工具箱:DNS 查询(10 种记录类型,含 SOA/CAA)、多解析器 DNS 传播检查(一条记录查 6 个公共解析器,按记录内容对答案集分组,失败或缓慢的解析器按失败上报)、ICMP ping、TCP 端口检查、TLS 证书检查、HTTP(S) 检查(重定向链,相对 Location 按 RFC 3986 解析,分阶段计时 dns/connect/tls/ttfb/total,取自同一时钟的累计标记,审计响应头 HSTS/CSP/X-Frame-Options/CORS,有界读取响应体,cookie 只计数不回显值)、traceroute、公网 IP、WHOIS 注册信息查询(TCP 43,IANA 引荐链 + TLD 回退映射,IP 走 ARIN,输出结构化摘要)—— 九个只读探测,零运行时依赖 | dsh plugin --profile web add github:TYEclipse/dsh-netdoctor#v0.4.0 | ✅ 已启用 | ✅ 零运行时依赖(只用 Node.js 内置模块),无遥测 SDK,无安装期回调。所有操作都是出站且只读;外部二进制(ping、traceroute/tracert)以固定参数数组调用,从不经过 shell。check_http 从不做认证:URL 内嵌凭据会被拒绝,Set-Cookie 响应头只计数、值永不返回,重定向只跟随到 http/https 目标。 | ✅ e2e(隔离安装 github:TYEclipse/dsh-netdoctor#v0.4.0 —— 首次即走中国镜像,friction=none,解析到 0.4.0,已接入配置档 bundle;对已发布 dist 的安装副本执行:dist/tools.js 中 9/9 个工具定义,本地服务运行 check_http → 301 链 1 跳解析到 200,2 个 Set-Cookie 被计数且值未出现,404 仍视为可达,计时标记 dns 缺失(IP 字面量)/ connect ≤ ttfb ≤ total;107 个测试 / 78.39% 行覆盖率,全部离线) | 2026-10-26 | 0b1de6d |
| dsh-webfetch | 网页读取器:把任意 URL 抓取为干净的 Markdown / 纯文本,清点链接,读取 RSS/Atom 订阅源,检查 HTTP 状态/响应头/重定向链而不取正文(web_headers:先发 HEAD,失败自动回退 GET),把 HTML 表格提取为结构化行(web_table:识别表头、展开 colspan/rowspan 网格、限制行数与表格数),读取页面自身的元数据(web_meta:canonical、Open Graph/article/Twitter 属性、hreflang 备用链接、订阅源自动发现、图标、JSON-LD @type 摘要——无效块会报告,不会丢弃),列出站点自身的 URL(web_sitemap:robots.txt 里的 Sitemap 指令、跟进 sitemap 索引、lastmod/changefreq/priority、解析相对 loc、按文档报告失败或 gzip 的 sitemap),支持零依赖 http 代理——零运行时依赖,只读 | dsh plugin --profile web add github:TYEclipse/dsh-webfetch#v0.6.0 | ✅ 活跃 | ✅ 零运行时依赖,无安装脚本,无遥测或分析 SDK;只对你给出的 URL 发起 http/https GET(不带凭据、不带 cookie,拒绝 URL 内嵌凭据)——外加 robots.txt 及其声明的 sitemap——并限制请求超时、重定向跳数、响应体大小和文本长度 | ✅ e2e(R82:隔离安装 github:TYEclipse/dsh-webfetch#v0.6.0——首次即走中国镜像,friction=none,解析到 0.6.0,接线完成;363 行组合配置含 webfetch 层;发布的 dist 针对本地 fixture 执行 5/5 个 spec 探针用例:robots→index→urlset 清点、直接输入 sitemap 跳过 robots、maxUrls 上限如实生效(2 个中返回 1 个,标记截断)、拒绝 file:、以及一个 web_headers 回归;163 个测试全绿,覆盖率 91.65%,oracle 用 xml.etree 读取器与独立正则读取器交叉校验。未运行:超过 maxUrls 的清点跨调用遍历(尚无游标)、gzip 的 .xml.gz 文档(只报告,不解码)、robots.txt 会重定向的站点) | 2026-10-28 | 3146ab2 |
| dsh-units | 单位换算工具箱:22 个类别(长度、质量、温度、数据量按十进制与二进制、数据传输速率 Mbps 与 MB/s、加速度含 g-force、照度 lux 与 foot-candle、速度、时间、体积、压力、能量、角度、频率、功率含 3 种马力定义、力、扭矩、排版 px/pt/em/rem、体积流量 m³/s-L/min-CFM-gpm、密度 kg/m³-lb/ft³-lb/gal、燃油经济性 mpg ↔ L/100km),另在换算表之上提供三个可用工具:单价工具,把每单位价格的报价归一化并排序(1–6 个报价,带包装数量,给出最便宜的一项与百分比价差;温度和燃油经济性拒绝处理);单位求和工具,把同一类别下混合单位的 1–12 个数量相加(按目标单位给出总和与均值,用补偿求和,小加数不会漂移,允许负数以计算差值,温度和燃油经济性拒绝处理)——零运行时依赖,纯数学 | dsh plugin --profile web add github:TYEclipse/dsh-units#v0.6.0 | ✅ 活跃 | ✅ 零运行时依赖,在静态单位表上做纯同步算术——不联网、不读写文件系统、不启动子进程、不用 eval、不上报遥测 | ✅ e2e(R81:隔离安装 github:TYEclipse/dsh-units#v0.6.0——首次即命中镜像,friction=none,resolved.installed 0.6.0,wired=true;在已发布的 dist/ 上执行安装副本,14/14 个锚点全部通过:unit_sum 5 ft + 3 in + 1.2 m + 80 cm → 360.02 cm(3.6002 m),均值 90.005 cm;1 h + 30 min + 45 s → 5445 s;500 MB + 1 GiB → 1573.741824 MB;1e16 + 1 − 1e16 m → 1 m(补偿求和,非朴素求和);10 ft − 2 ft → 8 ft;convert_unit(100 km → 62.137119 mi,1 gpm → 0.0630902 L/s)与 unit_price(3.99/lb 对比 8.5/kg → 最优 8.5/kg)均无回归。仓库内 oracle 以 math.fsum 为基准并辅以定义性锚点,覆盖新工具;测试套件 83 项,覆盖率 95.08%。未运行:带模型的交互式智能体会话(本主机无法安装 @deepseek-ai/dsh-headless)) | 2026-10-27 | 35a229e |
| dsh-color | 颜色工具箱:解析/转换任意 CSS 颜色(hex、rgb()/hsl()/hwb()、全部 148 个 CSS Color 4 命名颜色),计算 WCAG 2.x 对比度并给出 AA/AAA 判定,按名称或值查找命名颜色,生成和谐配色(color_scheme:互补 / 类似 / 三角 / 分裂互补 / 四角 / 方形 / 单色),颜色调整(adjust_color:变亮 / 变暗 / 提高饱和度 / 降低饱和度 / 色相旋转),颜色混合(blend_colors:alpha 合成叠加与预乘 sRGB 插值混合,即 color-mix() 的算法),对比度修复(ensure_contrast),感知色差(color_difference:CIEDE2000 加 CIE76,两者都在 D65 下计算 CIELAB 颜色,给出通俗判定与容差检查),感知均匀的 tint/shade 色阶(color_scale:tints / shades / both / between 在 Oklab 中插值,每一步都报告相对基色的 ΔE00),以及色觉缺陷模拟(cvd_simulate:protan / deutan / tritan,采用 Machado、Oliveira & Fernandes 2009 矩阵,严重程度可取 0-1 任意值,每种颜色给出模拟后的 hex 与 ΔE00 偏移,每一对颜色给出模拟前后的 ΔE00,并标记出发生塌缩的颜色对)——零运行时依赖,纯数学 | dsh plugin --profile web add github:TYEclipse/dsh-color#v0.5.0 | ✅ active | ✅ | ✅ e2e(R83:隔离安装 v0.5.0,镜像摩擦=none,resolved.installed 0.5.0,已接线;安装副本执行 7/7 —— deutan 下 #e53935/#2ca02c 变为 #98892e/#968838,ΔE00 从 71.3277 → 1.6504,标记为塌缩,tritan 下 #ff0000 的 ΔE00 为 1.4595,严重程度 0 = 恒等且中性色不变,严重程度钳制到 1,7 种颜色被拒绝,另有 color_difference 11.7766/61.1101 与 color_scale 回归;153 个测试全绿,覆盖率 95.51%;oracle 的 J 节是独立 Python 实现,其 --check 还断言全部 33 行已发布矩阵每行之和为 1,且严重程度 0.0 为恒等) | 2026-10-29 | e4dbdbd |
| Code2Skill | 三个智能体技能,从用户授权的代码生成可移植的 Function / MCP Tool / 工作流技能包(带离线测试),另有独立流程审查与源码语义审查 —— 纯技能包,MIT | dsh plugin --profile web add github:leechen298/Code2Skill#v1.2.0 | ✅ active | ✅ | ✅ e2e(R65 复验,过期行队列:重新锁定 v1.1.3 → v1.2.0;隔离安装摩擦=none,resolved 1.2.0;dump-config 显示 code2skill-bundled-skills + provider code2skill-bundle;安装副本执行 18/18 —— 三个 SKILL.md 文件,frontmatter 名称一致,补丁挂载 @deepseek-ai/dsh-skill-filesystem 且 watch 关闭,files 白名单仅含该技能包。未运行:LLM 驱动的无头会话 —— @deepseek-ai/dsh-headless 在本机两个 registry 都装不上) | 2026-10-10 | 27bac3f2 |
| dsh-semver | 语义化版本工具箱:解析任意 semver 字符串(semver_parse),按规范比较版本,预发布排序符合规范(semver_compare,忽略构建元数据),检查 npm 风格的范围(semver_satisfies:^ ~ >= <= > < =、x-ranges、连字符、\|\|、AND、元组锁定预发布语义、includePrerelease 覆盖),按 npm semver.inc 递增版本,含预发布计数器和标识符重启(semver_inc),报告 npm semver.diff 的发布类型差异并处理特殊情况(semver_diff),排序版本列表,构建元数据作为平局决胜(semver_sort),找出范围接受的最低版本(semver_min_version:与 npm minVersion 一致——不可满足的组合报告 satisfiable: false,而不是猜一个边界),检查两个范围能否同时满足(semver_intersects:与 npm intersects 一致,另给出一个对两个范围都验证过的见证版本),从任意文本中提取版本(semver_coerce:与 npm coerce 一致——第一段数字胜出,所以一行变更日志会提取出它的日期 2026.0.0,无法表示的组件报告为无版本并给出原因,绝不四舍五入),以及把版本放到整个范围的相对位置(semver_outside:与 npm gtr/ltr 一致——高于/低于/内部,以及两个方向都不覆盖的备选之间的间隙)。v0.5.0 新增解释版本为什么匹配或不匹配(semver_explain:每个 \|\| 备选展开成 npm 自己构建的比较器,逐个比较器给出接受/拒绝及决定它的优先级,预发布元组锁定与未命中的边界分开报告——所以「不满足」不再是一个不加区分的答案)。零运行时依赖,纯逻辑;v0.3.0 修复了 ~1.2.3 静默接受 1.2.0/1.2.1 的问题 | dsh plugin --profile web add github:TYEclipse/dsh-semver#v0.5.0 | ✅ active | ✅ | ✅ e2e(R85:隔离安装 github:TYEclipse/dsh-semver#v0.5.0——首次尝试即走中国镜像,friction=none,resolved 0.5.0,wired=true;semver 层位于 363 行组合配置内;已安装副本在发布的 dist 上执行 10/10 探测用例(注册 11 个工具)——semver_explain 把元组锁定与未命中的边界分开,报告 npm 的比较器形态(^1.2.3 → <2.0.0-0 >=1.2.3),为 \|\| 挑出最接近的备选,遵守 includePrerelease,拒绝无法解析的版本;semver_satisfies / semver_outside / semver_coerce / semver_inc 回归未回退;176 个测试全绿,覆盖率 93.41%;以 npm 为锚的 oracle 新增 explain 区域(逐比较器真值来自 npm Comparator.test,判定来自 Range.test,元组锁定从 npm 的比较器对象读回)外加两个 --check 不变量。未运行:任何 UI) | 2026-10-31 | 40bdfdee2ee3a0f79c8083a185183e33a405c1e3 |
| Archify for DSH | 可选安装的纯技能包(@tt-a1i/archify-dsh),把 Archify 架构图技能带到 dsh:用带类型的 JSON 规格(architecture / workflow / sequence / dataflow / lifecycle)渲染成自包含的交互式 HTML,内联 SVG,按展示级标准校验(9 项产物检查)——纯技能包,MIT | dsh plugin --profile web add @tt-a1i/archify-dsh@1.0.0 | ✅ 已启用 | ✅ 零依赖,无安装脚本,无遥测或分析 SDK;render/validate/check 全程离线运行——只有 finalize 交付回执会向 tt-a1i.github.io 发起一次有界更新清单拉取 | ✅ 端到端(2026-10-09 在刚发布的 1.0.0 上重新验证:隔离安装 @tt-a1i/archify-dsh@1.0.0——首次即走国内镜像,无摩擦,resolved.installed 为 1.0.0;零依赖,无安装脚本;合成后的配置里存在 archify-skill-filesystem 行(370 行转储);archify doctor 在 Node 26 上全部通过;已安装副本的命令行:按展示级质量渲染 architecture 示例 → 762,310 字节的独立 HTML,随后 archify check 9/9 项产物检查通过。更早的验证在 2026-08-16,是技能自带的无头 9/9 展示级校验。上游从 0.1.0 升到 1.0.0;本行现已固定为重新验证过的 1.0.0) | 2026-10-09 | 1.0.0 |
| dsh-finance | 资金计算工具箱:固定利率贷款还款,含摊还表和额外还款影响(loan_payment);复利增长预测,支持每月缴款和任意复利频率(compound_growth);名义年利率 ↔ 实际年利率换算,含连续复利(rate_convert);NPV/IRR/回收期现金流分析,明确报告无根/多根情况(cashflow_analysis);退休提取规划——资金耗尽时间 + 可持续提取额,附 lasts_horizon 判定(retirement_plan);目标储蓄——距目标还差几个月,或截止日期要求多少缴款,截止日期缴款向上取整到分并按此模拟预测,附 on_track 判定,无法达成时如实返回 unreachable,而不是编造月数(savings_goal);通胀调整后的购买力——未来成本、现值,给定名义回报时给出精确的 Fisher 实际回报,并并列展示名义/实际未来价值,涵盖通缩和小数期限(inflation_adjust);多笔债务还款规划——先还最低还款额,剩余预算集中还一笔目标债务,完整模拟 avalanche(利率最高优先)和 snowball(余额最小优先)两种策略,让更省钱的顺序、节省的利息、各笔债务实际还清的先后顺序都是数字而不是口号,预算永远还不清时如实报告,而不是编造月数(debt_payoff);再融资对比——同一余额按新利率(可选新期限)并计入 closing costs,同时给出还款视角(新还款额 + 节省额收回 closing costs 所需月份)和利息视角(某时间跨度内利息与两个完整期限内的利息),附判定(cheaper_every_way / payment_down_interest_up / payment_up_interest_down / not_better)和说明,而不是一个乐观的单一数字,closing costs 可现金支付或计入余额,还款额未下降时不给出盈亏平衡月(refinance_analysis)——零运行时依赖,纯算术,关键数值对照公开基准(Excel IRR 示例、房贷表)和随仓库提供的独立 Python oracle 验证(test/oracle/anchors.py,九个部分 + --check 自检;每个测试文件都带 ORACLE: 来源标记) | dsh plugin --profile web add github:TYEclipse/dsh-finance#v0.5.0 | ✅ active | ✅ | ✅ e2e(隔离安装 #v0.5.0,friction=none mirror-first,resolved.installed 0.5.0,已接线,363 行组合配置含 dsh-finance 层;安装副本回放 8/8 探针基准——再融资 200000 @ 7.5% 300mo → 6% 300mo + 4000 closing:还款额 1477.98 → 1288.60,利息 243394 → 186580,盈亏平衡月 22,时间跨度内节省利息 56814.13,判定 cheaper-every-way;期限拉长 300000 @ 6% 240mo → 5% 360mo:还款额降 538.83 但利息升 63936,判定 payment_down_interest_up;期限缩短 150000 @ 6.5% 300mo → 5.25% 180mo:还款额升 193.01,时间跨度内利息降 54456.09,判定 payment_up_interest_down;费用计入余额 → amount_financed 204000 / upfront_cash 0 / 盈亏平衡月 1;利率更差 → not-better;无效余额 → valid:false 并给出确切原因;回归 loan_payment 1432.25 / 215610 和 debt_payoff 13 个月 / 739.37 / avalanche 节省 156.33;157 个测试,覆盖率 93.74%,oracle --check 通过,含 85 条再融资断言和闭式解与模拟的交叉校验) | 2026-11-01 | b89a4e1 |
| dsh-ipcalc | IP & subnet math toolbox: full IPv4 subnet layouts (ipv4_subnet: network/broadcast/mask/hosts + IANA classes, RFC 3021 /31), minimal covering CIDR aggregation (ipv4_summarize), equal subnet splitting by part count or target prefix (ipv4_split: host-bit masking, 256-subnet cap), VLSM allocation from host counts (ipv4_allocate: smallest prefix that fits each request, placement order, leftover free blocks and waste, largest-first or input order, optional RFC 3021 /31 and /32 shortcuts), pool subtraction with the surviving free space (ipv4_exclude: minimal free CIDR list, exact free address count, per-entry removal counts, exclusions outside the pool reported rather than clipped), arbitrary address ranges turned into minimal exact CIDR lists (ipv4_range: the inverse of summarizing), IPv4/IPv6 parsing with RFC 5952 normalization and embedded-IPv4 recognition (ip_parse), IPv6 subnet layouts with 128-bit BigInt math and exact decimal-string address counts (ipv6_subnet, RFC 6164 /127), IPv6 route aggregation into the minimal covering prefix list with exact decimal-string counts and a total for addresses listed twice (ipv6_summarize: BigInt merge + supernet, un-mergeable output), pairwise overlap checks over IPv4 and/or IPv6 CIDRs reporting each conflicting pair's relation (duplicate / one contains the other) and exact overlap size, with inputs normalized first and cross-family pairs counted rather than compared (ip_overlaps), and CIDR membership tests for bare IPv4/IPv6 addresses with mixed-version rejection (ip_match) — zero runtime dependencies, pure local math, no network I/O | dsh plugin --profile web add github:TYEclipse/dsh-ipcalc#v0.5.0 | ✅ active | ✅ | ✅ e2e (R87: isolated install of #v0.5.0 — China mirror on the first try, friction=none, resolved.installed 0.5.0, wired=true, ipcalc layer in a 363-line composed config; installed-copy execution 8/8 spec-probe cases on the published dist — ipv6_summarize merges the two /33 halves back to 2001:db8::/32 (79228162514264337593543950336 addresses, 0 listed twice), keeps a genuine gap as two /48s, and reports the host-bit rewrite of 2001:db8:0:1::/48 as 2001:db8::/48; ip_overlaps reports 10.0.0.0/24 containing 10.0.0.128/25 as a_contains_b with 128 overlapping addresses, keeps an IPv4/IPv6 pair clean with mixed_family_pairs=1, and rejects a malformed entry by index; regressions ipv4_allocate 10.0.0.0/16 hosts [100,50,20,20,5] → 5 subnets / 264 used / 69 wasted / 65272 free and ipv6_subnet /64 exact counts; 249 tests green, coverage 96.75%; the in-repo oracle gained K/L sections (stdlib ipaddress.collapse_addresses for aggregation, .overlaps()/.subnet_of() for containment) and its --check now also asserts the two properties that make the answers trustworthy — every input is inside the cover and no two neighbouring output blocks could be merged. R70 baseline: isolated install v0.4.0, mirror friction=none, resolved 0.4.0, published-dist execution of ipv4_allocate/ipv4_exclude, 224 tests at 96.44%). | 2026-11-02 | 263d2f1 |
| dsh-geodesy | Geodesic math toolbox: great-circle distance with bearings and compass direction (geo_distance), initial/final bearings plus great-circle midpoint (geo_bearing), direct-problem destination point with round-trip check (geo_destination), decimal/DMS coordinate parsing (coord_parse), rhumb-line constant-heading distance & bearing (geo_rhumb), great-circle path intersection with antipodal crossing (geo_intersection), spherical polygon area via spherical excess (geo_area), off-track distance to a great-circle path — signed cross-track + along-track, perpendicular foot, distance to the segment (geo_cross_track), inside/outside test for a spherical polygon reporting both sides of the boundary with the containing region's area (geo_point_in_polygon), multi-leg route totals with per-leg heading and running total plus detour vs the straight line (geo_path), and spherical-cap geometry — exact area, boundary-circle length, pole/antimeridian-aware lat/lon box, distance-based containment (geo_circle) — zero runtime dependencies, pure trigonometry on the IUGG mean Earth radius, configurable radiusKm | dsh plugin --profile web add github:TYEclipse/dsh-geodesy#v0.4.0 | ✅ active | ✅ zero deps, no network | ✅ e2e (R72: isolated install #v0.4.0 friction=none, resolved 0.4.0; 11 tools on the installed copy; published-dist execution of the new tools — route totals, zero-length leg reported without a heading, and a 300 km cap with the pole and antimeridian box cases; older anchors unchanged: geo_distance 1067.311645 km, cross-track 111.19508 km, octant area 63758235.121609 km², rhumb 7076.411574 km; 223 tests, coverage 92.09%, all anchors in one committed oracle test/oracle/anchors.py with a --check self-check) | 2026-10-17 | 7b3705d |
| dsh-checkdigit | Check-digit mathematics toolbox: generate, validate, repair and auto-detect check digits for 17 schemes — Luhn (cards/IMEI), Verhoeff, Damm, ISBN-10 (mod-11, X) / ISBN-13, EAN-8/13, UPC-A, GTIN-14/SSCC-18, ISSN (ISO 3297, X), ISIN (ISO 6166), CUSIP (ANSI X9.6), SEDOL (7 chars, weights 1,3,1,7,3,9, letters A=10…Z=35, vowels never issued; digit-leading codes are old-style and must be all digits), IBAN (ISO 13616, 75+ country BBAN table), CAS Registry Number (position-weighted mod 10), ABA routing number (3-7-1 weighted mod 10) and NPI (US provider id: Luhn over the constant 80840 prefix, entity-type first digit 1 or 2) — plus ISBN-10 ⇄ ISBN-13 conversion (978-prefix semantics, hyphen-group preservation), a single-edit repair search (checkdigit_repair: corrected check character, swapped adjacent pair or one mistyped payload character, every candidate re-validated by the scheme itself) and a batch validator (checkdigit_batch: 1–50 values in one call, per-row scheme/validity plus valid/invalid/unrecognized counts and a per-scheme breakdown; empty or oversized lists error out instead of truncating) — zero runtime dependencies, integer arithmetic only, separators ignored on input, anchors reproducible from the in-repo oracle | dsh plugin --profile web add github:TYEclipse/dsh-checkdigit#v0.4.0 | ✅ active | ✅ | ✅ e2e (isolated install #v0.4.0 friction=none, resolved 0.4.0; published artifact executed: 6 tools registered, sedol B15KXQ → B15KXQ8, sedol B15KXQ7 → expected 8, npi 1245319599 valid, batch auto-detect 8 values → 4 valid / 3 invalid / 1 unrecognized with luhn×2 sedol×2 ean13×1 iban×1 isbn10×1 unknown×1, sedol repair 19 candidates, scheme count 17, v0.3.x anchors (luhn 79927398714 expected 3, IBAN GB82…5432 formatted) unregressed; --dump-config layer checkdigit at 364 lines) | 2026-10-16 | e17c8d6 |
| dsh-musictheory | Music theory math toolbox: parse any note name into MIDI/octave/pitch class/exact 12-TET frequency with enharmonic spellings (note_info), frequency → nearest note with cents deviation (freq_to_note), correctly spelled chords for 26 qualities (chord_build — G# major is G# B# D#, Cdim7 is C Eb Gb Bbb), correctly spelled scales for 17 types (scale_generate — F# major has E#), interval engine (interval_build — G# + M3 = B#; interval_info — C→F# is an A4, C→Gb a d5, compound intervals), and scale harmonization (scale_harmonize — C major → I ii iii IV V vi vii°, sevenths: true → Imaj7 ii7 iii7 IVmaj7 V7 vi7 viiø7), spelling-aware transposition of 1-16 notes through the letter ladder (transpose — Bb3 G3 D4 up a M2 = C4 A3 E4, G#4 up a M3 = B#4, F#4 down a P4 = C#4; aliases tritone/octave/whole_tone), and chord identification by pitch-class set with inversions, slash notation and omitted-tone voicings (chord_identify — E G C = Cmaj/E first inversion, C E G A = both C6 and Am7/C, C Eb Gb Bbb = all four dim7 rotations, C E Bb D = C9 missing the fifth, a chord written on B# stays on B#) — zero runtime dependencies, pure arithmetic, configurable A4 reference pitch, and scale identification from played notes (scale_identify — C D E F G A B = C major plus A natural minor and the other modes of the same pitch classes; C D E G A = both C major and A minor pentatonic; C# D# E# F# G# A# B# stays C# major, never Db major; A B C D E F G# = A harmonic minor only; when nothing matches exactly it falls back to containing scales with the missing degrees listed, C E G = C major pentatonic missing D A) | dsh plugin --profile web add github:TYEclipse/dsh-musictheory#v0.4.0 | ✅ active | ✅ | ✅ e2e (isolated install v0.4.0 — friction=none, mirror; resolved.installed 0.4.0; wired into profile bundles; 10 tools registered; installed-copy execution: C major set -> C major total=7, C# major spelling preserved (7 sharps), pentatonic pair C/A minor, A harmonic minor unique, contains fallback C major pentatonic missing D/A, chord_identify + transpose regressions intact; 136 tests, coverage 91.86%) | 2026-10-18 | b8c3757 |
| dsh-chem | Chemistry math toolbox: chemical formula parsing with nested parentheses, hydrates (CuSO4·5H2O), ionic charges (Fe3+/SO4^2-, documented disambiguation rule) and IUPAC molar mass with per-element breakdown (formula_mass), mass/mole/particle conversions with Avogadro constant (mass_moles, 6 modes), solution concentration math — molarity, preparation mass, C1V1=C2V2 dilution, percent w/v·v/v·mass (solution), pH/pOH/[H+]/[OH-] + Henderson–Hasselbalch buffer math at 25 °C (ph), equation balancing with exact BigInt rational arithmetic — smallest integer coefficients, charge conservation as an extra constraint when a species is charged, hydrate water included, smallest-sum solution plus unique: false when several independent balances exist, honest "cannot balance" instead of dropping species (balance_equation), and ideal-gas arithmetic with fixed units atm/L/mol/K plus kPa·mmHg·mL·°C conversions — PV=nRT solved for the missing quantity, molar volume (22.413969545014133 L/mol at STP), density ρ=P·M/(R·T) and molar mass from a measured density (gas_law) — zero runtime dependencies, pure arithmetic over the 118-element IUPAC table, anchors from an independent Python oracle (own periodic table, own tokenizer, own Fraction-based balancer) cross-validated against published textbook values Also stoichiometry: limiting-reagent arithmetic from an equation plus each reactant amount (mol or g) — extent of reaction, which reactant runs out first, product masses, leftovers, and theoretical / percent yield; every reactant needs an amount (no silent “excess” assumption) and co-limiting amounts are reported as such. | dsh plugin --profile web add github:TYEclipse/dsh-chem#v0.3.0 | ✅ active | Zero runtime dependencies, no network, no telemetry, no install scripts — pure arithmetic over a bundled IUPAC table and BigInt rational balancing. | 150 tests / 90.35% coverage. Isolated install of github:TYEclipse/dsh-chem#v0.3.0: mirror first try friction=none, resolved.installed = 0.3.0, wired: true, chem layer in a 353-line composed config; installed copy registered all seven tools and reproduced the new anchors (Zn + 2 HCl limiting HCl → H2 0.2016 g) plus the v0.2.x anchors (permanganate 1/5/8/1/5/4, molar volume 22.413969545014133). Value oracle gained a --check self-verify against published molar masses, textbook coefficients, R, molar volume, the pH definition and mass conservation over every stoichiometry case (it caught a wrong product row while being written). Numbers 136 → 149 tests, coverage 88.89% → 90.35%. | 2026-10-19 | 262a2cf5818c8586ba8afb8fc6d2f2d02a4478c6 |
| dsh-probstat | Probability & statistical inference math toolbox: distribution calculator for six distributions — normal, binomial, poisson, exponential, uniform, geometric (pdf/cdf/survival/quantile/stats) (dist_calc), standard-normal z-table math — z ↔ probability/percentile, two-sided p-values, interval probabilities (z_score), confidence intervals — mean with z or Student-t critical values, proportion via Wilson score (confidence_interval), and event-probability identities — union/intersection/conditional/Bayes/complement/at-least-one (event_probability), one-sample hypothesis tests — mean with known sigma, mean with unknown sigma (Student-t, df = n − 1) and a single proportion against p0, reporting the statistic, all three p-values, the tail-specific critical value and the alpha decision, with a warning when the normal approximation is shaky (hypothesis_test), and sample-size planning for a target margin of error — mean closed form, proportion via Wald or the smallest Wilson-consistent n (sample_size) — zero runtime dependencies, pure arithmetic, normal quantile via Acklam (rel. err < 1.15e-9), Student-t cross-checked against published t-table values, anchors from an independent Python oracle (test/oracle/anchors.py), and two-sample hypothesis tests — difference of means with known sigmas (z), with unknown sigmas under Welch (unequal variances, fractional Welch–Satterthwaite df reported unrounded) or pooled (equal variances, df = n1 + n2 - 2) and a difference of two proportions (pooled normal approximation), reporting both estimates, the difference, the standard error, the statistic, df, all three p-values and the alpha decision, with a warning when the smallest expected cell is under 5 (two_sample_test), and two-sample hypothesis tests — difference of means with known sigmas (z), with unknown sigmas under Welch (unequal variances, fractional Welch–Satterthwaite df reported unrounded) or pooled (equal variances, df = n1 + n2 - 2) and a difference of two proportions (pooled normal approximation), reporting both estimates, the difference, the standard error, the statistic, df, all three p-values and the alpha decision, with a warning when the smallest expected cell is under 5 (two_sample_test) | dsh plugin --profile web add github:TYEclipse/dsh-probstat#v0.3.0 | ✅ active | ✅ | ✅ e2e (isolated install of github:TYEclipse/dsh-probstat#v0.3.0 — mirror first try, friction=none, resolved 0.3.0, wired into profile bundles; composed config 363 lines with the probstat layer; installed-copy execution of the published dist/ (not the source tree): 7 tools registered, two_sample_test anchors all match the in-repo oracle — mean_welch 5.2/4.6 sd 1.1/0.9 n 12/15 → t 1.524821541023691, df 21.166824916874845, two-sided p 0.1421069, critical 2.0786163; mean_pooled same data → pooledVariance 0.986, df 25, t 1.5601529; mean_z 102/98 sigma 10/12 n 40/50 → z 1.7245225, p 0.0846135, no reject; proportion 45/100 vs 32/90 → pooled p 0.4052632, z 1.3240058, one-sided p 0.0927506; v0.2.0 anchors not regressed: hypothesis_test z 0.8, sample_size n 35, normal cdf(1.96) 0.9750022) | 2026-10-21 | 66bcd3c |
| dsh-linalg | Linear algebra math toolbox: matrix multiplication with dimension checking (matrix_multiply), single-operation matrix math — transpose / determinant / inverse / trace / reduced row echelon form / rank / integer powers (matrix_compute), matrix factorizations (matrix_decompose: LU with partial pivoting P·A = L·U and singular matrices flagged, thin QR A = Q·R with a positive R diagonal, Cholesky A = L·Lᵀ for symmetric positive definite input — each returning the reconstruction residual it actually measured), symmetric eigen-decomposition with descending eigenvalues, unit eigenvectors signed so the leading non-zero component is positive and a measured max\|A·v − λ·v\| residual (matrix_eigen), least squares for overdetermined systems — the minimizer of \|\|A·x − b\|\|, the minimum residual norm and max\|Aᵀ(A·x − b)\|, rank-deficient or underdetermined input rejected instead of picking one arbitrary minimizer (least_squares), linear system solver Ax=b with unique / infinite (particular solution + nullspace basis + free-variable count) / no-solution classification (solve_linear), and vector operations — dot / cross (3D) / norm / projection / angle in degrees (vector_ops) — zero runtime dependencies, pure local arithmetic, Gaussian elimination with partial pivoting, outputs rounded to 10 decimals, singular and inconsistent systems fail cleanly with explicit messages, anchors from an independent exact-arithmetic (fractions) oracle | dsh plugin --profile web add github:TYEclipse/dsh-linalg#v0.3.0 | ✅ active | ✅ | ✅ e2e (R76 reverification of v0.3.0: isolated install of github:TYEclipse/dsh-linalg#v0.3.0 via mirror, resolved 0.3.0, wired, linalg layer in a 363-line composed config; installed-copy run of the published dist passed 9/9 anchors — matrix_decompose lu on [[2,1,1],[4,-6,0],[-2,7,2]] → p [1,0,2], det −16, residual 0, L/U as documented; qr on [[3,0],[4,5]] → Q [[0.6,-0.8],[0.8,0.6]], R [[5,4],[0,3]]; cholesky on [[4,12,-16],[12,37,-43],[-16,-43,98]] → L [[2,0,0],[6,1,0],[-8,5,3]], det 36; indefinite input rejected with the pivot −3; least_squares fit → x (0.6666666667, 0.5), residual norm 0.4082482905, normal-equation residual 0; rank-deficient input rejected with rank 1; v0.2.0/v0.1.x anchors unchanged — det −1, eigen 3/1, solve (2.2,1.2), cross (−3,6,−3); oracle test/oracle/anchors.py section D re-derives every new anchor independently — exact fraction elimination for LU/Cholesky/least squares plus classical Gram–Schmidt for QR, with a --check that asserts L·U = P·A, QᵀQ = I, L·Lᵀ = A and residual orthogonality) — earlier R58 e2e: installed copy 22/22 anchors; non-symmetric and non-square input fail cleanly | 2026-10-22 | e70472b |
| dsh-complex | Complex-number math toolbox: parse rectangular/polar strings into the full identity (complex_parse — "3+4i"/"5∠53.13°", modulus, argument rad & deg, conjugate), one-operation arithmetic — add/subtract/multiply/divide/conjugate/reciprocal/integer power via De Moivre plus the general complex power a^b = exp(b·log a) with both operands complex and honest 0^0 / 0^non-positive rejections (i^i, 2^(1+i), (-1)^0.5) (complex_calc), polar ↔ rectangular conversion (complex_convert), principal values of exp/log/sin/cos/tan/sinh/cosh/sqrt plus the six inverses asin/acos/atan/asinh/acosh/atanh with each branch cut reported in the note (complex_functions), complete n-th root sets listed from the principal root (complex_roots, n ≤ 64), a solver for quadratics with complex coefficients — discriminant, both roots, the Vieta invariants −b/a and c/a, each root's residual, linear degeneration and an honest every-z / no-solution (complex_quadratic), and polynomials with complex coefficients, highest power first (complex_poly) — Horner evaluation of p(z) and p'(z), and every root up to degree 12 by Durand–Kerner with each root's residual and a real converged flag, multiple roots reported once with their multiplicity instead of near-duplicate numbers (z³-6z²+11z-6 → 1, 2, 3; (z-1)² → 1 ×2) — zero runtime dependencies, closed-form formulas on the principal branch (C99 continuation exactly on the cuts), output rounded at the boundary only, anchors from an in-repo independent Python oracle (cmath for functions, closed forms + Vieta invariants for roots) | dsh plugin --profile web add github:TYEclipse/dsh-complex#v0.3.0 | ✅ active | ✅ zero deps, no network | ✅ e2e (isolated install #v0.3.0 friction=none, resolved 0.3.0, wired; installed-copy execution: 7 tools, p(1+i) of z²-1 = -1+2i with p' 2+2i, z⁴-1 → -1, -i, i, 1 with max residual 0, (z-1)² → single root 1 with multiplicity 2 and distinct 1/2, (z-1)(z-2)(z-3) → 1, 2, 3, z²+iz+1 → golden-ratio pair 0.6180339887i and -1.6180339887i, degree 13 rejected with the reason; older anchors not regressed — i^i 0.2078795764, asin(2) 1.5707963268+1.3169578969i, 1^(1/4) = 1, i, -1, -i, z²-2z+2 → 1±i; 207 tests, coverage 94.20%; oracle section E self-check green) | 2026-10-23 | bcea9fa |
| dsh-boolean | Boolean algebra toolbox (zero runtime dependencies, pure local computation): truth_table (every assignment row up to 8 variables with minterm/maxterm summary and canonical DNF/CNF), logic_eval (one complete assignment, missing variables reported instead of defaulted), logic_equiv (all rows of the combined table, differing-row count plus a concrete counterexample), logic_convert (nnf / dnf / cnf / nand / nor), logic_minimize (Quine–McCluskey to a minimum sum of products: prime implicants, essential ones, minimum term count with ties broken by literals then reading order, optional dontCare minterms, and the exact cover terms in answer order) and v0.3.0's logic_kmap (Karnaugh map over 1–4 variables on Gray-coded axes, cells drawn as 1 / x / 0, every term of the minimal cover mapped back to the row/col/minterm cells it circles, each group flagged essential and flagged when it wraps around an edge) | dsh plugin --profile web add github:TYEclipse/dsh-boolean#v0.3.0 | ✅ active | ✅ zero runtime dependencies, no install scripts, no native binaries, no telemetry and no network access at all — every tool is local arithmetic over the parsed expression; no credential or file access | ✅ e2e (R78: isolated install of github:TYEclipse/dsh-boolean#v0.3.0, friction=none, resolved 0.3.0, wired; 363-line composed config with the boolean layer; installed-copy execution of the published dist — 6 tools registered, logic_kmap on a don't-care case returns minimal a over 4 cells, and the v0.2.0 anchors do not regress (majority a & b \| a & c \| b & c with coverTerms, three-way XOR minterms 1,2,4,7, a -> b false at a=1,b=0, De Morgan equivalence over 4 rows); 168 tests, coverage 96.95%, oracle test/oracle/anchors.py with a --check self-test that lays the K-map out independently in Python. NOT run: LLM-driven headless session (@deepseek-ai/dsh-headless cannot be installed on this host)) | 2026-10-24 | 0810b38 |
| MemOS Cloud for DSH | Cloud lifecycle-memory plugin: pre-step recall injection and post-turn memory sync backed by the MemOS Cloud API (memos.memtensor.cn); no tools registered — agent/pre-step + session/event hooks with graceful degradation when no API key is configured; MIT | dsh plugin --profile web add @memtensor/memos-cloud-dsh-plugin@0.1.0 | ⚠️ blocked on dsh 0.2.0-rc.2 (install rejected) | ✅ | ⚠️ re-check 2026-10-09 FAILED: the runtime refuses to install it — both 0.1.0 and 0.1.1 declare peerDependencies pinned to ^0.1.0-rc.6 \|\| ^0.1.2-rc.1, so dsh 0.2.0-rc.2 rejects the install on both the China mirror and npmjs (exact-version exemption not granted). Previous verification 2026-08-20 (on the 0.1.x runtime): headless turn completed with the plugin mounted and no-credential degradation verified. Needs an upstream release compatible with dsh 0.2.x; failure 1/3 before the row is removed from the table | 2026-10-09 | 0.1.0 |
| PicGo Upload for DSH | Image & file uploading to the user's configured image host (PicGo Cloud, GitHub, S3, …) via the PicGo engine: picgo_upload tool + /picgo command + bundled picgo-upload skill; prefers the running PicGo desktop app (local server, 127.0.0.1:36677) and falls back to the in-process PicGo library reading ~/.picgo/config.json; MIT | dsh plugin --profile web add @picgo/dsh-plugin@0.2.0 | ✅ active | ✅ | ✅ e2e (R67 re-verify of the expired row: upstream latest is still 0.2.0 so no re-pin; isolated install friction=none, resolved 0.2.0; structure — dsh.bundle.patch → cordis.patch.yml, lib/, skills/picgo-upload/SKILL.md all present; boot/compose check — the picgo layer mounts in --dump-config (367-line dump); earlier evidence stands: picgo-upload skill surfaced in a headless session, signed-out degradation relays /picgo login with no hang and empty input is rejected) | 2026-10-12 | 0.2.0 |
| WeKnora for DSH | Tencent WeKnora knowledge-base plugin: four tools — list the credential's knowledge bases (weknora_list_knowledge_bases), hybrid vector+keyword retrieval returning passages verbatim with rank/score/chunk metadata plus by-name document matches (weknora_search), reassembled document reading with paging and generated summaries (weknora_read_document), and WeKnora-composed answers with citations (weknora_ask) — env-var configuration (WEKNORA_BASE_URL / WEKNORA_API_KEY / WEKNORA_KNOWLEDGE_BASE_IDS), load-time config validation, tool prefixing for two deployments side by side; zero runtime dependencies, MIT | dsh plugin --profile web add @wxg-prc-cpg/dsh-weknora@0.1.0 | ✅ active | ✅ | ✅ e2e (isolated install; 4-tool registration verified; list / search / read_document executed against a mock deployment — ranked passages with scores, named-document enrichment, ordered chunk assembly; unreachable deployment errors cleanly and fast; headless mount session 17×23=391) | 2026-10-16 | 0.1.0 |
| dsh-web | DSH Web GUI plugin family (npm aggregate @linxin666/dsh-web-all of 19 family packages + external dsh-better-sidebar): task board with host-side cron execution, mobile/PC remote access via device pairing, SSH panel (terminal / transfer / tunnels), usage stats, model capability profiles, session archive with auto policies, git graph, preset / skin / market / community browsers, pet, i18n — mounted as 20 namespaced web-ui- rows (counted in a 1330-line composed config at 0.4.6); five opt-in rows (ssh / describe-image / liangshen / skill-explorer / doctor) ship disabled by default; Apache-2.0 | dsh plugin --profile web add @linxin666/dsh-web-all@0.4.6 | ✅ active | ✅ (anon. daily install heartbeat — code-confirmed at 0.4.6 and documented; package name + version + a localStorage UUID, no conversation data) | ✅ e2e (R72 reverification: stale row 31 d → upstream had moved 0.3.22 → 0.4.6, re-pinned; isolated install 0.4.6 via mirror, resolved 0.4.6, friction = allowBuilds for cloudflared/cpu-features/ssh2 (documented in the upstream 安装排障 section); 20 web-ui- rows in a 1330-line composed config; boot smoke 401 → 303 + Set-Cookie → 200 with data-dsh-skin=blue-fantasy, skin-center client module served 200 / 268889 B with a matching module id; unverified: live SSH panel, host-side cron run, device pairing, market/community browsers) | 2026-10-17 | 3cd1849 |
| dsh-market | Visual plugin market inside DSH: browse/search the community catalog (2300+ plugins) with category filters and host-aware compatibility hints; one-click install (prefers repo-verified npm packages, then prebuilt GitHub Release tarballs, then source), per-plugin update checks, community themes/skins with live switching, favorites, backup & restore (readable JSON export / WebDAV / private GitHub Gist), hot enable/disable and load-order editing via the profile patch layer, a plugin diagnostics page, and a capability-gated public update API v1 — MIT | dsh plugin --profile web add dshmarket@1.66.37 | ✅ active | ✅ (no telemetry — "never phones home"; documented outbound: catalog + GitHub content routes, gh-proxy/ghfast acceleration fallbacks; comments contact giscus.app/GitHub only when opened; installs restricted to the curated registry; build scripts stay blocked by default; same-origin install endpoint) | ✅ e2e (re-verified 2026-10-18 from 1.47.0 → 1.66.37 — isolated install dshmarket@1.66.37, prebuilt npm, friction=none on mirror, resolved.installed 1.66.37; dsh-market layer in the 369-line composed config; web boot smoke 401 → 303 + Set-Cookie → 200; live /dsh-market/api/v1/capabilities → 200 JSON, marketVersion 1.66.37, schema dsh-market/update-api/v1, features check/update/progress/rollback true, restart false (operator-managed). Not verified: in-page client module — no dsh-market entry in the served /plugins/?? modules bundle under host 0.2.1-rc.2, so the rendered market UI itself was not inspected; client-side install/theme flows untested) | 2026-10-18 | 8470948 |
| dsh-honcho | Honcho memory for DSH — persistent cross-session memory that survives context resets: injects your profile, this project's session summary and Honcho's relevant conclusions at session start, captures every user/assistant turn in the background (debounced, flushed at turn boundaries, before compaction and on shutdown) with best-effort secret redaction, and registers three tools — honcho_search (raw messages plus derived conclusions), honcho_chat (judgement questions over everything Honcho knows) and honcho_remember (durable facts / preferences / decisions); configured through the shared ~/.honcho/config.json contract (workspace, peer name, baseUrl, global kill switch), shared with the sibling claude-honcho / codex-honcho integrations — MIT | dsh plugin --profile web add @honcho-ai/dsh-honcho | ⚠️ blocked on dsh 0.2.1-rc.2 | ⚠️ memory-service client: captured session text is uploaded to api.honcho.dev by default (self-hostable via baseUrl / HONCHO_BASE_URL); secrets are regex-redacted before upload and the redactor is documented as best-effort, so novel secret formats can pass through; also reads/writes ~/.honcho/config.json and shells out to git for repo metadata; no telemetry or analytics SDKs found | ⚠️ blocked — two independent blockers found in the 30-day re-verify. (1) The repository linked here (plastic-labs/dsh-honcho) now returns 404 on GitHub, while the parent plastic-labs/honcho is alive; the npm package still declares repository: plastic-labs/dsh-honcho. (2) No published version installs on dsh 0.2.1-rc.2: 0.1.0/0.1.1 pin 0.1.2-alpha.3 of the seven host packages and 0.1.2 requires <=0.2.0-rc.1; mirror and upstream both reject at the peer gate (forcing it would need dsh plugin allow-version --accept-risk, not a normal install path). Previous verification (2026-09-18, 0.1.0 on host 0.1.5-rc.2) passed: prebuilt tarball, honcho layer composed, graceful no-credential degradation (Memory is off) and the turn still completed; the memory round-trip was never exercised (needs a Honcho key or a self-hosted instance). Failure count 1/3 — re-check when the repo is back and the peer range covers the current host. | 2026-10-19 | e3adb1c61ee84415629a49fe12286bcd3603116b |
| dsh-ouroboros | Ouroboros (spec-first AI dev workflow engine: Socratic interview → Seed spec → execute → evaluate → evolve) mounted into DSH as native tools by a config-only bundle row that spawns ouroboros mcp serve over stdio — 36 tools registered (ouroboros_interview / ouroboros_pm_interview / ouroboros_generate_seed / ouroboros_execute_seed / ouroboros_auto / ouroboros_evaluate / ouroboros_evolve_step / ouroboros_qa / ouroboros_ralph …) so "ooo interview <goal>" or "ooo auto <goal>" in chat resolves to the matching tool on its own; ouroboros_auto gets a 30-minute MCP timeout, the execution step defaults to the host model (OUROBOROS_AGENT_RUNTIME=host) with claude-cli / codex / opencode selectable, and failOnStartupError: false keeps DSH booting on machines without uv/Ouroboros — MIT | dsh plugin --profile web add "github:Q00/ouroboros#dce77a2&path:integrations/dsh-plugin" | ✅ active | ⚠️ anonymous usage telemetry is on by default (PostHog us.i.posthog.com via the bundled ouroboros-ai Python package): closed command/status dimensions, runtime backend, version, OS and failure-reason codes only — never code, prompts, seed content, file paths or arguments; identity is a random UUID; opt out with DO_NOT_TRACK=1, OUROBOROS_TELEMETRY=0 or telemetry.enabled: false in ~/.ouroboros/config.yaml (contract in the repo's TELEMETRY.md). The row also forwards DEEPSEEK_API_KEY + ANTHROPIC_API_KEY into the spawned child (explicit short allowlist after dsh's credential scrub), executes a third-party PyPI distribution at runtime, and keeps its project state in the working directory it is launched from | ✅ e2e (isolated install of github:Q00/ouroboros#main&path:integrations/dsh-plugin — whole-repo clone ~3m50s, +1 package, no build step; dsh-ouroboros layer with the mcp-ouroboros row present in the composed config; LLM-driven headless turn on host 0.1.5-rc.2 — 36 tools registered from ouroboros-ai 0.54.4 and a real ouroboros_project_status call returned its payload, clean shutdown, rc=0. Needs Python ≥3.12 for uvx, which does not auto-download it: on a 3.11 host the row soft-fails silently and no ouroboros tools appear — remedy uv python install 3.12 (verified here) or UV_PYTHON=3.12. Installs were unpinned (#main) until R74; now pinned to a commit, since no tag or npm package exists. Full interview → seed → execute → evaluate workflow not exercised) \| R74 re-verify 2026-10-20 at commit dce77a2 (friction=none, resolved 0.1.0, wired): layer mcp-ouroboros present in a 384-line --dump-config; uvx --from 'ouroboros-ai[mcp]' --with 'mcp==2.0.0' ouroboros mcp serve served MCP over stdio — initialize OK (server ouroboros-mcp 0.59.0, was 0.54.4) and tools/list returned 36 tools (the start_ variants are new upstream names; every tool named in this row still exists). New startup gate found: the server now refuses to boot when no executable runtime is configured ("cannot host the 'claude' SDK runtime") — the row's default OUROBOROS_AGENT_RUNTIME=host covers it, but a manual ouroboros mcp serve without that env var exits immediately. Not re-run: LLM-driven headless turn and the full interview -> seed -> execute workflow | 2026-10-20 | dce77a2 |
| ModLens | Vision bridge for text-only models: registers one modlens_read_image tool (name configurable) and auto-discovers every provider route that carries an eligible text-only DeepSeek / GLM / MiMo model, adding a "(modlens vision)" wrapped entry per route so a pasted image is turned into structured JSON evidence at request time — summary, full transcription, reading-order layout regions, entities and relations, and an explicit uncertainty list instead of invented values; the engine is the CLI shipped inside the same package (dist/main.js, spawned from the plugin and version-locked to it), providers / keys / failover / cooldown / reuse grants live in a shared ~/.modlens/config.json, modlens doctor reports local routing and providers offline without spending quota; can reuse existing logins of locally installed agents (Claude Code, Codex, OpenCode, Pi, Kimi CLI) and ships a zero-config start — MIT; from 3.27.0 the pasted-image evidence carries an attachment-id: sha256:… line and modlens_read_image accepts that id as its path, so a model can re-read a pasted image with a new focus from the attachment store (only images this plugin read in the session resolve; 256 most recent) — MIT | dsh plugin --profile web add @liustack/modlens@3.27.1 | ✅ active | ⚠️ no telemetry or analytics SDK in the package (no PostHog/Sentry/GA/analytics libs, no install-time scripts — only a prepublishOnly release hook), but it is a vision bridge by design: the image leaves the machine to whichever third-party provider is selected (Antigravity CLI built-in default, or Gemini API / OpenAI / Anthropic / agent CLIs with user-supplied keys in ~/.modlens/config.json), and it can reuse logins of other locally installed agents — on the verification host modlens doctor printed decisions: claude granted, codex not asked, opencode not asked, pi not asked, grok not asked, i.e. the Claude Code reuse grant is on by default; it spawns the bundled CLI as a child process, recovers pastes as 0600 files in fresh 0700 temp dirs and deletes the throwaway working copy after the read, and redacts keys from errors. Its own docs/security.md is unusually explicit (image content treated as untrusted input, --dangerously-skip-permissions for agy, --allowedTools Read for claude-cli, kimi-cli run only when named) and states plainly that this is exposure reduction, not a sandbox | ✅ re-verified at 3.27.1 (2026-10-21, stale-row queue): upstream moved 3.26.2 → 3.27.1 (3.26.3 CJK chunk-decode fix, 3.26.4-3.26.6 dsh settings/route-discovery fixes, 3.26.5 config-card retry, 3.27.0 attachment-id re-read, 3.27.1 npm bin packaging warning only) — isolated install of the prebuilt npm tarball, mirror first try, friction=none, resolved 3.27.1, wired; modlens layer present in the composed config (363 lines); modlens doctor ran clean and offline on the host (Node v26.8.1 ≥ 22.19, node:sqlite available, guard verdict allow, reuse decisions claude granted); dependencies are commander + undici only, no install scripts beyond prepublishOnly. NOT re-exercised: the actual vision read (this host has no provider configured — image → evidence still never produced here), the 3.27.0 attachment-id re-read path (needs a live session with an image this plugin already read), and the config card in the browser. Original 3.26.2 verification (LLM-driven headless turn: modlens_read_image registered and invoked, bundled CLI spawned) stands. | 2026-10-21 | aa108d1 |
| dsh-better-sidebar | Sidebar workbench for the DSH web GUI: registers its tab types through DSH's native right-sidebar API (ctx.sidebarRightTabs / ctx.sidebarRight, dsh-resource://file/… opens) and keeps a bottom workbench — lazy file explorer, CodeMirror editor, inline previews (Markdown with Mermaid and DOMPurify-sanitised README-level HTML, HTML, PDF), multi-tab embedded browser (sandboxed iframe; HTTPS goes to the system browser by default), a real terminal (xterm.js + a runtime-resolved node-pty, reconnect replay, opt-in terminal_ tools for the model), a git workbench (real diffs, history, commit graph, stage/commit/restore — no push/pull/fetch) alongside a per-turn changed-file view, background-task and subagent pages, side chat threads, pinned terminals, session-isolated layout, declarative per-feature settings, and an opt-in sidebar_open tool — the same ctx.betterSidebar service is open to third-party plugins (registerTab / registerFileViewer / registerFileIcon), MIT | dsh plugin --profile web add dsh-better-sidebar@0.28.0 | ✅ active | ⚠️ local-capability disclosure: reads/writes files inside the session cwd, spawns a real shell through node-pty (resolved at runtime; the UI shows a repair hint when it is missing) and runs the git CLI (stage/commit/restore only — no push/pull/fetch, no identity changes), all behind the host's token + Host-header trust fence (verified: a foreign Host header gets 403); HTML and browser content renders in opaque-origin sandboxed iframes (CSP sandbox; the address bar rejects javascript:/data:/file: and loopback URLs by default; the sandbox can be switched off per feature in settings, with a warning) — upstream README documents the trust-fence and sandbox model; no telemetry or analytics SDK and no install-time callbacks (scanned the shipped bundles: the only posthog/sentry/mixpanel/amplitude/segment hits are English words in comments and vendored JSON-RPC type names; endpoint scan finds documentation URLs only), so outbound traffic is limited to URLs the user opens in the embedded browser tab and to the user's own git remotes | ✅ e2e (R76 reverification of the 31-day-stale row: upstream had moved 0.19.1 → 0.28.0, re-pinned; isolated install 0.28.0 via mirror, resolved 0.28.0, friction = none — the pnpm 11 node-pty approve-builds step that 0.19.1 needed is gone, node-pty is now runtime-resolved with an in-UI repair hint documented upstream; wired, better-sidebar row in a 366-line composed config; boot smoke 401 → 303 + Set-Cookie → 200 with data-dsh-skin; client module plugins/??dsh-better-sidebar/client.js 200 / 1 523 297 B and the descriptor's inject list matches package.json 5/5; host routes answer with validation (POST /sidebar/api/fs.tree → 400 missing sessionId) and the token/Host fence holds (foreign Host → 403). Note the R45 probe POST /sidebar/api/terminal.deps no longer exists — API methods are dotted names now (fs.tree, git.branch, changes.ops, …); unverified: interactive sidebar UI (file tree clicks, editor save, git stage/commit, terminal session with a real pty, side chat, background-task pages) — needs a browser-driven session on a host with node-pty) — earlier R45 e2e: 0.19.1 installed with the documented approve-builds step, terminal.deps → 200 | 2026-10-22 | 83faf70 |
| dsh-TUI | Interactive terminal interface for DeepSeek Harness — pixel-whale header, live work-status line (model, reasoning effort, tokens, TPS, cache-hit rate, git/session info), streaming thinking display, double-Esc time rewind, context progress bar, session management shared with /resume//home//bg (workspace registry persisted to ~/.dsh-tui, pinning, cross-terminal takeover rules), model hot-switching, session fork/compact/export, native subagents, vim input mode and full-screen draft editor, /settings toggles (terminal images, mermaid diagrams rendered to Unicode, whale idle animation), inline image preview via Kitty graphics / Sixel with text fallback, VS Code extension launch mode with editor-selection piping, and a self-updating launcher (dsh-tui / dst) — mounted as a pure plugin bundle patch over dsh-base (18 restated rows, no core patching; uninstall leaves nothing behind); MIT | dsh plugin --profile web add @deepseek-harness-tui/dsh-tui@0.16.1 | ✅ active | ⚠️ no telemetry or analytics SDK in the package (telemetry stays opt-in behind the host's DSH_TELEMETRY_MODE, restated explicitly in its own patch layer), and outbound traffic only happens on explicit user action: the launcher update subcommand / /update queries the npm registry and api.github.com for the latest release and verifies SHA256SUMS before installing a standalone package, and the balance feature calls api.deepseek.com/user/balance with the user's own DEEPSEEK_API_KEY; boot itself makes no call. Local capabilities are documented: /restart spawns a replacement process, it reads/writes ~/.dsh-tui (workspace registry, pins) and $DSH_HOME profile state, and update rewrites only its own launcher file + package.json | ✅ re-verified 2026-10-23 (stale row, 31 days): upstream had moved 0.10.2 → 0.16.1 — isolated install @deepseek-harness-tui/dsh-tui@0.16.1 friction=none, resolved 0.16.1, wired; composed config 599 rows with base rows patched by @deepseek-harness-tui/dsh-tui (its patch restates only the rows it owns and leaves sandbox/approval policy, tools and telemetry inherited unchanged from dsh-base); launcher runs — node bin/dsh-tui.js --version → '@deepseek-harness-tui/dsh-tui 0.16.1 (launcher)'; peer ranges explicitly include dsh-agent/dsh-web-app 0.2.1-rc.2 (matches host) and engines.node is ^22.19 \|\| >=24. ⚠️ not run: the interactive full-screen session — this headless runner captured no TUI output, so the whale header/session UI paths were not re-exercised (previous 0.10.2 session verification stands as history) | 2026-10-23 | c7606fc |
| ReMe | Long-term memory for DSH from the ReMe memory kit (Apache-2.0, AgentScope): instead of dumping history into the prompt, the plugin injects long-term-memory guidance at session start (when to consult memory, treat retrieved memory as evidence rather than instructions) and registers one read-only tool — reme_search (query, optional limit 1–50, min_score) which returns ReMe's answer, 'No relevant memory found.', or an explicit 'ReMe search failed: …' instead of an invented answer; completed user/assistant turns are captured per session and submitted to ReMe auto_memory (default every 5 turns plus a shutdown flush; plugin context and tool results are excluded from capture so they cannot be laundered back into memory), and autoDreamEnabled runs a daily auto_dream pass (default 0 23 * * * in workspace timezone) that consolidates journal files into a deduplicated personal knowledge base; mounting is one isolated remeMemory runtime row, and the package also ships a web Status page (connectivity/version, Auto Memory pipeline, consolidation, component health, Journal and personal-KB browsers); every knob is exposed in DSH settings (endpoint, language en/zh, searchLimit, autoMemory/autoDream switches, dreamCron, timezone), and the plugin is a client — it needs a ReMe service (default endpoint http://127.0.0.1:2333, local-first). 0.1.2 targets the current host line (peer ranges ^0.1.7-rc.2 \|\| ^0.2.0-rc.2 \|\| ^0.2.1-alpha.2, verified on 0.2.1-rc.2) | dsh plugin --profile web add @agentscope-ai/reme-dsh-plugin@0.1.2 | ✅ active | ⚠️ no telemetry or analytics SDK in the package (no PostHog/Sentry/mixpanel/GA/umami, no install-time callbacks — the only external URLs in dist/ are a 127.0.0.1 default endpoint and a website link button on the status page, not a data endpoint), and no credential/apiKey/Bearer handling; but capture is on by default: autoMemoryEnabled submits finished conversation turns to the configured ReMe endpoint, which defaults to local http://127.0.0.1:2333 (ReMe's HTTP API has no authentication — upstream warns against exposing it, and pointing endpoint / REME_URL at a remote host means conversation text leaves the machine); only user and assistant text is captured (measured at 0.1.0: the auto_memory payload carried exactly those two messages, no plugin context, no tool results), no local disk writes by the plugin itself (the ReMe service owns the daily/ + digest/ workspace files), and no credentials are read | ✅ e2e (R78 re-verification of the 30-day row, upstream 0.1.0 → 0.1.2; commit e478b680 is the last integrations/dsh change before the 0.1.2 publish — the repo has no CHANGELOG. Isolated install @agentscope-ai/reme-dsh-plugin@0.1.2: friction=none, and an improvement over the first verification — the package is now on the China mirror, so the old mandatory --registry=https://registry.npmjs.org flag is gone; resolved.installed 0.1.2, wired; the reme-memory-scope group row (isolate: remeMemory) with the nested reme-memory row is in a 608-line composed config; boot smoke 401 → 303 + Set-Cookie → 200 (38013-byte served page), the page's plugin descriptor serves @agentscope-ai/reme-dsh-plugin/client.js 200 / 113629 B and its inject list matches dsh.client.inject 6/6. NOT run: a real ReMe session (no deployment on this host, so reme_search and the auto-memory flush were not exercised; the 0.1.2 delta is host-RC support), Node-level import of dist/index.js (never settles outside the host runtime), LLM-driven installed-copy execution (@deepseek-ai/dsh-headless cannot be installed on this host), and the six status-page tabs at UI level) | 2026-10-24 | e478b680 |
| dsh-whale-widget | DeepSeek balance pet for the DSH web GUI: a floating whale in the bottom-right corner that keeps an eye on the account balance, today's usage and peak/off-peak pricing, mounted as one bundle row; bubbles are fully configurable (click sequence of text / balance / today / peak-valley / images / weighted random statements), with per-line typography, drag-and-snap plus left-edge flip, custom roles / animations / sounds, per-turn cost readout and a hover quick-edit popover — and 32 built-in provider templates (DeepSeek, Moonshot CN + Intl, OpenRouter, SiliconFlow CN + Intl, StepFun, Novita, Ark, DashScope, Qianfan, GLM, Hunyuan, xAI, OpenAI, Gemini, Groq, Mistral, Together, Fireworks, Cerebras, DeepInfra, ModelScope, OpenCode Zen, custom models) so one widget can show whichever vendor you actually pay; today's usage is estimated from local session events rather than fetched from the cloud; code is MIT | dsh plugin --profile web add dsh-whale-widget@0.4.2 | ✅ active | ⚠️ no telemetry, no analytics SDK, no install-time callbacks and no conversation data leaving the machine; it resolves each vendor's key through the host credential store (env works too) and sends it as Bearer only to that vendor's own balance/usage endpoint (32 built-in templates, each called only when configured as the current model; no third-party relay, no usage upload — "today's usage" comes from local session events); local state lives in $DSH_HOME/.dshw-.json plus $DSH_HOME/whale-{roles,bubble-imgs,audio}/ for custom art and sound, and the source comments state that keys are not written into those files (they go to the host credential store); the update check shells out to a fixed literal npm view dsh-whale-widget version (no user input, no local data sent); the code is MIT while the assets/ artwork and audio are not MIT-covered (upstream PROVENANCE.md ships them as-is, no relicense, takedown on claim) | ✅ e2e (R79 re-verify of npm dsh-whale-widget@0.4.2 — China mirror on the first try, prebuilt, friction=none, resolved 0.4.2, wired=true; dsh-whale-widget row inside a 1440-line composed profile tree; web boot smoke 401 → 303 (+Set-Cookie) → 200 with the page referencing /dsh-whale/widget.js, which serves 200 at 1 142 585 bytes once authenticated (401 without the cookie — 0.4.2 put the asset behind the token, 0.3.11 served it publicly) and /dsh-whale/{balance,roles,size,about,last-turn}.json all 200, a foreign Host header getting 401; /dsh-whale/balance.json returned a real balance reading with balanceSource=apikey and version 0.4.2; tarball shasum 4616cb42…, install-tree lib/index.js sha256 9f7ec013…; not run: browser interaction (bubble sequences, hover quick edit, drag/snap, role-image upload), audio playback, a peak/off-peak transition window, and an LLM-driven headless session — @deepseek-ai/dsh-headless is not installable on this host, an environment limit rather than a candidate defect) | 2026-10-25 | 5247dd6813d6e4430728f39ccc63d43cda046022 |
| treg | Tool registry and credential-injecting proxy for agents ("OpenRouter, but for agent tools"): this bundle ships the packaged treg skill plus a token-gated MCP connector row. The skill — a 28 KB SKILL.md published through a ctx.skills provider implemented directly inside the package (plain hand-written ESM, no build step, no @deepseek-ai/ dependency, so a github: install needs no allowBuilds approval) — tells the agent when to reach for the catalog and how to call it by the task at hand, not by vendor: 3,600+ endpoints across 97 providers covering SEO/SERP data, keyword volume, backlinks and site authority, AI visibility, social profiles and trends, people/company enrichment, ad libraries, web data, and image/video/voice generation. The second row mounts @deepseek-ai/dsh-mcp-client against https://treg.to/mcp/ (streamable-http) and registers mcp__treg__catalog_search / catalog_get / call / balance / my_tools — but only when TREG_TOKEN is present at boot: the row carries disabled: !!js (process.env.TREG_TOKEN ?? '') === '', so a tokenless install gets a clean profile with zero always-on 401-ing tools and a skill that walks the human through sign-in instead. Own credentials never leave the server: the registry injects auth upstream-side, treg's own accounts cover subscription-walled providers, and calls are metered per use (new teams get $1 of trial balance). Apache-2.0 | dsh plugin --profile web add github:superdesigndev/treg#06d0428 | ✅ active | ⚠️ no telemetry or analytics SDK in the package, no install-time callbacks, and boot makes no outbound call (the shipped skill is a local static file); the network exposure is the connector, which is off unless TREG_TOKEN is set: it then talks to the hosted commercial service treg.to and sends the tool-call arguments and results with Authorization: Bearer $TREG_TOKEN. Worth knowing before installing: with no token the skill steers the agent to the CLI path — curl -fsSL https://treg.to/install.sh \| sh then treg login — i.e. an agent-executable remote install script; the plugin itself writes nothing to disk and reads no credential files, TREG_TOKEN comes from the environment only. Upstream documents the row's boot-time gate, the token contract and the deliberate exclusion of treg mcp install in docs/DSH-PLUGIN.md | ✅ e2e (re-verified 2026-10-26 at commit 06d0428 / package 0.27.0 — isolated install github:superdesigndev/treg#06d0428: China mirror on the first try, friction=none, resolved 0.27.0; the composed profile tree (1459 lines) carries treg-skill + treg-mcp, and the MCP row is still gated by disabled: !!js (process.env.TREG_TOKEN ?? '') === ''. Installed-copy execution of the published bundle: apply() registers exactly one ctx.skills provider, list() returns the single model-invocable skill treg (source bundled, rank 600), get() returns the 28,696-byte SKILL.md whose frontmatter name is treg. The files whitelist still fetches only dsh/index.js, dsh/cordis.patch.yml and dsh/skills — the monorepo around them (1370 commits ahead of the previous pin) is never cloned. The real MCP session is still not exercised — no valid TREG_TOKEN on the verification host, and no paid catalog call was made. Upstream publishes no tags or releases, so the pin is a commit.) Previous verification (2026-09-25, commit d4f2949 / package 0.21.3): isolated install friction=none, 4-entry whitelist, 539 → 551 composed lines, skill provider list()/get() at 28,447 bytes, web boot smoke 401 → 303 (+Set-Cookie) → 200, fake-token boot clean; the dsh install command lives in docs/DSH-PLUGIN.md, not the README. | 2026-10-26 | 06d0428 |
| DSH Intelligent UI | Interactive answers inside DSH Web: the agent answers with real interfaces instead of prose — calculators, charts (line/area/bar/scatter/pie with an accessible raw-data table), tables, forms, checklists, diagrams, simulations and small games — authored as openui fenced blocks, rendered by a client module that reuses the host's models, sessions and tool loop. Local controls (inputs, counters, sliders, tabs, scene playback with click/key/drag rules) update state without model calls, interfaces expand in place and state persists across refreshes; only an explicit submit or button action sends values back to the conversation. Also ships the on-demand /intelligent-ui skill and a dedicated chat preset, so the feature can be turned on per conversation. Standalone plugin — no other UI bundle required. MIT, source included (src/ ships in the tarball) | dsh plugin --profile web add https://github.com/gulagala001/dsh-intelligent-ui/releases/download/v0.2.0-rc.2.iui.1.0.0/dsh-intelligent-ui-0.2.0-rc.2.iui.1.0.0.tgz | ✅ active | ⚠️ no telemetry or analytics SDK (scanner hits were a minified zod string and a comment stating the low-level OpenUI exports do not invoke its parser/runtime telemetry); state and sources are written under the host data directory through authenticated endpoints, and generated UI cannot execute arbitrary JS or reach host files, credentials or tools (upstream docs/contracts.md); worth knowing: it declares a runtime dependency (zod@4.5.4) and on Windows spawns PowerShell via execFile (src/host/windows-private.mjs) purely to tighten the ACLs of its private state directory — a hardening use, but a subprocess the submission does not mention; the browser may load public HTTPS images; peer requirements are declared optional and the build is host-matched | ✅ e2e (isolated install of the host-matched 0.2.0-rc.2 asset — sha256 8d244c6c… verified against the release SHA256SUMS.txt, install friction=none, resolved 0.2.0-rc.2.iui.1.0.0; structure: non-empty dsh.bundle.patch for both cordis.patch.yml and the preset patch, layer intelligent-ui plus preset-intelligent-chat present in a 1304-line --dump-config, files payload (src/lib/presets/skills) installed with the /intelligent-ui skill's frontmatter intact; web boot smoke: no token 401 → token URL 303 + Set-Cookie → cookie 200 (35,371-byte app page), and the plugin's client module /plugins/??dsh-intelligent-ui/client.js served 200 / 810,741 bytes containing OpenUI/Calculator/Chart/Checklist/Simulation markers, its inject list matching dsh.client.inject item for item; not run: LLM-driven in-browser interaction and refresh-persistence (needs a browser session; this host has no headless bundle to drive it) and macOS/Windows platforms) | 2026-10-13 | 83c9ffe |
Columns: Security = passed preliminary source review (TRACE-lite: trust / reliability / auditability / confidentiality / effectiveness); Trial = verified in an isolated profile with a real end-to-end tool call; Commit = the exact revision that was verified.
Note: dsh-superagent is an official DeepSeek research prototype, not a single-purpose plugin and not production-ready. It needs a dedicated DSH profile and, for real isolation, a dedicated OS account; its workers run with danger-full-access as the operator's OS user. It is listed for reference, not as a production recommendation.
How to add your plugin
1. Add the dsh-plugin topic to your plugin repository
2. Open an issue in this repository using the Plugin Submission template (plugin name, repo link, release tag, license, install command)
3. The pipeline verifies the submission in an isolated profile — security review, install, and one real end-to-end tool call
4. Verified plugins are added to the index and the issue is closed; failed submissions stay open with a needs-fix label and a summary reply
About
- Independent community index (not affiliated with DeepSeek AI)
- Updated automatically on a daily basis
- MIT License
Maintained by the dsh-autopilot pipeline.预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
TYEclipse/dsh-plugins-hub
面向 DeepSeek Harness dsh 的独立插件索引,对社区友好。
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化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,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目