Skip to content

Repository files navigation

DSH Buddy

DeepSeek Harness(dsh)的桌面发行版——打包、策展、集成、信任。

dsh 是一个强大且快速演进的 agent harness;DSH Buddy 把它变成双击即用的桌面应用: 从下载到第一个 agent 会话不超过一分钟——不需要 Node,不需要终端,不需要自己判断哪个插件能装。

本项目是社区项目,与 DeepSeek 无隶属关系,不代表其认可或背书。DeepSeek 及相关商标归其权利人所有。

下载

平台 入口 说明
macOS(Apple Silicon) 下载最新版 dmg 拖入「应用程序」即完成安装。产物暂未签名公证,首次打开请右键 → 打开(或在「系统设置 → 隐私与安全性」放行)
Windows(x64) 下载最新版 exe 双击运行安装器,可按向导选择安装目录(默认装在用户目录,无需管理员/开发者模式)。产物未签名,SmartScreen 可能提示「Windows 已保护你的电脑」→ 更多信息 → 仍要运行;启动后首次连接会提示允许访问网络

更新与卸载

更新:

  • Windows:应用内自动更新——启动后后台检查 GitHub Releases,发现新版本自动下载,就绪后提示「立即重启安装」。也可用菜单「帮助 → 检查更新」手动触发(实时反馈:有新版本/已是最新/检查失败)。
  • macOS:未签名包无法静默换装(系统级约束),启动时检查更新,有新版本提示前往 Release 页下载新 dmg 覆盖安装。

卸载:

  • Windows:「设置 → 应用」或控制面板卸载。卸载会删除程序文件与壳自身数据(%APPDATA%\DSH Buddy,仅日志与更新检查状态);~/.dsh 会保留——它是 dsh 的会话与配置目录,与 dsh 命令行共享,如确认不再使用 dsh 可手动删除。
  • macOS:把应用拖入废纸篓;~/.dsh 同理保留,按需手动删除。

发行版的四个职能

职能 具体动作
打包 dsh 随应用零依赖分发,双击启动,进程生命周期托管
策展 精选社区 preset 与插件,过协议门和安全审查后随包提供
集成 幂等安装、沉浸式窗口、开箱即用的默认配置
信任 协议逐包核验、安全敏感组件默认不启用、版本钉死可复现

策展承诺

进入随包清单的每个组件都要过三道门:

  1. 协议门:核对 LICENSE 全文与每个包的 license 字段,copyleft 组件不进分发物 (规则见 plugin-license-gate);
  2. 安全门:涉及凭据存储、网络隧道、远程访问的组件默认不预装,由用户自行决定;
  3. 版本门:版本钉死在 preinstall-manifest,升级须重新过门。

壳能力

  • 零依赖:dsh 随应用分发,用 Electron 自带的 Node 运行时执行,用户机器无需安装 Node.js
  • 双击启动:自动拉起 dsh 服务进程(已在运行则直接复用)
  • 健康检查:轮询等待服务就绪后才打开窗口,不给用户看白屏
  • 生命周期托管:退出时整组回收 dsh 进程树,不留孤儿进程
  • 单实例锁:重复启动只会聚焦已有窗口
  • 外部链接自动交给系统浏览器

内置插件

plugins/ 是免费开源插件的 npm workspace。当前随包分发 dsh-anchored-standard:三个实验性 agent preset(Anchored / Zero-Anchored / Whoami Standard)。应用启动时把它们幂等安装到 $DSH_HOME/.agent-presets/——目录已存在则跳过,不覆盖你的本地修改——启动后即可在 dsh 的 preset 选择器中选用。

Docs Harness

@aiwaretop/dsh-docs-harness 是本项目自研的治理插件,随 web profile 一起预装:把方案 (plan)生命周期做成工具族、把项目自己的治理规则注入 agent 提示词、把方案进度做成 输入框上方的进度气泡,并提供 Docs Harness 引擎在项目里的安装 / 升级 / 移除入口。

三条边界值得先说清楚:

  • 写盘只由你发起。往仓库里写文件的动作只挂在输入框上方的提示条和「设置 → 插件」 里,agent 拿不到这类工具;它在没启用的项目里调用方案工具,只会拿到一句「让用户去 那两个入口启用」的说明。
  • 总开关默认开,关掉即等于没装。关掉后不注册工具、不注入提示词、不建投影、不挂 路由,会话行为与未安装该插件完全一致。
  • 注入的规则就是项目自己的规则,取自项目 AGENTS.md 的受管块原文,不做删改; 只把「怎么调用」从命令行改写为工具名。

源码唯一真源是 docs-harness 仓库,已发布为 npm 包 @aiwaretop/dsh-docs-harness,与其余六个预装插件走同一条链路:构建时 scripts/build-web-profile.jsplugins/preinstall-manifest.jsonpackages 清单钉版 从 registry 装进 profile。

运行

前置依赖(仅从源码构建需要;下载「## 下载」里的安装包不需要以下任何一项):

  • Node.js 24(CI 固定此版本;npm install/npm run dist* 都要用)
  • pnpm(全局装好;dsh plugin 子命令把插件安装转发给它,npm install 不会带出它)
  • 能访问 npm registry(拉内嵌 dsh 与预装的 7 个插件包)
git clone https://github.com/HackSing/dsh-buddy.git
npm install
npm start        # 开发态
npm run dist     # 打包 macOS .app → dist/mac-arm64/DSH Buddy.app
npm run dist:win # 打包 Windows 安装包 → dist/DSH Buddy Setup <ver>.exe(CI/干净终端用)
scripts\dist-win.bat # 本机 Windows 打包入口:清 IDE 注入的 ELECTRON_* 变量 + dist 锁预检(IDE 终端里务必走它)

打包产物未做代码签名与公证:macOS 首次打开需在「系统设置 → 隐私与安全性」中放行,Windows 安装器会触发 SmartScreen 提示。

启动器解析顺序

main.js 按以下优先级决定怎么把 dsh 跑起来:

  1. 环境变量覆盖(DSH_CMD / DSH_ARGS):开发者逃生通道,完全按给定命令行执行
  2. 复用存活服务:DSH_URL 已经能连通 → 直接连接,不拉起也不回收(不会误杀用户自己启动的 dsh)
  3. 内嵌 dsh(默认):ELECTRON_RUN_AS_NODE=1 + process.execPath 执行随包分发的 @deepseek-ai/dsh
  4. npx 回退:内嵌入口解析不到时,退回 npx @deepseek-ai/dsh@<pinned> web(需要机器上有 Node)

配置

通过环境变量覆盖默认值(也可直接改 main.js 顶部的配置区):

变量 默认值 说明
DSH_URL http://127.0.0.1:3080 Web UI 地址;同时决定内嵌 dsh 的 --host / --port
DSH_CMD (未设置) 设置后走逃生通道,自定义启动器命令
DSH_ARGS @deepseek-ai/[email protected] web 逃生通道的启动参数(仅在 DSH_CMD/DSH_ARGS 任一被设置时生效)

dsh 版本在 dependencies 中钉死为 0.1.0-rc.6——它仍处于 developer preview,有破坏性变更风险。

Roadmap

  • 打包分发(electron-builder,macOS arm64 dmg)
  • 随包资产:精选 agent preset 预装 + 插件 profile 随包
  • 发布流水线(推 tag 即自动构建并发 Release;profile 产物独立构建经 artifact 分发,Windows 已转正)
  • 应用内更新提示(检查 GitHub Releases,24h 节流)
  • Windows 桌面生命周期对标:assisted 安装器(可选安装目录)、卸载清理壳自身数据(保留 ~/.dsh)、应用内自动更新(electron-updater 后台下载 + 重启安装,NSIS 通道不要求签名)
  • dsh 追新兼容验证(每日自动值班,新版本自动开 issue 报告)
  • Windows 安装包转正(profile 产物改为单独构建经 artifact 分发,绕开 bsdtar × pnpm junction;纯 Node 两遍解包支持无特权普通用户)
  • Docs Harness 插件随包(方案工具族 + 规则注入 + 进度气泡 + 用户发起的项目安装/升级/移除)
  • 代码签名 + 公证 + macOS 全自动更新(签名就绪后同一发布流升级;Windows 自动更新已先行落地)
  • 存量用户随包资产增量更新(版本戳分流;profile:未改动整体替换、有自定义则自动只加不改合并;preset:未改动替换、已改动保留用户版本;均先备份,异常回滚)
  • Docs Harness 后续:knowledge / acceptance 资产的前端可视化;插件发布 npm 后清单条目从 localpackages;引擎种子版本升级走上面那条随包资产增量更新的同一套语义
  • 系统托盘、关窗常驻等桌面体验(按用户反馈驱动)

搭建思路见发布基础设施三件套指南

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages