dsh-gamepad-approval
Manifest validXbox Controller Hardware Approval Plugin for DeepSeek Harness (dsh) — Agent high-risk tool calls require physical button confirmation, A Approve / B Reject
📖 这是什么
当 Agent 想执行 rm -rf、git push --force、格式化磁盘这类高危操作时——
你的手柄会震动两下,然后等你表态:
| 🟢 A 键 | 🔴 B 键 |
|---|---|
| 批准,放行 | 驳回,拒绝执行 |
审批信号走的是物理按键——不在键盘上,不在浏览器里,不在网络上。
键盘输入可以被键盘记录器窃取,屏幕点击可以被远程控制伪造, 但没有人能隔空按下你手里的手柄。
⚡ 30 秒上手
dsh plugin --profile default add dsh-gamepad-approval
装完即生效。Agent 碰到高危命令 → 手柄震两下 → 你按 A 或 B,就这么简单。
🔐 为什么「物理审批」有效
| 攻击面 | 传统软件审批 | 手柄审批 |
|---|---|---|
| 键盘记录器 | ❌ 可被记录 | ✅ XInput 协议,不走键盘 |
| 远程桌面操控 | ❌ 可被模拟点击 | ✅ 需要物理按压 |
| 恶意脚本自动确认 | ❌ 可伪造弹窗事件 | ✅ 硬件层信号,无法注入 |
| 钓鱼 / UI 劫持 | ❌ 可伪造界面 | ✅ 震动来自你自己的手柄 |
设计哲学:fail-closed
无手柄、超时、断连、读不到输入——一律驳回。 宁可打断 Agent,绝不放过风险。
🛡️ 内置 18 条权限规则
覆盖常见高危操作,命中即触发手柄审批:
| 类别 | 示例 | 风险 |
|---|---|---|
| 文件删除 | rm -rf、Remove-Item、del /f | 🔴 critical |
| 系统关机 | shutdown、Stop-Computer | 🔴 critical |
| 磁盘操作 | format、diskpart、dd if= | 🔴 critical |
| 系统配置 | reg add、schtasks、systemctl | 🔴 critical |
| 数据库破坏 | DROP TABLE、TRUNCATE | 🔴 critical |
| 远程脚本执行 | curl … | sh | 🔴 critical |
| Git 破坏性操作 | push --force、reset --hard | 🟠 high |
| 密钥访问 | cat *.pem、echo $*_KEY | 🟠 high |
| 防火墙 | iptables、netsh firewall | 🟠 high |
| 进程终止 | taskkill /f、kill -9 | 🟠 high |
| 全局安装 | npm i -g、choco install | 🟡 medium |
| 脚本执行 | npx、npm run、bash -c | 🟡 medium |
🧩 工作原理
flowchart LR
A[🤖 Agent 发起 tool-call] --> B{命中高危规则?}
B -- 否 --> E[✅ 直接放行]
B -- 是 --> C[🎮 手柄震动两下]
C --> D{等待物理按键}
D -- A 键 --> F[✅ 批准<br/>委托 dsh 后续安全门]
D -- B 键 / 超时 / 断连 --> G[🛑 驳回<br/>fail-closed]
插件挂载在 dsh 的 tools/pre-execute 管道上,通过 PowerShell 直连手柄(XInput),不经过浏览器或任何网络层。
硬件批准只是「加一道门」——放行后仍会走 dsh 自带的全部安全策略,不会绕过其他防线。
⚙️ 配置
- insert:
- id: gamepad-approval
name: dsh-gamepad-approval
config:
timeoutSeconds: 120 # 等待手柄按键的超时秒数(超时即驳回)
minRiskLevel: medium # 触发审批的最低风险等级: low | medium | high | critical
嫌打扰太多?把 minRiskLevel 调成 high,只对真正危险的操作震动手柄。
❓ FAQ
Q: 必须是 Xbox 手柄吗? 任何 XInput 协议的 PC 手柄都可以——包括北通、飞智、八位堂等国产手柄的 Xbox 模式。
Q: 不插手柄会怎样? 高危操作会被直接驳回(fail-closed)。Agent 会收到明确的拒绝原因,普通操作不受影响。
Q: 和浏览器里的审批弹窗有什么区别? 弹窗跑在软件层,理论上可被同权限的恶意代码模拟;手柄按键是硬件信号,攻击者需要物理出现在你面前。
Q: 和 trea-gamepad(MCP 版)什么关系? 同一个创意的两个实现:trea-gamepad 面向 Trae(MCP 协议),本插件面向 dsh(cordis 插件体系),核心逻辑与手柄脚本完全一致。
📄 License
MIT © goldgish
如果这个项目有意思,欢迎点一个 ⭐ Star
Compatibility
Versions
| Latest version | Published | Size |
|---|---|---|
| 0.1.0 | — | — |
| 0.1.4 | — | — |
Comments
Loading…
Similar plugins
by GoshawkGGGG
DeepSeek Harness 的 AI 工具审批插件,使用AI审核AGENT调用工具的合规性并决定是否执行,审核标准可定制。
★ 0
TypeScript
Oct 22, 2026
dsh plugin --profile web add dsh-safe-toolby wood007924
Press Enter to approve a pending permission request in DeepSeek Harness (dsh) - no mouse.
★ 1
MIT
JavaScript
Oct 22, 2026
dsh plugin --profile web add dsh-approval-enterby KouzakiUmi
DeepSeek Harness 插件:按 Agent preset 限制每个 Agent 可见的工具,保留全局 provider 挂载;基于 agent/created 与 ctx.tools.restrict()。
★ 0
MIT
JavaScript
Oct 19, 2026
dsh plugin --profile web add dsh-preset-tool-guardby Jiao-XXX
为 DeepSeek Harness 增加介于 Workspace Write 与 Full access 之间的自动批准权限档,危险或不确定操作仍转人工审批。An auto-approval permission preset between workspace-write and full access for DeepSeek Harness.
★ 17
↓ 209/wk
MIT
JavaScript
Oct 2, 2026
dsh plugin --profile web add dsh-auto-approveby SiriLee
Approval-panel hotkeys for DeepSeek Harness — Enter approves once, Esc rejects · DSH 插件:审批面板快捷键,Enter 批准一次,Esc 拒绝
★ 2
↓ 336/wk
MIT
TypeScript
Oct 16, 2026
dsh plugin --profile web add dsh-approval-hotkeysby J0ss077
Stop. Confirm. Run. A DeepSeek Harness plugin that pauses selected tools and waits for your explicit approval before every execution.
★ 3
↓ 17/wk
MIT
TypeScript
Sep 6, 2026
dsh plugin --profile web add @j0ss077/dsh-always-require-tools-approval