RYun601/dsh-launcher
DeepSeek Harness Web 的 Windows 启动与管理工具:支持一键前台/后台启动、服务就绪后自动打开浏览器、状态查看、停止、更新及版本化运行时管理 / Windows launcher and manager for DeepSeek Harness Web — one-command foreground/background launch, browser readiness, status, stop, updates, and managed versioned runtimes.
Project Overview项目介绍
dsh-launcher is a Windows launcher and manager for DeepSeek Harness Web. Core capability: type deepseek in cmd or PowerShell to start DSH in foreground or background mode, automatically open the browser, and manage the service via status, logs, stop, upgrade, and uninstall subcommands. Use it to deploy and operate DSH Web on Windows easily. Requires Node.js, network on first run, and binds port 3080.
dsh-launcher 是 Windows 下 DeepSeek Harness Web 的启动与管理工具。核心能力:在 cmd / PowerShell 输入 deepseek 一键启动(前台或后台),自动打开浏览器,并提供状态查询、日志查看、停止、升级、卸载等子命令。适用于想在 Windows 上便捷部署和运维 DSH Web 服务的用户。需先安装 Node.js,首次运行需联网,运行时固定使用端口 3080。
请帮我了解并安装插件:【dsh-launcher】【https://github.com/RYun601/dsh-launcher】
Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add github:RYun601/dsh-launcher
把 RYun601/dsh-launcher 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
# dsh-launcher
Windows 下 DeepSeek Harness Web 的启动与管理工具:
在 cmd / PowerShell 中输入 deepseek 即可一键启动(前台 / 后台双模式)、自动打开浏览器、
查询状态、停止服务,支持一键注册 deepseek 命令。
功能特性
- 命令行启动:在 cmd / PowerShell 中输入
deepseek即可启动 - 前台 / 后台双模式:前台显示运行日志(关窗即停);
deepseek -b提交后台启动后立即返回 - 自动打开浏览器:服务就绪后自动打开带认证的本地 Web 界面,无需手动输入地址
- 跨浏览器重开:
deepseek --open [default|edge|chrome|firefox|brave]使用当前认证 URL 在指定浏览器中打开 - 快捷方式启动反馈:显示启动进度,成功打开浏览器后自动关窗;失败时保留窗口与日志提示
- 状态查询与停止:
deepseek --status查看运行状态,deepseek --stop一键停止并提示重启命令 - 跨系统通用:Win10 / Win11 均可使用
安装
前置条件:安装 Node.js
dsh-launcher 是 DeepSeek Harness 的启动器,
只需先安装 Node.js;首次运行 deepseek 时,启动器会通过 npm 在 %USERPROFILE%\dsh-launch\runtime 准备并启动 DSH 本体。
- 安装 Node.js LTS(要求
^22.19.0 || >=24.0.0,与上游 DSH 一致;22 LTS 或 24+ 均可;启动器在安装、启动和升级前会统一检查并提示当前版本与升级方式)
首次启动需要联网。Node.js 通常自带 npm;若环境自检提示未检测到 npm,请重新安装 Node.js LTS。
方式一:PowerShell 一行命令(推荐)
irm https://raw.githubusercontent.com/RYun601/dsh-launcher/main/install.ps1 | iex
自动完成:下载最新 Release → 解压到 %USERPROFILE%\dsh-launcher → 注册 deepseek 命令。
默认不创建桌面快捷方式。需要快捷方式时,请在同一个 PowerShell 窗口依次执行以下两步:
下载安装脚本到当前目录:
irm https://raw.githubusercontent.com/RYun601/dsh-launcher/main/install.ps1 -OutFile .\install.ps1执行该脚本,并传入
-Shortcut参数:.\install.ps1 -Shortcut
-Shortcut:在桌面创建「DeepSeek Harness」快捷方式,点击后以后台模式启动并显示启动进度;启动成功后窗口自动关闭。再次使用该参数会更新同名快捷方式;不带该参数时,安装器不会新建快捷方式。
方式二:手动安装
- 从 Releases 下载
dsh-launcher.zip并解压 - 双击运行
install-command.cmd(注册deepseek命令) - 新开终端,输入
deepseek
方式三:从源码运行
git clone https://github.com/RYun601/dsh-launcher.git
cd dsh-launcher
快速开始
完成上方「安装」(任选一种方式)并新开一个终端窗口(使新 PATH 生效)后:
- 输入
deepseek -b提交后台启动并立即返回(或输入deepseek前台启动) - 首次运行会自动通过 npm 准备 DeepSeek Harness 运行时和必需依赖(需联网,约 1-2 分钟)
- 服务就绪后浏览器自动打开本地 Web 界面
- 首次使用需要在 DeepSeek Harness 界面登录 / 填入 API Key
全部子命令与参数见下方「命令行用法」。
命令行用法
每次调用只允许一个动作,出现未知参数或冲突组合时直接报错退出,不会静默回落到前台启动;PowerShell 层的失败退出码会原样传播到 deepseek 命令的返回值。--full 只能与 --uninstall 组合使用;数字只允许紧跟在 --logs 后作为行数、或紧跟在 --rollback 后作为版本列表的显示数量,--json 只允许跟随 --status,--follow 只允许跟随 --logs,版本号(形如 0.1.1-rc.2)只允许跟随 --rollback,浏览器别名只允许跟随 --open。
启动与停止
| 命令 | 说明 |
|---|---|
deepseek |
前台启动(默认):窗口显示日志,关闭窗口或 Ctrl+C 即停止 |
deepseek -b |
后台启动:提交后立即返回,服务继续运行并在就绪后自动打开浏览器 |
deepseek --stop |
停止服务(按端口 3080 定位进程,仅停止 DeepSeek Harness 相关进程),并提示重新启动命令;进程无法结束或等待超时会显式报错并以非零码退出 |
状态与日志
| 命令 | 说明 |
|---|---|
deepseek --status |
查看服务状态(READY / STARTING / UNHEALTHY / FOREIGN_PORT / FAILED / STOPPED);启动下载期间显示 STARTING,失败时提示日志路径 |
deepseek --status --json |
以版本化 JSON 输出同一状态(含时间戳与字段),问题状态(FAILED / UNHEALTHY / FOREIGN_PORT)以非零码退出,便于脚本消费 |
deepseek --logs [N] |
显示后台日志末尾 N 行(默认 20),如 deepseek --logs 50 |
deepseek --logs --follow [N] |
跟随日志输出(Ctrl+C 停止);日志被轮转后会自动重连新文件,长期运行的后台日志超过 5MB 会轮转保留一代 .old |
认证与浏览器
| 命令 | 说明 |
|---|---|
deepseek --open |
在系统默认浏览器中打开当前已运行实例的认证 Web URL |
deepseek --open edge |
在 Edge 中打开当前已运行实例;别名还支持 chrome、firefox、brave、default |
--open 只连接已经处于 READY 的实例;服务正在启动时请稍后重试。命令会复用 DSH 当前进程的认证入口,不会关闭认证或打印含 token 的 URL。显式浏览器使用其默认配置文件,不支持无痕窗口或指定 profile。
版本与升级
| 命令 | 说明 |
|---|---|
deepseek --version |
显示启动器版本与当前活动的 DeepSeek Harness 版本(优先读取 runtime-current.json 活动指针,指针缺失时回退旧版运行时目录,并标注其他非活动来源) |
deepseek --update |
对比活动运行时版本与 npm 上的最新版本,提示更新方法;本地版本无法确认或远端解析失败时以非零码退出,不会把“未知”当作“已是最新” |
deepseek --upgrade |
一键升级 DeepSeek Harness 运行时(流程与失败回退见下方说明) |
deepseek --rollback |
列出当前活动版本与 npm 上已发布的 DeepSeek Harness 版本(新 → 旧;默认显示最近 20 个,deepseek --rollback 0 显示全部,deepseek --rollback N 显示最近 N 个),用于挑选回退目标 |
deepseek --rollback <版本> |
回退到指定的已发布版本(仅允许低于当前活动版本;复用 --upgrade 的事务流程) |
deepseek --update-launcher |
查询 GitHub 上启动器的最新稳定发行版并与本地版本比较(只查询,不改文件) |
deepseek --upgrade-launcher |
自更新启动器:下载并校验 GitHub 发行包后事务式替换当前安装(流程与失败恢复见下方说明) |
- 普通启动优先复用已经准备并校验过的本地 DSH 版本,存在可用本地运行时时不访问 npm;仅在没有可用运行时的首次启动或修复场景中准备依赖。使用
deepseek --update从 npm 检查新版本,使用deepseek --upgrade安装并切换到新版本。 deepseek --update/deepseek --upgrade/deepseek --rollback默认直接查询 npm 公共 registry(dist-tags 或已发布版本列表,均比npm view更快)。如需使用镜像或私有 registry,可设置环境变量DSH_REGISTRY(例如https://registry.npmmirror.com);该设置仅在查询远端发布版本时生效,不影响本地运行时启动。deepseek --upgrade的详细流程:先解析并校验目标版本,当前运行时健康且版本不低于目标版本时直接提示已是最新并退出(不停止服务、不执行 npm 操作);否则停止服务 → 清理旧 DSH npx 工作区 → 同步全局dsh命令 → 重新后台启动。候选版本因插件依赖 DSH 已移除的导出而启动失败时,会列出不兼容插件并询问是否从webprofile 移除;确认后使用目标版本的dsh plugin --profile web remove清理插件并重试候选运行时,拒绝或处理失败时依次尝试恢复当前、上一版或旧版可用运行时(只有通过就绪校验的运行时才会被用于回退)。deepseek --upgrade会同步 npm 全局的dsh命令:已安装则同步到目标版本,缺失则自动安装,保证直接使用dsh命令的版本与启动器一致;该步骤失败仅提示警告,不影响启动器运行时的升级。目标版本无法解析或格式非法时,升级会在停止服务之前直接中止,不会影响当前安装。deepseek --rollback <版本>的约束与流程:目标必须是 npm 上已发布的精确版本号,且低于当前活动版本;当前活动版本未知、目标版本未发布、格式非法或高于当前版本时,都会在停止服务之前直接中止,不会影响当前安装。回退复用--upgrade的事务(停止服务 → 清理旧 DSH npx 工作区 → 同步全局dsh命令 → 重新后台启动验证),并把全局dsh命令一并降级到目标版本;候选启动失败时的插件处理与运行时回退链与--upgrade一致。版本列表默认只显示最近 20 个,超出时末尾提示完整列表的查看方式;回退目标的校验始终使用完整版本列表,显示数量只影响打印。deepseek --upgrade-launcher的详细流程:校验发行包 SHA-256 与包清单 → 获取维护互斥锁 → 旧安装整目录备份 → 新版就位 → 离线烟雾验证 → 提交;服务运行中、DSH 升级进行中、源码工作树或非受管安装时拒绝执行;失败自动恢复旧版本(恢复未完成时保留备份与恢复脚本并以退出码 2 结束)。
诊断与卸载
| 命令 | 说明 |
|---|---|
deepseek --check |
环境诊断:启动器安装与版本、Node/npm、活动运行时与指针、服务状态与端口 3080 占用、最近一次失败原因;发现问题时以非零码退出 |
deepseek --uninstall |
从用户 PATH 移除 deepseek 命令(卸载注册) |
deepseek --uninstall --full |
完整卸载:移除 PATH + 桌面快捷方式 + 日志与运行时目录 + 安装目录(事务细节见下方说明) |
deepseek --help |
查看帮助 |
deepseek --uninstall --full的事务细节:带确认,取消不做任何更改;先停止服务,目录先备份后删除;PATH 在目录全部备份成功后才移除;安装目录会校验所有权标记,删除失败时保留备份并提示位置。
其他启动方式
以下方式不经过 deepseek 命令,按需选用。
双击内置脚本
start-deepseek-harness.bat:前台启动(启动服务 + 自动打开浏览器)start-background.cmd:后台启动进度窗(启动成功后窗口自动关闭,失败时保留窗口与日志提示)
可选:官方 DSH CLI
只有需要在任意终端直接使用官方 dsh 命令时,才需要全局安装 DSH CLI(dsh-launcher 使用自己的版本化运行时,此步骤并非必需):
npm install -g @deepseek-ai/dsh
新开一个终端后,可运行:
dsh web
使用启动输出中的认证 URL打开界面即表示启动成功(Ctrl+C 退出)。
npm install -g @deepseek-ai/dsh会在 npm 的全局可执行目录注册dsh(Windows 中为dsh.cmd)。正常安装的 Node.js 会把该目录加入 PATH;若新开终端后仍提示找不到dsh,请检查 npm 全局目录是否在 PATH 中。
npx @deepseek-ai/dsh web能直接启动 DSH,但不会注册可在任意终端使用的dsh命令。
常见问题
- 输入
deepseek提示"不是内部或外部命令":先运行install-command.cmd,然后新开终端窗口 - 启动时卡在下载 / 报网络错误:换国内镜像后重试
npm config set registry https://registry.npmmirror.com deepseek --status显示STARTING:表示 DSH 正在下载或启动,使用deepseek --logs 50查看实时错误;再次运行deepseek -b不会重复提交启动任务deepseek --status显示FAILED:DSH 在监听端口前退出,运行deepseek --logs 50查看具体错误后重试deepseek -bdeepseek --status显示UNHEALTHY:端口 3080 有 DSH 进程在监听但 HTTP 无响应(可能已卡死);运行deepseek --stop后重新启动deepseek --status显示FOREIGN_PORT:端口 3080 被其他非 DeepSeek Harness 进程占用;启动前请先排查并释放该端口(启动器和停止逻辑都不会误杀陌生进程)- 提示端口 3080 被占用(EADDRINUSE):说明已有一个实例在运行,用
deepseek --status确认,或先deepseek --stop再启动 - 在其他浏览器访问提示
dsh web authentication required:不要直接输入裸地址;在新终端运行deepseek --open edge(也可替换为chrome、firefox或brave) - 关闭前台窗口后服务就停了:设计行为(进程寄宿在控制台窗口);需要常驻请用
deepseek -b - 想迁移已配置好的 DSH 设置(含 API Key):复制
%USERPROFILE%\.dsh整个文件夹到新电脑的C:\Users\<用户名>\.dsh(含敏感凭据,请勿公开)
附录:文件说明
面向想了解脚本职责或参与贡献的读者;日常使用只需关注上文命令。
| 文件 | 说明 |
|---|---|
deepseek.cmd |
命令行入口:前台 / 后台 / 停止 / 状态 / 自检 / 帮助 |
start-deepseek-harness.bat |
前台启动脚本(启动服务 + 自动打开浏览器) |
start-background.cmd / .ps1 |
后台启动协调器:支持立即返回或等待就绪,日志写入 %USERPROFILE%\dsh-launch\dsh-background.log |
stop-dsh.cmd / .ps1 |
停止服务(按端口 3080 定位进程) |
open-when-ready.ps1 |
轮询 HTTP 服务,确认就绪后自动打开浏览器(900 秒超时保护) |
open-dsh.ps1 |
校验当前 DSH 实例并在默认或指定浏览器中打开认证 Web URL |
background-run.ps1 |
持有后台启动锁,记录生命周期状态与日志,并启动就绪监视器和 DSH 子进程 |
background-run.cmd |
后台 runner 的兼容入口;正常启动关键路径直接使用 background-run.ps1 |
run-dsh.ps1 |
串行准备版本化 DSH 运行时、补齐必需 peer 依赖、通过 npm ls --all 审计后启动 Node 入口 |
update-check.ps1 |
版本对比:活动运行时指针 vs npm 最新版(其余来源仅作参考信息) |
update-launcher.ps1 |
启动器自更新:查询 / 下载 / 校验 GitHub 发行包并事务式替换当前安装(--update-launcher / --upgrade-launcher) |
dsh-doctor.ps1 |
deepseek --check 的环境诊断实现 |
dsh-logs.ps1 |
deepseek --logs 的日志查看与跟随(支持轮转重连)实现 |
dsh-maintenance-lock.ps1 |
启动器维护互斥:覆盖安装、DSH 升级、自更新、完整卸载共用同一把用户级维护锁 |
version-info.ps1 |
deepseek --version 的版本来源实现(活动指针优先) |
register-path.ps1 |
install-command.cmd 的用户 PATH 注册实现 |
upgrade-dsh.ps1 |
一键升级:停止服务、清理旧 DSH npx 工作区、准备并启动最新版运行时 |
set-shortcut.ps1 |
创建或迁移桌面快捷方式,配置可见启动进度窗口 |
uninstall.ps1 |
卸载:移除 PATH 注册(-Full 时同时删除快捷方式 / 日志和运行时 / 安装目录) |
install-command.cmd |
把脚本目录加入用户 PATH,注册 deepseek 命令 |
VERSION |
启动器版本号(deepseek --version 读取) |
deepseek.ico |
DeepSeek Harness 黑色鲸鱼图标(16~256px 多尺寸,桌面快捷方式使用) |
deepseek.svg |
图标矢量源文件(取自 DSH web 前端 favicon,可用它重新生成 .ico) |
See-Sol-Lab/DeepSeekGUI
WEP-56/DSH-Launcher
Jensen-Yao/deepseek-harness-android-app
Leon0555/dsh-lan-access
YMRYMR/deepseek-peak
Nono-neko/dsh-browser
Wine-Red/dsh-codex-timeline