deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:snzhi000-sys/harness-macos-desktop-plugin-suite
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
主文档 | 中文镜像
面向日常办公场景的 macOS AI 工作台:基于 DeepSeek Harness 二次开发,把 Agent 对话、文件浏览与网页/多媒体浏览整合进同一个桌面 App,并保留 Harness 的 Cordis 插件架构和 Agent 能力,在统一工程中维护 Electron 桌面封装、必要的 Harness Web 定制、五个产品插件以及可复现的 Dev/Stable 打包流程。
市面上的 Agent 生产力工具长期难以在 Codex 与 IDE 之间取得平衡:用 Codex 开发,模型更强,但它的文件浏览、文件管理器等侧边栏不好用,甚至功能尚不成熟;回到 IDE,写代码、看代码顺手,但浏览 Markdown 要切换渲染视图,日常写文档的办公能力也捉襟见肘。本项目从「日常办公用 AI」这个需求重新出发,重构一套把浏览文件与对话 AI 摆到同等位置的工作台。
本项目是社区第三方项目,并非 DeepSeek 官方产品。当前
release/open-source-v1是公开审查候选分支,不是已签名、公证或可直接发行的正式版本;上游 Harness 仍处于开发者预览阶段,后续更新可能包含兼容性破坏性变更。
Harness 以原生 macOS App 形态运行,开箱即用,数据始终留在 App 之外:
一个清爽的资源管理器是工作台的地基:完整的文件树之上,用快捷标记收藏常用文件、用隐藏收起碍事内容,让工作区始终只留要看的东西。
把最大的显示面积留给文件浏览,AI 对话与文件统一收纳成标签:在同一个视图里通过标签切换文件与对话。
想把「某文档第几行」指给模型修改时,直接从文件管理器或文件视图生成引用:这类需求在 Codex 里几乎无法实现,回到 IDE 又要面对文件浏览与办公能力的短板;本工作台在对话框、文件管理器和文件浏览器之间打通了引用。
AI 对文件的每一次改动都先经过人审核,删除前必有可恢复副本:
write、edit、file_move 和 file_delete 产生的新增、修改、移动和删除,直接写入当前会话审核账本,不依赖扫描整个工作区。file_delete,确保删除前已有可恢复副本并进入审核流程。历史消息可编辑、可重试,每次改动都保留成可回看的真实分支:
Agent 按单元格、页面或幻灯片精读 Office 文件,用户则在右侧边栏直接看预览:
flowchart TD
A[macOS Electron App] --> B[内置 Node 与 Harness Runtime]
A --> C[通道独立的 userData]
B --> D[dsh web · 127.0.0.1 动态端口]
D --> E[Harness Web Renderer]
D --> F[Cordis Host 插件]
E --> G[Harness Client Packages]
E --> H[产品插件 Client Bundles]
F <-->|同源 HTTP / WebSocket / Harness RPC| H
I[发行 Profile] --> F
I --> H
C --> J[Key · 设置 · 会话 · 审核账本 · 插件状态]
架构分为四个协作层:
Electron Renderer 不直接获得 Node 文件系统权限。文件读取、审核、媒体 Range 和 Explorer 操作都由 Host 校验会话、路径与权限后执行;App 内 Runtime、Profile 和 .app 是可重建产物,不是源码维护入口。
发行 Profile 固定装配以下产品插件:
| 插件 | 来源 | 本项目中的职责与定制 |
|---|---|---|
dsh-better-sidebar |
基于 DSH Better Sidebar 持续定制 | 三栏布局、Explorer 缓存与拖动、Emoji/非常用标记、统一文件路由、Browser/Preview 共用多标签、图片/PDF/Office/视频预览、视频 Range 流式播放、关于页面 |
dsh-file-edit |
基于社区 File Edit 插件持续定制 | 顶部文件标签、代码与 Markdown、引用协议、事件驱动审核、工作区外审核与只读浏览、事务化文件/目录删除、隔离恢复、删除墓碑、严格删除门禁 |
dsh-message-edit |
基于 DSH Message Edit 定制 | 消息编辑、Reroll、Retry、真实会话 Fork、版本事件、撤销/重做与 Timeline |
dsh-workspace-lineage |
项目维护的 Workspace Browser 分支 | 工作区两级会话树、父子谱系、分支名称持久化、重命名、最近更新与手动排序 |
@dsh-cowork/plugin |
集成并定制 DSH Cowork | Office/Notebook 结构化读写工具及其 Host 装配 |
引用气泡、原生输入稳定性和冷会话首屏等跨插件能力位于 Harness Web 核心包;插件局部能力继续留在各自目录。产品组成的机器可读权威来源是 distribution/profile-manifest.json 与 distribution/cordis.patch.yml。
desktop/ Electron macOS 桌面壳、打包、安装和发行验证
distribution/ 产品插件白名单与 Cordis composition patch
plugins/ Better Sidebar、File Edit、Message Edit、Workspace Lineage、Cowork
packages/ DeepSeek Harness 核心与本项目必要的 Web 定制
vendor/ 随 Harness 源码维护的 Cordis 及基础库
scripts/ Harness 与产品级构建、测试、文档和隐私检查
docs/ 架构、开发、迁移和维护资料
统一工程把 src/ 与可维护源码归为源码面(source plane),把 lib/、dist/、.artifacts/、Profile、Runtime 和 .app 归为产物面(artifact plane);开发只改前者,不从已安装 App 或用户 Profile 反向覆盖源码。
^22.19.0 或 >=24.0.0。11.7.0。pnpm install
npm run product:build:plugins
npm run product:test:plugins
npm run product:test:desktop
npm run product:verify:privacy
npm run product:verify:profile-runtime
product:verify:privacy 会检查已跟踪文件和未被忽略的未跟踪文件;product:verify:profile-runtime 会在隔离环境验证五个产品插件的 Host 装配、Client 启动清单和空白会话创建主链路。
修改单个插件时应先运行该插件 package.json 声明的定向 build/test,再执行上述产品装配检查。用户可见功能还需要在测试工作区和测试会话中做真实回归,不能只以 bundle 存在或后端 ready 作为验收结论。
npm run product:dist:dev
产物位于:
desktop/dist/dev/mac-arm64/DeepSeek Harness Dev.app
Dev 使用独立的 Bundle ID 和 DeepSeek Harness Dev userData。产品打包脚本会重建全部产品插件,在固定 .candidate-dev 目录生成候选,核验 Dev 身份、版本、构建时间、包内功能标记、签名和隐私,再以 --user-data-dir=<临时绝对路径> 自动完成不迁移凭据的干净启动;全部通过后才覆盖固定 dist/dev 输出。日常启动发布后的 Dev 会继续使用 Dev 自己的 Key、设置和工作区偏好,不会读取或覆盖 Stable 数据。
只有 Dev 自动化、独立 userData 启动和真实功能回归通过后,才构建 Stable 候选:
npm run product:dist:stable
产物位于:
desktop/dist/stable/mac-arm64/DeepSeek Harness.app
Stable 复用同一产品打包脚本并使用固定 .candidate-stable 暂存目录,执行插件重建、桌面测试、源码隐私检查、Runtime/Profile 构建、五插件运行装配、包身份与功能标记、隔离启动及发行包解包扫描,并写入新的版本、构建时间与 stable 通道。全部通过后只覆盖固定 dist/stable;构建候选不会安装或替换 /Applications/DeepSeek Harness.app。
本地维护者需要安装 Stable 候选时,必须先确认没有正在运行的 Agent 任务,保留回滚点,再显式运行桌面安装流程。安装器会优先把现有 App 保存为 DeepSeek Harness.previous.app,但不会复制、清空或迁移 Stable userData,因此模型 Key、会话、审核账本、Explorer 状态和其他用户配置仍保留在 App 外部。
distribution/profile-manifest.json 的产品白名单生成,不复制本机已安装 Profile、第三方个人插件或用户配置。.env、.credentials.yaml、settings.yaml、sessions、storages、Mnemon、审核隔离区、userData、Runtime 和构建产物均不进入 Git。.app。详细迁移边界见统一工程迁移执行计划,当前验证事实与未完成项见迁移状态。
本分支用于审查可公开源码快照。以下事项关闭前,不应将 Stable .app 标记为正式公开发行版:
DeepSeek Harness (dsh) 是 DeepSeek AI 开发的开源 Agent Harness,采用「一切皆插件」的 Cordis 架构。上游资料:
仓库根源码沿用 MIT License,第三方依赖及许可证见 THIRD_PARTY_NOTICES.md。产品插件仍分别受其来源许可证和授权约束;当前公开审查分支中的许可证待确认项以上一节为准。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。