lin-cheng-lab/dsh-reloader

插件Plugin 原生Native ⭐ 2 MIT

DSH 一键重启:装完插件说一句 reload 就自动重启生效,不用手动 Ctrl+C 🔄

项目介绍Project Overview

dsh-reloader 是 DSH 插件,用于在安装或更新插件后自动重启 web 界面。它通过调用 dsh_reload 工具,等待 6 秒后定位并终止 3080 端口上的 dsh 进程,再重新启动。适合需要快速生效新插件的场景。注意首次使用需手动重启一次。

dsh-reloader is a DSH plugin that automatically restarts the web interface after installing or updating plugins. It invokes the dsh_reload tool, waits 6 seconds, locates and kills the dsh process on port 3080, then restarts it. Ideal for quickly applying new plugins. Note: a manual restart is required on first use.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile web add "github:lin-cheng-lab/dsh-reloader"

lin-cheng-lab/dsh-reloader 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

🔄 dsh-reloader

DSH 一键重启工具 —— 安装/更新插件后说一句"帮我 reload",自动重启 web 界面,新插件立即生效,不用再手动 Ctrl+C

为什么需要它

DSH 的 profile bundle 插件(如 dsh plugin --profile web add ...)装好后,需要重启 web 进程才生效。手动重启很麻烦:

Ctrl+C → 重新输入 dsh web → 等启动 → 刷新浏览器

本插件把这一步变成一条命令:调用 dsh_reload 工具,6 秒后进程自动重启,页面刷新即恢复。

安装

# 从 GitHub 安装
dsh plugin --profile web add "github:lin-cheng-lab/dsh-reloader"

# 或从本地源码安装
dsh plugin --profile web add "file:/path/to/dsh-reloader"

重启 profile 后生效(reload 工具的第一次使用需要一次手动重启,之后就全自动了)。

使用

安装/更新插件后,向 DSH 说一句:

帮我 reload 一下

工具会自动完成:

  1. 等待 6 秒(让当前回复先送达页面)
  2. lsof 按 3080 端口定位当前 dsh web 进程,ps 校验命令行含 dshkill(双保险防误杀)
  3. 等待端口释放(最多 15 秒)
  4. nohup 重新启动 dsh web,日志写入 ~/.dsh/web.log

然后刷新页面即可——聊天记录都在(会话已持久化)。

工作原理

  • 通过 ctx.shell 启动一个后台 detach 进程执行重启(工具立即返回,不阻塞)
  • 进程定位用端口(lsof -iTCP:3080)+ 命令行校验(ps | grep dsh), 不依赖 pgrep -f(在受限执行环境中可能不可见)
  • 只影响监听 3080 的 dsh web 进程,不碰其他程序

安全边界

  • 只 kill 监听 3080 且命令行含 dsh 的进程
  • 重启失败有日志(~/.dsh/web.log)可排查
  • 若工具报错,仍可手动重启:终端 Ctrl+Cdsh web

开发

npm install --legacy-peer-deps   # 安装 typescript(跳过未发布的 @deepseek-ai peer)
npm run build                    # tsc → lib/

类型解析依赖本机 DSH 安装中的 @deepseek-ai/cordis@deepseek-ai/dsh-tools

许可

MIT

上一个 Prev dsh-usage-suite 下一个 Next dsh-novel-reader