在本地窗口直接对话并驱动其他机器的 dsh
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/15 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 6mt/dsh-control该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 17 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 17 处,展示前 17 条)
- 读取本地文件lib/index.js:318
const raw = JSON.parse(await readFile(this.stateFilePath(), "utf8")); - 写入本地文件lib/index.js:333
await mkdir(dirname(file), { recursive: true }); - 写入本地文件lib/index.js:338
await writeFile(file, JSON.stringify({ environments, sessionBindings }, null, "\t") + "\n", { mode: 0o600 }); - 读取本地文件lib/index.js:340
const info = await stat(file); - 写入本地文件lib/index.js:341
if ((info.mode & 0o777) !== 0o600) await chmod(file, 0o600); - 写入本地文件lib/index.js:425
await mkdir(path, { recursive: true }); - 读取本地文件lib/index.js:1000
await access(path); - 写入剪贴板lib/client.js:156
navigator.clipboard?.writeText(text); - 发起网络请求lib/connections.js:47
const response = await fetch(`${this.endpoint}/?token=${encodeURIComponent(this.token)}`, { - 发起网络请求lib/connections.js:110
response = await fetch(`${this.endpoint}/api/${methodPath}`, { - 执行外部命令固定命令lib/tunnel.js:28
this.spawnTunnel = options.spawnTunnel ?? ((spec, args) => spawn("ssh", args, { stdio: ["ignore", "ignore", "pipe"] })); - 写入本地文件lib/proxy.js:39
mkdirSync(dir, { recursive: true }); - 读取本地文件lib/proxy.js:42
if (statSync(file).size > LOG_MAX_BYTES) truncateSync(file, 0); - 写入本地文件lib/proxy.js:42
if (statSync(file).size > LOG_MAX_BYTES) truncateSync(file, 0); - 写入本地文件lib/proxy.js:44
appendFileSync(file, `${new Date().toISOString()} ${entry}\n`); - 执行外部命令固定命令lib/ssh.js:33
child = spawn("ssh", args, { stdio: ["ignore", "pipe", "pipe"] }); - 读取本地文件lib/ssh.js:156
if (existsSync(path)) return path;
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/dsh-typert-protocol给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
本地开一个窗口,就能驱动你其他机器上的 dsh 实例
README
由 DeepSeek 最新模型翻译生成dsh-control
你的每台机器上都跑着 dsh?让本地这一个窗口,成为它们全部的前端。
在本地 dsh 里直接和其他机器上的 dsh 对话:远端会话原生出现在你的侧栏,流式逐字返回;远端用它自己的模型凭据、工具与沙盒干活。零远端改动、零依赖、一条命令安装。
dsh-control 实际运行
两个 dsh 窗口在回答同一个问题。左窗的会话被自动命名为 控制端·<本地标题>(①)——这种命名只出现在被插件驱动的那台机器上。右窗显示插件创建的环境工作区 cn-dsh2(②)和指向环境名的模型路由(③)。
🎬 15 秒实拍(一键接入 → 流式回复)正在录制。
安装
dsh plugin --profile <你正在用的profile> add github:6mt/dsh-control
填你已经在用的那个 profile(一般是 web 或 desktop)。无构建步骤、无原生模块、无依赖——插件是纯 JavaScript,装完即可用。
GitHub 慢或连不上?
展开完整文档(README 剩余 1 节)
dsh-control 你的每台机器上都跑着 dsh?让本地这一个窗口,成为它们全部的前端。 在本地 dsh 里直接和其他机器上的 dsh 对话:远端会话原生出现在你的侧栏,流式逐字返回;远端用它自己的模型凭据、工具与沙盒干活。零远端改动、零依赖、一条命令安装。 dsh-control 实际运行 两个 dsh 窗口在回答同一个问题。左窗的会话被自动命名为 控制端·<本地标题>(①)——这种命名只出现在被插件驱动的那台机器上。右窗显示插件创建的环境工作区 cn-dsh2(②)和指向环境名的模型路由(③)。 🎬 15 秒实拍(一键接入 → 流式回复)正在录制。 安装 dsh plugin --profile <你正在用的profile> add github:6mt/dsh-control 填你已经在用的那个 profile(一般是 web 或 desktop)。无构建步骤、无原生模块、无依赖——插件是纯 JavaScript,装完即可用。 GitHub 慢或连不上?用 Release 里的 tarball 安装 下载 dsh-control-0.1.1.tgz,然后: dsh plugin --profile <你正在用的profile> add ./dsh-control-0.1.1.tgz 安装后完全退出并重开 dsh(⌘Q),右侧边栏出现「远程 dsh 环境」面板。 npm 包(dsh-control)已备好,日后可发布;当前安装路径就是上面这条 GitHub 命令。 版本与更新 - 装上的是哪一版:github:6mt/dsh-control 取 main 的最新提交,并在你的 profile 锁文件里锁定到该 commit——之后不会悄悄跟随后续提交 - 升级:dsh plugin --profile <你正在用的profile> update dsh-control (pnpm 会重新解析 git 引用并拉取新代码,已实测) - 固定版本:github:6mt/dsh-control#v0.1.0(按 tag)或 github:6mt/dsh-control#<commit> - 变更记录见 CHANGELOG.md 它和 dsh-remote / dsh-remote-ssh 有什么不同? 两种做法的对比 | | 远程工作区类插件(dsh-remote 等) | dsh-control | | 远端机器是什么 | 文件系统(SFTP 工具集) | 一台已在运行的 dsh | | 会话在哪里 | 本地会话 + 远程目录 | 远端会话原生进你的侧栏 | | 凭据/工具 | 本地配,SSH 配置再复制一份 | 远端自带,本地零复制 | | 远端需要什么 | 只要 SSH | 需已装 dsh(≥0.2.0-rc.2)并跑着 web 实例 | | 对远端的改动 | 部分会主动部署 dsh | 零改动(只读探测 + 远端自身 API) | 两者可以同装(已实测共存):远端没装 dsh → 用 dsh-remote;装了 → 用 dsh-control。 功能 远程 dsh 环境面板 「远程 dsh 环境」面板:填 user@host 即可连接;环境行会显示状态与是否已有工作区。 - 一键接入:填 user@host,自动探测远端 dsh、取访问令牌、建加密通道(约 5 秒) - 自动工作区:每个环境在本地生成同名工作区;在里面新建会话即自动成为远端会话 - 真流式:远端回复逐字流入本地对话,不是等整轮蹦出 - 远端配对:远端会话自动命名「控制端·本地标题」,两边对得上 - 可见且自愈:侧栏会话行带远端标识;断线如实显示,一键重连修复 安全 插件在你机器上做什么:一份状态文件($DSH_HOME/dsh-control/state.json,0600,含远端访问令牌)+ 按需启动的 SSH 隧道进程。 绝不做什么:不在远端装东西/写文件、不管远端进程生命周期、不读你机器上的其他凭据、令牌不进日志。免密未配置时给出一条修复命令,绝不保存密码。详见 SECURITY.md。 已知限制 - 远端需已装 dsh 并运行 web 实例(未装请用远程工作区类插件) - 接入走 SSH(需免密或已配密钥;直连免 SSH 模式在路线图上) - 会话行标识与流式观感以各版人工验收为准 - 取消远端运行中的会话:已实现,标注 experimental 开发 node --check lib/.js for t in test/.test.mjs; do node "$t"; done # 52 项:单元/契约/结构不变式 scripts/verify-boot-selfheal.sh # 启动自愈(需本机 dsh 运行时) 许可证 MIT © 6mt
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
6mt/dsh-control
在本地窗口直接对话并驱动其他机器的 dsh
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 14,822已汉化DeepSeek 客户端
73
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 718已汉化DSH
71.2
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,261已汉化DSH
70.7
破甲评测WoYun520/dsh-purge
在本机分离宿主拦截与模型拒绝,做受控红队评测
★ 199已汉化DSH
69.7