一键原地重启 dsh,适配各类部署环境
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/12 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add JoblessJoe/dsh-restart-anywhere该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · dev
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 19 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 12 处,展示前 12 条)
- 读取本地文件lib/index.js:44
const readCgroup = () => { try { return readFileSync('/proc/self/cgroup', 'utf8') } catch { return '' } } - 执行外部命令来自配置/变量lib/index.js:114
child = spawn(process.execPath, args, { stdio: 'inherit', detached: process.platform !== 'win32', - 执行外部命令固定命令lib/index.js:161
const failed = await new Promise(resolve => execFile('systemd-run', args, { timeout: 10_000 }, - 写入本地文件lib/index.js:196
mkdirSync(dirname(WAKE_FILE), { recursive: true }) - 写入本地文件lib/index.js:197
writeFileSync(WAKE_FILE, JSON.stringify({ sessionId: exec.agent.session.id, prompt, at: Date.now() })) - 删除本地文件lib/index.js:201
if (prompt) rmSync(WAKE_FILE, { force: true }) - 读取本地文件lib/index.js:221
try { wake = JSON.parse(readFileSync(WAKE_FILE, 'utf8')); rmSync(WAKE_FILE, { force: true }) } catch { return } - 删除本地文件lib/index.js:221
try { wake = JSON.parse(readFileSync(WAKE_FILE, 'utf8')); rmSync(WAKE_FILE, { force: true }) } catch { return } - 发起网络请求lib/client.js:28
const info = () => fetch(ROUTE, { cache: "no-store" }).then((r) => (r.ok ? r.json() : null), () => null); - 发起网络请求lib/client.js:54
const res = await fetch(ROUTE, { method: "POST" }); - 请求外部主机xtest.js:96
const res = await m.ctx.route.fetch(new Request('http://x/api/dsh-restart')) - 发起网络请求test.js:96
const res = await m.ctx.route.fetch(new Request('http://x/api/dsh-restart'))
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
涉及外部主机:x
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 一键原地重启
- 适配多种部署环境
- 零依赖
一个重启按钮,适配你的环境,管好 DeepSeek Harness(dsh)网页 GUI:systemd、Docker、Kubernetes、pm2、launchd、终端、Windows 都能用。原地重启,零依赖。
README
由 DeepSeek 最新模型翻译生成DeepSeek Harness(dsh)web GUI 插件,在 Settings 上方加一个小巧的 Restart dsh 按钮。需要重启的时候就用它:装了插件、改了配置,或者修好了自己插件里的 bug。
它能配合你的环境工作。 systemd、Docker、Kubernetes、pm2、tmux 面板、普通终端或 Windows:点一下,几秒后 dsh 就回来了。页面会自己刷新。
npx @deepseek-ai/dsh plugin --profile web add dsh-restart-anywhere
配合你的环境工作
大多数重启按钮都是杀掉 dsh,然后指望有什么东西再把它拉起来。这只对作者自己的环境有效。一个脱离进程的「重新启动我」辅助进程,会跟着 systemd 服务一起被杀掉。干净退出不会触发 Restart=on-failure。没有重启策略的容器就直接停了。而在 pm2 或 runit 下,辅助进程和守护进程都会去启动 dsh,然后抢同一个端口。
dsh-restart-anywhere 不把 dsh 的命交给别人。
展开完整文档(README 剩余 1 节)
DeepSeek Harness(dsh)web GUI 插件,在 Settings 上方加一个小巧的 Restart dsh 按钮。需要重启的时候就用它:装了插件、改了配置,或者修好了自己插件里的 bug。 它能配合你的环境工作。 systemd、Docker、Kubernetes、pm2、tmux 面板、普通终端或 Windows:点一下,几秒后 dsh 就回来了。页面会自己刷新。 npx @deepseek-ai/dsh plugin --profile web add dsh-restart-anywhere 配合你的环境工作 大多数重启按钮都是杀掉 dsh,然后指望有什么东西再把它拉起来。这只对作者自己的环境有效。一个脱离进程的「重新启动我」辅助进程,会跟着 systemd 服务一起被杀掉。干净退出不会触发 Restart=on-failure。没有重启策略的容器就直接停了。而在 pm2 或 runit 下,辅助进程和守护进程都会去启动 dsh,然后抢同一个端口。 dsh-restart-anywhere 不把 dsh 的命交给别人。它原地重启 dsh: | 你的环境 | 会发生什么 | 留下什么 | | systemd(用户或系统 unit,任意 Restart= 策略) | 让 systemd 重启该 unit,于是你得到一个全新进程,和 systemctl restart 一模一样。如果不被允许(系统 unit、没有 root),就退回原地重启。 | 什么都不留 | | Docker / Podman / Kubernetes(有没有重启策略都行) | 原地重启:PID 不变,容器完全察觉不到。 | 什么都不留 | | pm2、supervisord、launchd、runit、s6、nssm、forever…… | 原地重启:守护进程看到的还是它启动的那个进程,一直在运行。 | 什么都不留 | | Terminal、tmux、screen、nohup | 原地替换:PID 不变,新 dsh 继续往同一个终端输出。Ctrl-C 照样能停掉它。 | 无 | | Windows / Node < 22.15 | 包装进程:旧进程保留下来,作为新 dsh 的轻量父进程。它转发 Ctrl-C,并以 dsh 的退出码退出。 | 父进程 | | dsh 桌面应用 | 按钮隐藏:应用自己管理生命周期。 | 不适用 | 不需要检测 supervisor,不需要配置,不需要 root,也不需要辅助脚本。 工作原理 1. 优雅关闭。 插件调用 dsh 自己的退出钩子(ctx.appExit)。每个插件都按正常退出的方式完成清理,会话也会刷盘。 2. 进程变成新的 dsh。 - Linux / macOS,Node ≥ 22.15: process.execve() 把进程映像换成全新的 dsh,命令行、环境变量和 stdio 都保持不变。PID 不变,也不会留下任何残留。 - Windows / 较旧的 Node: 进程作为一个小包装进程继续存活,并启动新的 dsh 作为子进程。后续重启复用同一个包装进程,所以永远只有一个。 - systemd: systemd 自己重启 unit,通过一个一秒的临时定时器,让 HTTP 响应先到达你的浏览器。 3. 页面重新加载。 浏览器轮询,直到有带新 boot ID 的服务器响应,然后重新加载。无论重启是快是慢,这套机制都管用。 让它站得住脚的几个细节: - --port 0: 重启时固定一个随机端口,页面才能重新找到 dsh。 - 不刷屏浏览器标签页: 重新启动时加上 --no-open。 - 重复点击: 重启进行中再发一个请求,会收到 409。 安装 装进你的 dsh web 配置档(下面的 web 是配置档名;换成支撑你 web GUI 的那个配置档)。从源码检出运行时,用 pnpm dsh 代替 npx @deepseek-ai/dsh: npx @deepseek-ai/dsh plugin --profile web add dsh-restart-anywhere 这会把包装进配置档,并加入 dsh.profile.bundles。重新加载浏览器标签页,Restart dsh 就会出现在 Settings 上方。如果没有出现,用老办法最后重启一次 dsh。从那以后,点按钮就行。 需要 dsh 0.2.0 或更新版本,以及 Node 20+。没有构建步骤,也没有运行时 npm 依赖。 使用 点击 Restart dsh 并确认。dsh 重启期间图标会旋转,新 dsh 起来后页面会重新加载,通常 5 秒左右。 正在运行的智能体会话会被重启打断,跟任何重启一样。确认对话框里也这么写了。 安全 - 需要登录: 重启路由通过 dsh 自己的 /api 连接层(ctx.connection.fetch)注册。它只响应已登录你 dsh 的浏览器,并且 dsh 的 Host/Origin 防护同样生效。 - 公网实例也安全: 在能从互联网访问的实例上,未认证请求会收到 401,无法重启任何东西。 - 不执行 shell 命令: 任何东西都不经过 shell。唯一的外部程序是 systemd-run,而且只在 dsh 作为 systemd 服务运行时才会用到。 已测试 在 Linux 上用 dsh 0.2.0 实测通过: - systemd: 用户单元,Restart=no 和 Restart=on-failure 两种都试过。 - systemd 回退: systemd-run 不可用时走回退路径,正常。 - 普通终端: 走 execve 路径,连续重启三次,然后 Ctrl-C 和 SIGTERM。 - 包装器路径: Node 不支持 execve 时,连续重启三次,然后 Ctrl-C。 - 只在失败时重启的守护进程: dsh 一直活着,守护进程完全没察觉。 - --port 0,以及同时点两次。 macOS 走的是和 Linux 一样的 execve 路径,Windows 走的是和老版本 Node 一样的包装器路径。两者都还没在真机上跑过,非常欢迎反馈。 npm test 会跑部署方式检测和命令行检查。 License MIT 中文简介 · DeepSeek Harness (dsh) Web 界面插件:侧边栏「设置」上方的一个小小的「重启 dsh」按钮,适用于你的部署方式 —— systemd、Docker / Podman、Kubernetes、pm2、supervisord、launchd、终端 / tmux / nohup、Windows。原地重启(进程 PID 不变),无需检测或配置守护进程,重启完成后页面自动刷新。零运行时依赖,无需配置。安装:npx @deepseek-ai/dsh plugin --profile web add dsh-restart-anywhere
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
JoblessJoe/dsh-restart-anywhere
一键原地重启 dsh,适配各类部署环境
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9