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

Copilot 键唤起 plumeume/dsh-copilot-key

DeepSeek Harness
plumeume39 天前有提交已提供中文文档扫描:含敏感能力

按笔记本 Copilot 键即可启动或唤起 DSH 窗口

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add plumeume/dsh-copilot-key
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
L4 · 真实安装等级说明 →
数据截至 2026/09/30·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 39 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

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

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

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量
查看扫描证据(共 15 处,展示前 12 条)
  • 读取密钥环境变量
    plugin/lib/index.js:33
    const fromEnv = String(process.env.DSH_COPILOT_KEY_DIR || '').trim()
  • 写入本地文件
    plugin/lib/index.js:54
    writeFileSync(file, new Date().toISOString() + ' ' + message + String.fromCharCode(13) + String.fromCharCode(10), { flag: 'a' })
  • 执行外部命令来自配置/变量
    plugin/lib/index.js:72
    const run = (file, args, timeout = 15000) => spawnSync(file, args, { windowsHide: true, encoding: 'utf8', timeout })
  • 读取本地文件
    plugin/lib/index.js:87
    if (!existsSync(ini)) throw new Error('config.ini not found at ' + ini + ' - is the Copilot-key tool installed?')
  • 读取本地文件
    plugin/lib/index.js:88
    return parseIni(readFileSync(ini, 'utf8'))
  • 读取本地文件
    plugin/lib/index.js:93
    const text = readFileSync(ini, 'utf8')
  • 写入本地文件
    plugin/lib/index.js:96
    copyFileSync(ini, backup)
  • 写入本地文件
    plugin/lib/index.js:107
    writeFileSync(ini, lines.join('\r\n') + '\r\n', 'utf8')
  • 读取本地文件
    plugin/lib/index.js:132
    if (!existsSync(file)) return []
  • 读取本地文件
    plugin/lib/index.js:133
    const lines = readFileSync(file, 'utf8').split(/ ? /).filter((line) => line.trim() !== '')
  • 读取本地文件
    plugin/lib/index.js:140
    const cfg = existsSync(ini) ? readConfig() : {}
  • 执行外部命令来自配置/变量
    plugin/lib/index.js:169
    const child = spawn(exe, ['watch'], { detached: true, stdio: 'ignore', windowsHide: true })
扫描于 2026/11/4(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • Copilot键启动窗口
  • Copilot键唤起窗口
  • 自研按键钩子

把笔记本的 Copilot 硬件键变成启动/唤起 DeepSeek Harness:自研按键钩子 + DSH 管理器插件(dsh-copilot-key,已发布 npm)

README

由 DeepSeek 最新模型翻译生成
dsh-copilot-key 把笔记本上的 Copilot 硬件键变成「启动 / 唤起 DeepSeek Harness」,并且能在 DSH 里直接管理它。 两部分: | 目录 | 是什么 | | hook/ | 自研按键钩子(9 KB C#,无第三方依赖):识别 Copilot 组合键、避免开始菜单弹出、启动或聚焦 DSH。带登录自启的计划任务。 | 按下这个键不会弹出任何窗口:启动链(cmd → powershell)以 CREATE_NO_WINDOW 运行,从创建起就没有控制台;唯一会出现的窗口就是 DeepSeek Harness 自己的窗口。 | plugin/ | DeepSeek Harness 插件 dsh-copilot-key:在 App 内管理钩子 —— 状态、启停、手动触发、改配置、看日志,并暴露 7 个 agent 工具。 | 为什么要在 App 里管它 钩子必须在 App 之外运行 —— 否则 App 关着时按键就没人接。所以分工是: - 钩子 + 计划任务:按键本身,冷启动 DSH(App 没开也能按); - 插件:在运行中的 App 里做管理(状态/启停/配置/日志),并让 AI 助手能直接操作它。
展开完整文档(README 剩余 1 节)
dsh-copilot-key

把笔记本上的 Copilot 硬件键变成「启动 / 唤起 DeepSeek Harness」,并且能在 DSH 里直接管理它。

两部分:

| 目录 | 是什么 |
| hook/ | 自研按键钩子(9 KB C#,无第三方依赖):识别 Copilot 组合键、避免开始菜单弹出、启动或聚焦 DSH。带登录自启的计划任务。 |

按下这个键不会弹出任何窗口:启动链(cmd → powershell)以 CREATE_NO_WINDOW 运行,从创建起就没有控制台;唯一会出现的窗口就是 DeepSeek Harness 自己的窗口。
| plugin/ | DeepSeek Harness 插件 dsh-copilot-key:在 App 内管理钩子 —— 状态、启停、手动触发、改配置、看日志,并暴露 7 个 agent 工具。 |

为什么要在 App 里管它

钩子必须在 App 之外运行 —— 否则 App 关着时按键就没人接。所以分工是:

- 钩子 + 计划任务:按键本身,冷启动 DSH(App 没开也能按);
- 插件:在运行中的 App 里做管理(状态/启停/配置/日志),并让 AI 助手能直接操作它。

安装

1. 钩子(按键本身)

方式 A:直接下载 Release 里的 exe(推荐,不用装编译环境)

$dir = "$env:USERPROFILE\copilot-key"
New-Item -ItemType Directory $dir -Force | Out-Null
$base = "https://github.com/plumeume/dsh-copilot-key"
$raw = "https://raw.githubusercontent.com/plumeume/dsh-copilot-key/master/hook"

Invoke-WebRequest "$base/releases/download/v1.0.2/DshCopilotKey.exe" -OutFile "$dir\DshCopilotKey.exe"
Invoke-WebRequest "$base/releases/download/v1.0.2/DshCopilotKey.exe.sha256" -OutFile "$dir\DshCopilotKey.exe.sha256"
Invoke-WebRequest "$raw/config.example.ini" -OutFile "$dir\config.ini"
Invoke-WebRequest "$raw/install.ps1" -OutFile "$dir\install.ps1"
Invoke-WebRequest "$raw/uninstall.ps1" -OutFile "$dir\uninstall.ps1"

校验:exe 由 CI 现场编译,哈希随构建变化,所以 .sha256 随 Release 一起发布 $want = (Get-Content "$dir\DshCopilotKey.exe.sha256" -Raw).Split()[0] $have = (Get-FileHash "$dir\DshCopilotKey.exe" -Algorithm SHA256).Hash
if ($want -ne $have) { throw "SHA256 mismatch: $have" } else { "SHA256 OK: $have" }

注册登录自启的计划任务并立即启动 powershell -ExecutionPolicy Bypass -File "$dir\install.ps1"

脚本都用 $PSScriptRoot,目录放哪都行;但 config.ini 必须和 DshCopilotKey.exe 同目录。
GitHub 直连不稳时,把上面两个域名换成镜像/代理地址即可。

方式 B:克隆仓库自己编译(用系统自带 csc.exe,不需要 .NET SDK)

git clone https://github.com/plumeume/dsh-copilot-key
cd dsh-copilot-key\hook
powershell -ExecutionPolicy Bypass -File build.ps1 # 编译 DshCopilotKey.exe copy config.example.ini config.ini # 按需改 trigger / launcher / dryrun powershell -ExecutionPolicy Bypass -File install.ps1 # 注册登录自启并立即启动

卸载:powershell -ExecutionPolicy Bypass -File uninstall.ps1(删除计划任务 + 结束进程)

2. 插件(在 App 里管理钩子)

| 你的 DSH 是怎么装的 | 怎么装插件 |
| 桌面端(DeepSeek Harness.exe) | 设置 → 插件 → 添加插件,填 dsh-copilot-key(桌面端 profile 由 Electron 独占,CLI 会拒绝 --profile desktop) |
| 全局 CLI(npm i -g @deepseek-ai/dsh) | dsh plugin --profile add dsh-copilot-key |
| 没有全局 CLI、用 npx 跑 dsh | npx -y @deepseek-ai/dsh@alpha plugin --profile add dsh-copilot-key |
| 插件市场 | 搜 dsh-copilot-key 一键安装 |

npx 方式不会全局安装任何东西:npx 把 dsh 下到 %LOCALAPPDATA%\npm-cache\_npx 后复用。
也可以 npm i -g dsh-copilot-key,但插件要生效仍需把它加进 profile 的 dsh.profile.bundles —— 用上面的命令或 App 界面做这一步即可。

插件默认去 %USERPROFILE%\copilot-key 找钩子;钩子装在别处就设环境变量 DSH_COPILOT_KEY_DIR,或在 profile 的 patch 层里覆盖 directory。

按一下 Copilot 键,实际会发生什么

钩子按这个顺序尝试(每一步都会写进 watcher.log):

1. 桌面端在运行 → 聚焦它的窗口(AppActivate,不新建窗口);
2. 桌面端已安装但没运行 → 启动 %LOCALAPPDATA%\Programs\DeepSeek Harness\DeepSeek Harness.exe;
3. 否则退回 Web 版:config.ini 的 port 已在监听 → 用默认浏览器打开 url;
4. 否则执行 config.ini 的 launcher(默认 launch-dsh.cmd → launch-dsh.ps1),它依次尝试:
- PATH 上的 dsh → dsh web
- %LOCALAPPDATA%\npm-cache\_npx 里版本最高的缓存构建 → node web
- 都没有 → npx -y @deepseek-ai/dsh@alpha web(⚠️ 这一步会联网下载一个新的 dsh 到 npx 缓存)
5. dsh web 就绪后由它自己打开浏览器;启动器只在第 3 步(端口已在监听)时开浏览器,避免开出两个标签页。

第 4 步全程不可见(1.0.2 起):钩子用 CreateProcess + CREATE_NO_WINDOW 而非 ShellExecute 启动启动器, cmd 与 powershell 从创建起就没有控制台窗口,按键不会再闪出 cmd / 终端窗口。
若你自己写 launcher,同样不必担心弹窗;但失败时的 pause 之类要留意 —— 隐藏运行的子进程会拿到
DSH_COPILOT_HIDDEN=1,可以用 if not defined DSH_COPILOT_HIDDEN 跳过。

只用桌面端、不希望第 4 步去下 Web 版?把 config.ini 的 launcher 指向你自己的脚本(例如只做 Start-Process "$env:LOCALAPPDATA\Programs\DeepSeek Harness\DeepSeek Harness.exe")。
想只记录不启动,把 dryrun 改成 1(下一次按键即生效)。

插件提供的工具

| 工具 | 作用 |
| copilot_key_status | 钩子进程/PID、计划任务状态、当前 config.ini、日志末尾 |
| copilot_key_start / _stop / _restart | 启停重启钩子 |
| copilot_key_trigger | 等效按一下这个键 |
| copilot_key_config | 读写 trigger / port / url / launcher / dryrun(带校验与时间戳备份) |
| copilot_key_log | 看 watcher / launcher / capture 日志 |

兼容性

- Windows 10/11(测试于 Windows 11 build 26200);钩子用 Win32 低级键盘钩子 + System.Windows.Forms,无第三方依赖。
- 插件实测 DSH 内核 0.1.7-rc.2;依赖 defineTool、dsh.bundle.patch、dsh.profile.bundles。
- 钩子需要在 Medium 完整性级别下运行;若安装目录被打了 Low 标签(icacls 查看),钩子拉起的进程会写不了 %USERPROFILE%\.dsh,修复见 hook/README.md。

License

MIT
预览分享卡片长什么样 ↓plumeume/dsh-copilot-key
分享 · DeepSeek Harness Hub
plumeume/dsh-copilot-key

按笔记本 Copilot 键即可启动或唤起 DSH 窗口

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部