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
将 DeepSeek dsh(DeepSeek Agent Harness,本地运行的 AI 智能体工作台)的 Web 版封装为 Windows 原生桌面应用。
你不再需要打开终端敲 npx @deepseek-ai/dsh web,双击桌面图标即可进入 dsh,像使用普通软件一样使用 DeepSeek 的本地 AI 智能体环境。
http://127.0.0.1:3080 的 Web 服务,提供与 AI 智能体对话、调用工具(文件读写、终端、代码执行、网页检索等)、多智能体编排、技能(Skills)与工作流(Workflow)等能力。| 特性 | 说明 |
|---|---|
| 🖥️ 原生桌面窗口 | Electron 内置浏览器窗口,非"启动器",关窗即退出 |
| 📦 完全独立 | dsh 运行时、依赖、Node.js(真实 node.exe)全部随安装包分发 |
| ⚡ 即点即用 | 安装后双击图标,自动启动 dsh 服务并加载界面,无需命令行 |
| 🔁 端口复用 | 若 3080 端口已有 dsh 服务在运行,直接连接,不重复启动 |
| 🛡️ 安全默认 | 窗口只允许访问 dsh 本机地址,拒绝外部导航与新窗口 |
| 🪟 单实例 | 重复启动只会聚焦已有窗口,不会开第二个实例 |
| 🧯 错误可见 | dsh 启动失败时窗口内展示错误详情,支持一键重试 |
| 📋 日志记录 | 运行日志写入 %APPDATA%/dsh-desktop/dsh.log,便于排查 |
DeepSeek dsh Setup <版本>.exe 安装包;如果杀毒软件弹出提示,请选择「允许」。详见文末常见问题。
需要本机安装 Node.js(≥ 22,Windows x64)与 Git。
# 1. 克隆仓库
git clone https://github.com/<your-username>/dsh-desktop.git
cd dsh-desktop
# 2. 安装依赖(dsh 及全部插件)
npm install
# 3. 准备打包运行时 node.exe(打包必需,已 gitignore)
# 从 Node.js 安装目录(或官方 Windows x64 压缩包)复制 node.exe 到项目根目录:
copy "C:\Program Files\nodejs\node.exe" .\node.exe
# 4. 构建 NSIS 安装包,产物位于 dist/
npm run dist
生成的安装包位于 dist/DeepSeek dsh Setup <版本>.exe。
为什么需要 node.exe? dsh 的原生模块(koffi 等)按系统 Node.js 的 ABI 编译,与 Electron 内置的 Node 不兼容(会导致目录选择器等原生功能崩溃),因此应用打包了一个真实的
node.exe来运行 dsh 服务。该文件约 90 MB,属于构建期资源,不纳入版本库。
启动后你面对的就是完整的 dsh Web 界面,常见操作:
详细的 dsh 功能说明请参阅 DeepSeek dsh 官方文档;本仓库只负责「桌面化」,不修改 dsh 的任何功能。
http://127.0.0.1:3080(固定端口;若已被其他 dsh 实例占用,应用会直接复用)。%APPDATA%\dsh-desktop\dsh.log,包含 dsh 子进程的 stdout/stderr,排查问题时可查看。dsh-desktop/
├── main.js # Electron 主进程:窗口创建、生命周期、启动/停止 dsh
├── preload.js # 预加载脚本:暴露 dshRetry(错误页重试)
├── lib/
│ └── server-manager.js # 纯 Node 逻辑:端口探测、dsh 子进程启动/停止、就绪等待
├── docs/
│ ├── README.md # 文档索引
│ └── design.md # 设计文档(架构与关键决策)
├── .github/workflows/
│ └── build.yml # GitHub Actions:测试 + 构建安装包 + 自动发布
├── package.json # 项目配置与 electron-builder 打包配置
└── node.exe # 打包用 Node 运行时(gitignore,构建前自备)
┌───────────────────────────────────────────────┐
│ Electron 主进程 (main.js) │
│ │
│ 启动时 ──spawn──▶ 内置 node.exe 运行 dsh │
│ (node_modules/@deepseek-ai/ │
│ dsh/lib/bin.js web) │
│ │ 轮询 http://127.0.0.1:3080│
│ ▼ 就绪(超时 60s) │
│ BrowserWindow ──加载──▶ dsh Web 界面 │
│ │
│ 关闭窗口 ──▶ 杀掉 dsh 子进程 ──▶ 退出 │
└───────────────────────────────────────────────┘
关键设计决策(详见 docs/design.md):
@deepseek-ai/dsh 作为正式依赖随包分发,用户无需安装 Node.js。lib/server-manager.js(纯 Node,无 Electron 依赖),便于维护与复用。npm start # 开发模式:以 Electron 启动应用(本地需已安装 dsh 依赖)
npm run pack # 构建解包目录(快速验证),产物在 dist/win-unpacked/
npm run dist # 构建 NSIS 安装包,产物在 dist/
main.jslib/server-manager.jspackage.json 的 build 字段点击窗口内的「重试」按钮;仍失败则查看日志 %APPDATA%\dsh-desktop\dsh.log。常见原因:
本应用是开源项目,代码可审查。报毒通常是误报,原因多为「Electron 打包 + 内置 node.exe + 无数字签名」的组合特征。处理方式:
这是 dsh 原生目录选择器(koffi 驱动 Win32 对话框)与运行 Node ABI 不匹配导致的。本应用已内置真实 node.exe 运行 dsh,正常情况下不会出现。若仍出现,请确认安装包是最新版本。
应用会自动复用已有 dsh 服务(直接连接)。如果你想强制使用全新实例,请先结束占用 3080 的进程再启动应用。
在「设置 → 应用 → 已安装的应用」中找到 DeepSeek dsh 卸载,或在开始菜单中找到卸载入口。卸载会一并移除后台服务与程序文件(用户数据目录 %APPDATA%\dsh-desktop 如需彻底删除请手动清理)。
package.json 版本号与 CHANGELOG.md → 打标签 git tag v1.0.1 && git push origin main --tags → GitHub Actions 自动构建安装包并生成 Release。git push -u origin main 推送代码 → 按上述方式打 v1.0.0 标签触发自动构建与 Release。本项目基于 MIT License 开源。内含的 DeepSeek dsh 及相关 @deepseek-ai/* 包版权归其各自作者所有,请遵守其相应许可条款。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。