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 Harness 的 Windows 桌面壳 —— 一个把网页版"装进"原生窗口的 Electron 魔法盒子 ✨
你以为你打开的是一个网页?不,你双击的是一个桌面应用。窗口里跑的是原汁原味的 DeepSeek Harness 网页版,外面套的是一层丝滑的桌面皮肤 🧥:托盘驻留、真终端、插件商店、任务栏进度条……全都开箱即用,目标机器上什么都不用装,双击 exe 就是全部。
没有 Node.js?没关系,它自己下 📦 没有 pnpm?没关系,它自己装 🛠️ 连服务都是它自己拉起来的 🚀 —— 你只管坐下聊天。
| # | 特色 | 一句话 |
|---|---|---|
| 1 | 🪄 零环境依赖 | 自动检测 + 一键部署:Node/pnpm/npx/dsh 缺啥补啥,有就不重复下 |
| 2 | 🚀 服务自管理 | 在 workspace 里 npx --yes dsh web 拉起,与手动终端一字不差;三级降级 + 秒级失败感知 |
| 3 | 🌌 科技感启动页 | 打字机状态、检查清单、倒计时/立即进入、首次引导、自定义背景与欢迎语 |
| 4 | 🎨 自绘标题栏 | 渐变毛玻璃、菜单、会话标题、Token 用量胶囊、💰 余额胶囊 |
| 5 | 🖥️ 真终端停靠面板 | node-pty 真终端、侧边滑出不挤对话区、宽度记忆 |
| 6 | 📄 文档停靠面板 | 本地 md/代码/日志即开即读、可编辑保存 |
| 7 | 📁 工作区文件面板 | 拖文件进工作区,AI 直接可读 |
| 8 | 🧩 dsh-plugin 插件商店 | 全量索引、精选/全部/我的插件、双语 README、更新检测、一键重启生效 |
| 9 | 🔔 桌面原生体验 | 托盘驻留、Ctrl+Alt+D 唤起、任务栏进度条、完成通知、单实例 |
| 10 | 🖼️ 视觉定制 | 壁纸(图/视频)、界面+exe 图标一体换、深浅主题、置顶、开机自启 |
| 11 | 🎛️ 命令面板 | Ctrl+K 集中所有开关与入口 |
| 12 | 🔒 安全底座 | 渲染沙箱、IPC 最小权限、服务只绑 127.0.0.1、密钥不落盘 |
双击安装包 → 首次启动弹出一个部署窗口,自动检测你机器上的 Node.js / pnpm / npx 和 @deepseek-ai/dsh:
装完它会把这些运行时加进用户 PATH,系统终端里也能直接用。部署位置由安装包选的安装目录决定,卸载时一并清干净。
网页版需要一个本地服务(dsh web,只监听 127.0.0.1)。DESK HARNESS 的做法和你手动排查时一模一样:进到 workspace 目录,执行 npx --yes dsh web。
dsh → 绝对路径(8.3 短路径),每一步秒级感知失败,不用傻等;打字机动画逐字报状态:运行环境检查 ✅ → 本地服务检测/启动 🚀 → 就绪。首次使用带你走 API Key 引导;此后 3 秒倒计时自动进入,或点「立即进入」。欢迎语、背景图都能在控制面板里换。
渐变 + 毛玻璃 + 霓虹分界线的自绘标题栏,右侧无缝挂接 Windows 原生窗口按钮。中间显示当前会话标题;右侧一排胶囊:
.credentials.yaml 里的 Key,每 5 分钟查询一次账户余额,点击直达官方用量页。窗口右侧滑出的停靠面板(不压缩对话区,宽度可拖拽记忆):
Ctrl+` 秒开;files/ 目录,AI 侧直接可读,喂资料零摩擦。标题栏一键展开的侧边商店,索引来自 GitHub topic + Search API + npm 注册表三源聚合:
系统托盘驻留(关窗不下线)、Ctrl+Alt+D 全局唤起、任务完成/审批的系统通知、任务进度实时同步到 Windows 任务栏进度条、单实例、开机自启动。
Ctrl+K 一个面板收拢全部:主题、壁纸、启动页、窗口、工具五组选项,点行即切换,快捷键党狂喜。
contextIsolation + sandbox,preload 只暴露白名单 API;127.0.0.1,不对外监听;desk-harness-setup-1.0.0.exe卸载?控制面板 → 卸载。干净利落,只留你的会话数据(.dsh)在原地等你。
📂 数据去哪了:部署环境在
<安装目录>\deepseekharness-desktop\,配置在%APPDATA%\deepseekharness-desktop\,会话/插件与命令行版共享C:\Users\<你>\.dsh——凭据不用重新配。
cd desktop
npm install # 慢的话挂镜像:
# $env:ELECTRON_MIRROR = "https://npmmirror.com/mirrors/electron/"
# $env:ELECTRON_BUILDER_BINARIES_MIRROR = "https://npmmirror.com/mirrors/electron-builder-binaries/"
npm start # 开发模式:直接复用仓库里的 dsh 后端,边改边跑
npm run pack # 打包 → dist/desk-harness-setup-1.0.0.exe
小彩蛋 🥚:开发模式下它会向上回溯目录树找仓库的 node_modules\@deepseek-ai\dsh——把 exe 丢进仓库任意角落都能认出家。
这套桌面端是全链路日志化的,%APPDATA%\deepseekharness-desktop\ 里躺着四个侦探 🕵️:
| 文件 | 它在说什么 |
|---|---|
launch.log |
拉起全链路:环境快照 → 每次命令/cwd → 端口探测每步 → 服务前 10 秒输出 → 结论 |
service-out.log |
服务自己的 stdout/stderr(报错都在这) |
server.log |
桌面端实际执行的启动命令 |
setup.log |
首次部署全过程 |
手动排查口诀:打开 workspace 目录 → 终端敲 npx dsh web。桌面端用的就是这条命令,一模一样。
desktop/
main.js 主进程大脑(窗口/托盘/菜单/部署/监督式拉起/商店/终端/余额)
preload.js 渲染层桥梁(contextIsolation + sandbox,只放行白名单 API)
fx.js / fx.css 注入网页版的桌面皮肤(特效/标题栏/商店/面板/命令面板)
splash.html 启动页 setup.html 首次部署窗口
dock.html / dock.js / term-helper.js 终端停靠面板(xterm + node-pty)
prompt.html 端口设置 close-dialog.html 关闭确认
build/ 图标与 NSIS 脚本 scripts/restart-service.ps1(手动重启脚本)
MIT —— 拿去用,玩得开心 🎉
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。