🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

一键装卸 lishLRF/dsh-plugin-onekey

DeepSeek 客户端
lishLRF72 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

点复制即装插件,敲斜杠命令即可卸载

28.8/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/lishLRF/dsh-plugin-onekey.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
生态插件
可安装,未声明 dsh 能力
装得上吗
静态安装检查有提示项,装前建议看一眼 README
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 72 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-plugin-onekey(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/24 11:37:41

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 14 处,展示前 14 条)
  • 发起网络请求
    src/client/api.ts:39
    const response = await fetch(path, init)
  • 发起网络请求
    src/client/api.ts:70
    const response = await fetch('/plugins/onekey/ping', { cache: 'no-store' })
  • 写入剪贴板
    src/client/controller.ts:189
    void navigator.clipboard?.writeText(text).catch(() => {})
  • 执行外部命令来自配置/变量
    src/index.ts:82
    const result = spawnSync(command.cmd, command.args, {
  • 执行外部命令来自配置/变量
    src/index.ts:100
    const child = spawn(pnpm.cmd, [...pnpm.prefixArgs, ...args], {
  • 读取本地文件
    src/index.ts:129
    return JSON.parse(readFileSync(join(profile.dir, 'package.json'), 'utf8')) as ProfileManifest
  • 写入本地文件
    src/index.ts:136
    writeFileSync(join(profile.dir, 'package.json'), `${JSON.stringify(manifest, null, 2)}\n`)
  • 读取本地文件
    src/index.ts:143
    const pkg = JSON.parse(readFileSync(packagePath, 'utf8')) as { dsh?: { bundle?: { patch?: unknown } } }
  • 写入本地文件
    src/index.ts:152
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    src/index.ts:161
    writeFileSync(scriptPath, script, 'utf8')
  • 执行外部命令来自配置/变量
    src/index.ts:162
    const child = spawn(process.execPath, [scriptPath], {
  • 读取剪贴板
    src/service.spec.ts:28
    readClipboard(): string | null { return this.clipboard }
  • 读取剪贴板
    src/service.ts:38
    readClipboard(): string | null
  • 读取剪贴板
    src/service.ts:130
    const clipboard = this.io.readClipboard()
扫描于 2026/11/2(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 一键安装插件
  • 斜杠命令卸载

适配插件中心的一键安装/卸载

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-onekey 真正一键安装 / 卸载 DeepSeek Harness 插件 点一下「复制」,插件就装好了;敲一下 /卸载,插件就没了。 License: MIT CI Release Topic: dsh-plugin Tests 简体中文 · English 为什么需要它 DSH 内置的插件中心(dsh-plugin)目前只能把 dsh plugin add 复制到剪贴板——剩下的都得自己做:打开终端、粘贴、等 pnpm、重启后端。更麻烦的是卸载:没有入口,只能手动编辑配置。 dsh-plugin-onekey 把整条链路补完: | 之前 | 之后 | | 点「复制」→ 自己开终端粘贴执行 | 点「复制」→ 弹窗确认 → 进度条 → 装好 | | 装完手动重启 dsh web | 「立即重启后端」一键完成,页面自动恢复 | | 装失败自己复制报错去问 AI | 「复制到工作区询问LLM」一键把提示词+报错写进输入框 | | 卸载靠手动改配置 | 输入框敲 /卸载 → 选中 → 确认 → 自动卸载并重启 | ✨ 功能特性 🖱️ 真正一键安装 - 在 设置 → 插件中心 点击任意插件的「复制」后自动弹出确认框,展示将执行的命令; - 确认后弹窗内显示实时进度条(解析 → 校验 → pnpm 安装 → 配置写入);
展开完整文档(README 剩余 1 节)
dsh-plugin-onekey

真正一键安装 / 卸载 DeepSeek Harness 插件

点一下「复制」,插件就装好了;敲一下 /卸载,插件就没了。

License: MIT
CI
Release
Topic: dsh-plugin
Tests

简体中文 · English

为什么需要它

DSH 内置的插件中心(dsh-plugin)目前只能把 dsh plugin add 复制到剪贴板——剩下的都得自己做:打开终端、粘贴、等 pnpm、重启后端。更麻烦的是卸载:没有入口,只能手动编辑配置。

dsh-plugin-onekey 把整条链路补完:

| 之前 | 之后 |
| 点「复制」→ 自己开终端粘贴执行 | 点「复制」→ 弹窗确认 → 进度条 → 装好 |
| 装完手动重启 dsh web | 「立即重启后端」一键完成,页面自动恢复 |
| 装失败自己复制报错去问 AI | 「复制到工作区询问LLM」一键把提示词+报错写进输入框 |
| 卸载靠手动改配置 | 输入框敲 /卸载 → 选中 → 确认 → 自动卸载并重启 |

✨ 功能特性

🖱️ 真正一键安装

- 在 设置 → 插件中心 点击任意插件的「复制」后自动弹出确认框,展示将执行的命令;
- 确认后弹窗内显示实时进度条(解析 → 校验 → pnpm 安装 → 配置写入);
- 后端从系统剪贴板读取安装命令(Windows / macOS / Linux),严格白名单校验后在 profile 目录执行,并写入 dsh.profile.bundles。

🚨 失败红条 + 一键转人工

- 失败时进度条变红、错误详情展示在弹窗下方;
- 「复制到工作区询问LLM」:关闭弹窗并把「预置中文提示词 + 完整报错」直接写入当前工作区输入框(无会话时自动回退剪贴板),按发送即可让 LLM 诊断;
- 「关闭」:直接关闭。

🔄 成功一键重启后端

- 成功提示「已经顺利配置完成,请重启 DSH 以刷新配置」;
- 「立即重启后端」:程序按记录的原启动命令重启 DSH,前端定时探测端口恢复后自动刷新,全程无感;
- 「暂不重启,关闭弹窗」:只关闭弹窗。

🗑️ /卸载 斜杠命令

- 工作区输入 /卸载,输入框上方弹出候选选项框(与原生 / 命令一致);
- 候选列表来自 profile 配置依赖解析,自动排除本插件、插件中心和 DSH 内置插件;
- 选中即弹确认框,完全不经过 LLM:直接卸载 → 写回配置 → 自动重启后端 → 弹窗显示「正在重启请稍后」→ 恢复后自动刷新。

🛡️ 安全与权限

- 全程代码执行,不调用 LLM;
- 安装命令严格白名单解析:只接受 dsh plugin [--profile X] add (npm 包名 / owner/repo / github: / git+https / https tarball),拒绝 file:、link:、路径与一切 shell 元字符(含 ./、../ 路径绕过防护);
- pnpm 以参数数组启动,执行前弹窗展示将要运行的命令;
- 每次操作前后双重权限校验(配置级网关)。

🎛️ 设置 → 插件 → 插件配置

| 配置项 | 默认 | 关闭后 |
| 启用本插件 | ✅ | 斜杠命令、弹窗、后端接口全部失效 |
| 允许一键安装 | ✅ | 安装接口返回 403 |
| 允许卸载插件 | ✅ | /卸载 候选为空、卸载接口返回 403 |
| 允许自动重启后端 | ✅ | 「立即重启后端」不可用 |
| 允许读取剪贴板 | ✅ | 后端不再读取系统剪贴板 |

🧭 首次部署自动探测

零配置:profile 目录取自 ctx.baseUrl(cordis 配置树锚点);pnpm 走 PATH(含 corepack 回退);重启命令 = 启动时记录的 execPath + argv + cwd + env 快照——天然适配 DSH 官网所有安装方式(npm 全局 / 源码 tsx / 二进制)。探测结果实时展示在插件配置卡。

🧩 能力随启用/禁用增减

所有扩展点(HTTP 路由、shell.overlay 弹窗、/卸载 触发源、设置卡、剪贴板拦截)全部通过 DSH 公开插槽/服务注册并随插件 fiber 卸载:不修改 DSH 与其他插件的任何代码,禁用即消失、启用即恢复。

🚀 安装

要求:DSH web profile,Node ≥ 20,pnpm 可用(或 corepack)。

npm(推荐)
dsh plugin --profile web add dsh-plugin-onekey

GitHub
dsh plugin --profile web add github:lishLRF/dsh-plugin-onekey

本地开发
dsh plugin --profile web add link:

安装后重启 dsh web,打开 设置 → 插件 → 插件配置,确认「dsh-plugin-onekey」已启用并检查权限勾选。

📖 使用指南

一键安装

1. 打开 设置 → 插件中心,点任意插件的「复制」;
2. 弹窗确认「是否直接配置到 DSH?」→ 点「确认安装」;
3. 等进度条走完 → 点「立即重启后端」→ 页面自动恢复。

一键卸载

1. 工作区输入框输入 /卸载;
2. 在候选列表中选择要卸载的插件;
3. 确认卸载 → 自动卸载并重启 → 页面自动恢复。

出错求助

失败弹窗点「复制到工作区询问LLM」→ 在输入框直接按发送。

🔐 安全模型

1. 命令白名单:正则 + 首字符规则双重约束;
2. 无 shell 拼接:参数数组 spawn(Windows 与官方 CLI 相同的信任边界,参数已被白名单净化);
3. 权限网关:每次操作前后读取实时配置;
4. 确认弹窗:执行前展示命令与操作对象;
5. 能力可逆:所有注册随插件卸载,禁用即能力消失。

🧭 工作原理

插件中心「复制」按钮 │ navigator.clipboard.writeText 包裹 / document copy 捕获(信号) ▼ 确认弹窗(展示命令 + 权限提醒) │ POST /plugins/onekey/install ▼ 后端读系统剪贴板 → 白名单解析 → 权限复核 │ pnpm add(profile 目录,参数数组) ▼ bundles reconcile → 进度轮询 → 成功 / 失败红条 │ 成功 → POST /plugins/onekey/restart ▼ detached 重启动器(等旧进程退出 → 按原 argv 拉起) │ 前端每 2s 探测 /plugins/onekey/ping ▼ 后端就绪 → 自动刷新页面

/卸载 走同一条管线:inputTriggers 斜杠源 → 候选(profile 依赖 − 自身 − 插件中心)→ pnpm remove → reconcile → 自动重启。

🧪 开发

pnpm install
pnpm run test # vitest,129 个测试(红绿 TDD)
pnpm run typecheck # 宿主 + 客户端双 tsconfig
pnpm run build # tsdown 双产物:lib/index.js + lib/client.js
pnpm run check # 全量门禁(CI 同款)

src/ 宿主半侧(路由 / 剪贴板 / pnpm 执行 / 重启动器 / 设置命名空间) src/client/ 客户端半侧(弹窗 / 进度条 / 斜杠命令 / 设置卡 / 输入桥) src/.spec.ts 宿主纯逻辑测试(解析白名单 / reconcile / 重启脚本 / 权限网关…)
src/client/.spec.ts 客户端状态机与控制器测试 docs/design.md 设计文档

❓ FAQ

git 插件安装被 pnpm 拦截? pnpm ≥ 10 会拦截 git 依赖的 prepare 构建脚本。失败弹窗点「复制到工作区询问LLM」即可获得针对性的 allowBuilds 配置步骤。

提示 pnpm 未找到? 安装 pnpm 或启用 corepack 后重试。

重启后页面没自动刷新? 重启弹窗内有「手动刷新页面」按钮兜底。

卸载后弹窗显示失败? v0.1.0 起卸载过程中的后端断连会被识别为「重启中」并自动接管轮询;若仍失败请提 issue 附上错误详情。

📄 相关项目

- deepseek-ai/deepseek-harness — DSH 本体
- dshplugin/dsh-plugin-hub — DSH 插件中心

许可

MIT © dsh-plugin-onekey contributors
预览分享卡片长什么样 ↓lishLRF/dsh-plugin-onekey
分享 · DeepSeek Harness Hub
lishLRF/dsh-plugin-onekey

点复制即装插件,敲斜杠命令即可卸载

回到顶部