|
|
пре 1 дан | |
|---|---|---|
| .gitignore | пре 1 дан | |
| LICENSE | пре 4 месеци | |
| README.md | пре 1 дан | |
| autostart_windows.go | пре 1 дан | |
| config.go | пре 1 дан | |
| go.mod | пре 1 дан | |
| go.sum | пре 4 месеци | |
| icon.ico | пре 4 месеци | |
| logger.go | пре 1 дан | |
| main.go | пре 1 дан | |
| npm.go | пре 1 дан | |
| proc_windows.go | пре 1 дан | |
| supervisor.go | пре 1 дан | |
| tray.go | пре 1 дан | |
| updater.go | пре 1 дан |
DeepSeek Harness Web 版桌面包装(Windows 系统托盘 + 守护进程)。
把 dsh web 变成常驻托盘应用:全程隐藏终端、异常自动重启、一键开机自启、一键更新。
开机自启为静默启动:不弹终端、不打开浏览器。需要时从托盘菜单"打开 Web 界面"(自动带 token,直接进入已认证界面)。
node <dsh>/lib/bin.js web --no-open 直接启动(无 shell 包装),子进程使用 CREATE_NO_WINDOW + HideWindowautostart on|off(写 HKCU Run 键,无需管理员权限)npm install -g @deepseek-ai/dsh@latest --allow-scripts=...;可开启定期后台更新(单例循环,有新版才更新并重启)dsh web 输出的访问地址;菜单标题只显示 origin,token 只存内存token=***;打开 URL/路径不经 shell 解析(rundll32 / explorer)Local\ 命名互斥体(普通用户可创建,避免 Global\ 权限失败导致失效)getlantern/systray、golang.org/x/sys),单文件分发约 5 MBgo build -ldflags "-H=windowsgui -s -w" -o deepseek-tray.exe .
| 命令 | 说明 |
|---|---|
deepseek-tray.exe |
托盘模式(默认) |
deepseek-tray.exe --silent |
静默托盘(开机自启使用,无窗口、不打开浏览器) |
deepseek-tray.exe daemon |
无 UI 守护模式(适合注册为 Windows 服务) |
deepseek-tray.exe status |
状态查询(同时写日志) |
deepseek-tray.exe autostart [on\|off] |
查看/设置开机自启 |
deepseek-tray.exe version |
版本号 |
CLI 子命令在真实终端中输出(通过
AttachConsole);无终端场景可从日志回溯。
nssm install DeepSeekTray "C:\path\to\deepseek-tray.exe" daemon
nssm start DeepSeekTray
位置:%APPDATA%\deepseek-tray\config.json(首次运行自动生成,原子写入)
{
"webPort": 3080,
"webHost": "127.0.0.1",
"nodePath": "",
"dshBinJs": "",
"autoStart": false,
"autoUpdate": false,
"updateIntervalHours": 24,
"restartDelaySeconds": 5
}
| 字段 | 说明 |
|---|---|
webPort / webHost |
dsh web 监听端口与地址(默认 3080 / 127.0.0.1) |
nodePath / dshBinJs |
留空自动探测(node + npm root -g 下的 dsh 入口) |
autoStart |
开机自启(与托盘勾选同步) |
autoUpdate / updateIntervalHours |
定期后台更新开关与间隔 |
restartDelaySeconds |
重启退避的基准延迟(实际按失败次数指数放大) |
%APPDATA%\deepseek-tray\logs\tray-YYYYMMDD.log(含 dsh web 的 stdout/stderr;token 已脱敏)
| 维度 | 验证项 | 结果 |
|---|---|---|
| 可靠性 | 隐藏终端(daemon / dsh web 窗口句柄) | 均为 0 |
| 可靠性 | 自动重启(假命令立即退出) | 启动 6 次 / 退出 4 次 / 重启 4 次 |
| 可靠性 | 单实例(第二个实例启动) | 立即退出并记录 |
| 健壮性 | 端口被占用 | 不启动冲突进程,退避递增 6s→12s→24s |
| 健壮性 | 配置损坏 / UTF-8 BOM | 回退默认值 / 正确读取 |
| 安全性 | 日志 token | 输出为 token=*** |
| 安全性 | 打开 URL/路径 | 不经 shell 解析 |
| 效率 | status 查询 / 二进制 | 0.4 秒 / 约 5 MB |
| 效率 | 状态轮询 | 仅在值变化时刷新 UI |
npm install -g @deepseek-ai/dsh@latest --allow-scripts='@deepseek-ai/dsh-subprocess-local,koffi,node-pty,@google/genai,protobufjs'node 在 PATH 中Local 互斥体 + 日志脱敏 + 原子配置 + autostart 子命令dsh web 托盘守护(旧版余额查询功能归档于 legacy-v1 标签)见 LICENSE。