关闭 DSH Web UI 后自动退出 CLI 进程(等效 Ctrl+C),支持可配置宽限期与试运行模式。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-auto-exit
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:xiaxingtianxia2-glitch/dsh-auto-exit
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文
这是什么
dsh --profile web 会在终端里长驻一个进程,通过浏览器 Web UI 使用。本插件让
「关掉 Web UI 页面」就等于「退出进程」:所有页面关闭后,CLI 进程自动以等效
Ctrl+C 的方式退出(exit code 130),不用再回终端手动操作。
工作原理
- 检测:浏览器页面与 CLI 进程之间保持 WebSocket 连接,页面关闭即断开。
- 宽限:连接全部断开后等待 15 秒(可配置)再退出——页面刷新、短暂重开 不会误退;期间重开页面即取消退出。
- 退出:宽限期满后调用与 Ctrl+C 相同的优雅退出通道,进程以 exit code 130 结束,数据与状态照常落盘。
安装
dsh plugin --profile web add dsh-auto-exit
或从 GitHub 源安装(等同内容):
dsh plugin --profile web add github:xiaxingtianxia2-glitch/dsh-auto-exit
使用
- 启动
dsh --profile web,用浏览器打开 Web UI(默认 http://127.0.0.1:3080)。 - 直接关闭浏览器标签页/窗口(多个页面需全部关闭)。
- 15 秒后进程自动退出。
查看状态
curl http://127.0.0.1:3080/auto-exit/status
{"enabled":true,"armed":true,"sockets":2,"countdownMs":0,"graceSeconds":15,"pollMs":1000,"dryRun":false,"lastEvent":"armed","fired":false}
字段含义:sockets 当前页面连接数;countdownMs 剩余倒计时(0 = 未在倒计时);
lastEvent 最近一次状态变化(idle/armed/lost/cancel/exit)。
配置
| 字段 | 默认值 | 说明 |
|---|---|---|
enabled |
true |
总开关 |
graceSeconds |
15 |
连接全部断开后等待的秒数再退出 |
pollMs |
1000 |
检测间隔(毫秒) |
armAfterFirstConnect |
true |
见到首个页面连接后才生效(启动时未开页面不退出) |
dryRun |
false |
试运行:只记录「将要退出」日志,不真正退出 |
常见问题
- 为什么还没退出? 还有其它页面/标签页开着,或多个浏览器窗口未关;全部 关闭后才开始倒计时。
- 电脑休眠 / 浏览器崩溃也会退出吗? 会——连接断开即视为 UI 已不可用;
如不希望,调大
graceSeconds。 - 怎么临时关闭本功能? 将
enabled配置为false,或卸载插件:dsh plugin --profile web remove dsh-auto-exit。
许可证
链接
同类插件
strukto-ai/mirage#dsh★ 3502
把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Slack、Gmail、Notion、Postgres)而非宿主磁盘,支持按挂载点设置读/写/执行模式、按命令选择沙箱(进程内 monty、pyodide、quickjs;远程 docker、e2b、daytona),并可在虚拟终端中安装 CLI(git、gh、slack、linear、ntn、gws,或自行注册的程序树)作为命令头词。
hust-open-atom-club/oh-dsh★ 248
社区发行版:TUI、桌面端与 Web UI 统一体验,分层安装、一步到位。
lire1131/dsh-undo-plugin★ 75
DSH 撤销/回退系统:配置变更自动存档,一键撤销/恢复/回退到任意版本,支持 WebUI 与离线 CLI/GUI 工具(DSH 启动失败也能救)。
Jayden-X-L/forkprobe★ 67
同一任务并行试跑多个技能,对比结果选出最优。
forrestchang/dsh-multica-runtime★ 46
让 dsh 运行时跑在 Multica 上。
omdsh-dev/dsh-plugin-check★ 24
插件健康检查:扫描清单协议/patch 格式/构建陷阱,零依赖只读。