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(任务栏右下角托盘)与 macOS(屏幕右上角菜单栏)双平台支持, 同一份 Avalonia 代码构建。运行后没有任何窗口,只在系统托盘/菜单栏显示一个图标,点开即可操作。
macOS 提示:本程序会通过 login shell(bash/zsh)自动解析 PATH,支持 nvm / Homebrew 安装的 node、pnpm、git;如果提示找不到工具,先执行
brew install node git。
| 菜单 | 说明 |
|---|---|
| 「启动」/「停止(...)」 | 括号内为实时状态;无仓库时自动改用 npx |
| 「打开」 | 默认浏览器打开「http://localhost:3080」 |
| 「更多」→「设置」 | harness 目录(可留空)、启动/构建命令、Web 端口、Git 代理(仅对本程序生效) |
| 「更多」→「重启」 | 仅重启 / 编译并启动(编译需要本地仓库) |
| 「更多」→「更新」 | git pull(需要本地仓库) |
| 「更多」→「npx安装」 | 选镜像源后自动安装并运行,源会被记住 |
| 「更多」→「日志」 | 查看启动/安装/更新/构建输出,自动刷新 |
| 「更多」→「帮助」 | 安装教程与菜单说明 |
| 「退出」 | 等待进行中的操作完成后退出 |
~/.DSHTray/settings.xml(harness 目录、命令、端口、npx 镜像源、Git 代理)~/.DSHTray/logs/(启动输出、npx 安装进度、更新记录、构建日志)~/.DSHTray/error.log需要 .NET 10 SDK。
cd DSHTray
.\build.ps1 # 自包含单文件 exe → publish\DSHTray.exe
.\build.ps1 -FrameworkDependent # 依赖 .NET 10 桌面运行时的精简版
托盘图标由「tools\png-to-ico.ps1」从「Icon.png」生成「icon.ico」。
也可以在 macOS/Linux 上交叉发布 Windows 版(无需 Windows 机器):
cd DSHTray ./build-win.sh # win-x64 单文件 exe(含图标) ./build-win.sh win-arm64 # ARM 版 ./build-win.sh win-x64 fd # 框架依赖版
cd DSHTray
./build.sh # 按当前架构(osx-arm64 / osx-x64)
./build.sh osx-arm64 # 指定 Apple Silicon
./build.sh osx-x64 fd # 框架依赖版(目标机器需装 .NET 10 运行时)
产物:publish/DSHTray(单文件自包含二进制)与 DSHTray.app(已 ad-hoc 签名,含 icns 图标)。
应用图标由「tools/make-icns.sh」从「Icon.png」生成。分发他人使用需额外做
notarization。
方式 A:GitHub Actions 自动构建(推荐) —— 仓库已带 .github/workflows/release.yml,
推送 v* 标签后自动构建 win-x64 / win-arm64 exe 与 macOS 两种架构的 .app(构建前先跑自检/冒烟测试),
并附到对应 Release:
git tag v1.1.0
git push origin v1.1.0
也可以在 GitHub 仓库 Actions 页面手动触发(workflow_dispatch),产物从该次运行的 Artifacts 下载。
方式 B:本机构建后手动上传 —— 在 GitHub 仓库页面「Releases → Draft a new release」, 用下方命令产出的文件上传:
cd DSHTray
./build-win.sh # → publish-win-x64\DSHTray.exe(Windows)
./build.sh osx-x64 # → DSHTray.app(Intel Mac)
./build.sh osx-arm64 # → DSHTray.app(Apple Silicon)
zip -r -y DSHTray-macos-arm64.zip DSHTray.app # macOS 的 .app 需打包成 zip 再上传
注意:.app 是目录,Release 附件必须用 zip;本地产物为 ad-hoc 签名,他人首次打开需
右键(Control+点击)→「打开」;正式分发建议 Apple notarization。
| 文件 | 职责 |
|---|---|
| DSHTray\Program.cs + App.axaml | Avalonia 应用入口、单实例、平台选项(菜单栏应用) |
| DSHTray\TrayApplication.cs | 托盘图标、菜单、操作编排与退出等待 |
| DSHTray\HarnessController.cs | 启动/停止/检测/git pull/build/npx(跨平台) |
| DSHTray\Platform.cs | 平台差异层:cmd/zsh、taskkill/pkill、powershell/ps+lsof、login shell PATH 解析 |
| DSHTray\AppConfig.cs | 配置读写(「~.DSHTray\settings.xml」) |
| DSHTray\SettingsWindow / NpxInstallWindow / LogViewerWindow / HelpWindow / WaitingWindow | 五个对话框 |
| DSHTray\MessageWindow / ToastWindow / DialogService | 消息框、确认框与浮动通知 |
| DSHTray\IconFactory.cs | 托盘图标(Windows 彩色 / macOS 44px 菜单栏尺寸,程序绘制回退) |
| DSHTray\SelfTest.cs | 自检与端到端冒烟测试(--selftest / --smoketest) |
| DSHTray\tools\ | 图标生成脚本(ico / icns) |
DSHTray --selftest result.txt # 配置读写 / 端口检测 / 进程枚举 / PATH 解析
DSHTray --smoketest result.txt # 端到端:启动测试服务 → 就绪探测 → 停止并确认清理
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。