dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
仓库:https://github.com/he110Warudo/dsh-desktop · Topic:
dsh-plugin· License:MIT
DeepSeek Harness 桌面 GUI 客户端。双击启动,自动拉起 dsh web,并在桌面窗口中打开 DSH Web 界面;退出应用时自动停止 dsh(包括整个子进程树)。
--port 0 启动,由系统分配空闲端口,从 dsh 输出中解析真实地址_npx 缓存 → 内置依赖 → npx 兜底,找不到时给出排查建议$DSH_HOME,不丢失)%APPDATA%/dsh-desktop/dsh-desktop.log)要求:Node.js ≥ 20(本机开发时还需要 npm 可联网安装依赖)。
npm install # 安装 electron 与内置的 @deepseek-ai/dsh 兜底依赖
npm start # 启动桌面客户端
首次
npm install会下载 Electron 运行时(约 100MB)。
npm run dist:dir # 免安装目录版,输出到 dist/win-unpacked/
npm run dist # NSIS 安装包 + 便携版 exe,输出到 dist/
打包产物自带 @deepseek-ai/dsh 依赖,即使目标机器没装 dsh 也能运行(默认优先使用系统里已有的 dsh)。
运行一次后,设置文件位于 %APPDATA%/dsh-desktop/settings.json(参考 settings.example.json):
| 字段 | 说明 |
|---|---|
dshCommand |
显式指定 dsh 入口:可填 .js 路径、包目录、shim(dsh.cmd)或命令名。null 时自动解析 |
dshArgs |
追加给 dsh web 的参数,如 ["--trusted-host", "192.168.1.5"]。已含 --port/--host 时不再注入默认值 |
startupTimeoutSec |
等待 dsh 就绪的超时(默认 90s) |
openDevTools |
启动时打开开发者工具(默认 false) |
windowBounds |
窗口位置/大小(自动保存,一般不用手改) |
等价环境变量:DSH_DESKTOP_DSH(dsh 入口)、DSH_DESKTOP_NODE(运行入口用的 node 可执行文件)。
npm test # 单元测试(注入式 mock,无需真实子进程)
node test/smoke-launch.js # 端到端冒烟:真实启动 dsh web 并验证 HTTP
node test/smoke-launch.js --stdio # 受限环境下的冒烟模式(stdio 继承 + HTTP 轮询)
冒烟脚本默认把 DSH_HOME 指向项目内 .smoke/dsh-home,不会动 ~/.dsh。
electron/
main.js 主进程:窗口、生命周期、IPC、菜单、设置
preload.js 状态页桥接(contextIsolation + sandbox)
dsh-manager.js dsh 子进程管理(纯 Node,可独立测试)
splash/ 启动/状态/错误页(静态页面,主窗口与启动窗口共用)
test/ 单元测试与冒烟脚本
npm install 已执行(内置兜底依赖);或在设置里把 dshCommand 指向 dsh 的 lib/bin.js;或全局安装 npm i -g @deepseek-ai/dsh。--trusted-host 仅在非本机访问时需要,本客户端始终走 127.0.0.1。taskkill /T /F 清理进程树;若被第三方方式强杀客户端进程,可用 taskkill /IM node.exe /F(注意会杀掉所有 node 进程)或任务管理器结束。dsh web 命令行实例或其他实例冲突。CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。