返回目录

dsh-unified-context

精选清单收录维护状态: 活跃

chang-tong/dsh-unified-context

Unified context for DeepSeek Harness (dsh): migrate pi/opencode/codex/claude-code/WorkBuddy sessions, share AGENTS.md, skills, project & agent memory through symlinks, and migrate automations. 统一上下文,一份上下文给所有 Harness。

前往 GitHub项目主页
$ dsh plugin --profile web add dsh-unified-context

22

星标

1

Fork

JavaScript

语言

MIT

许可证

2026-08-14

创建于

2026-11-09

最近推送

MIT 开源的 DSH 插件,把另外五个 harness 的会话、共享指令、技能、记忆与自动化搬进 DeepSeek Harness——幂等、以符号链接共享、零运行时依赖。

DSH 适配

原生运行时

作者声明

安全审计

未审计

最后核验

2026-11-11

许可证

MIT

01它能帮你完成什么?

  • 把 pi、opencode、codex、claude-code、WorkBuddy 的会话导入成可续跑的 DSH 会话

    真正可续跑的 dsh JSONL 会话,保留完整原始历史(文本、推理、工具调用与有记录的真实工具结果),并出现在 DSH 会话列表里

    从其他编码 agent 换到 DeepSeek Harness、又不想丢掉聊天历史的开发者

  • 让每个 harness 读同一份指令文件、同一个技能中心、同一份记忆,而不是各存一份副本

    唯一一份 AGENTS.md / CLAUDE.md / CODEBUDDY.md 加一个技能中心,各 harness 的路径都变成指向它的相对符号链接,内容不同的副本作为冲突上报

    在同一批项目上同时跑 DSH 与 pi / codex / Claude Code、被副本漂移烦到的人

  • 把定时自动化与自定义 agent 一并搬到 DSH

    Codex 与 WorkBuddy 的自动化变成默认暂停的 dsh 定时任务,pi / opencode 的 agent 变成 dsh 技能包

    已经攒了自动化或 agent 库、希望它们能在 DSH 里直接用的用户

02如何接入 DeepSeek Harness?

前置条件

  • Node.js >= 22.19 —— 与 dsh 相同的基线(node:sqlite、node:zlib 的 zstd)
  • 一个你能修改的 DSH web profile(README 里用的是 `--profile web`)

安装步骤

  1. 01

    运行 `dsh plugin --profile web add dsh-unified-context` —— 安装器会装好包并把它追加进 profile 的 bundle 列表,不用手改配置

    $ dsh plugin --profile web add dsh-unified-context

  2. 02

    重启 `dsh web`,让宿主插件注册斜杠命令

    $ dsh web

  3. 03

    刷新页面 —— 重启后旧页面的 RPC 连接已经断开

验证接入成功

  • 输入框工具栏出现 Sync 按钮,输入 `/import-all` 有响应
  • 可选:`npm view dsh-unified-context version` 与 `pnpm list dsh-unified-context`

回滚

  • `dsh plugin --profile web remove dsh-unified-context` 即可卸载

03DSH 适配与能力边界

DSH 适配原生运行时

DSH 插件 bundle:宿主半区注册斜杠命令,客户端半区在输入框加一个 Sync 按钮

  • 五来源会话导入

    pi JSONL、opencode SQLite、codex JSONL、claude-code JSONL、WorkBuddy JSONL→可带着完整历史续跑的 dsh JSONL 会话(带校验和的 zstd 帧)

    会把会话文件写入 dsh 的持久化后端
  • 上下文链接器(/link-context)

    AGENTS.md / CLAUDE.md / CODEBUDDY.md、各 harness 的技能目录与记忆目录→唯一一份真身加相对符号链接;内容相同的副本收成链接,内容不同的副本作为冲突上报

    把内容相同的各 harness 副本替换成符号链接绝不覆盖内容不同的文件
  • agent 与提示词转技能

    pi 的 agent / 模式提示词、opencode 的 agent→`$DSH_AGENTS_HOME/skills/<name>/SKILL.md` 技能包,可通过 `ctx.skills.list()` 发现

    名称冲突会改名成 `<name>-<source>`已有技能包只补齐、不覆盖
  • 自动化迁移

    Codex 的 `automation.toml`、WorkBuddy 的自动化 SQLite→把 RRULE 翻译后的 dsh 定时任务,默认以暂停状态导入

    创建的定时任务需要在关掉源头后手动启用
  • Markdown 导出

    已导入的 dsh 会话→`$DSH_HOME/exports/<source>/<session-id>.md`,任何 agent 都能读

04适合谁?何时不该用?

适合

  • 从其他编码 agent 换到 DeepSeek Harness、又不想丢掉聊天历史的开发者
  • 在同一批项目上同时跑 DSH 与 pi / codex / Claude Code、被副本漂移烦到的人
  • 已经攒了自动化或 agent 库、希望它们能在 DSH 里直接用的用户

不适合

  • 链接器绝不覆盖差异:内容相同的文件变成链接,但内容不同的副本只列为冲突、保持原样,需要你手工合并后重跑。
  • 迁移来的自动化以暂停状态导入,避免源头自动化跑两遍;先在源头暂停或删除它,再恢复 dsh 任务并核对翻译后的时间表。

05兼容性、维护与安全提示

  • 链接器绝不覆盖差异:内容相同的文件变成链接,但内容不同的副本只列为冲突、保持原样,需要你手工合并后重跑。
  • 迁移来的自动化以暂停状态导入,避免源头自动化跑两遍;先在源头暂停或删除它,再恢复 dsh 任务并核对翻译后的时间表。
  • WorkBuddy 的全局身份 / 记忆文件、MCP server 定义以及 provider 与权限设置不做统一——它们保持各 harness 原生。
  • 安装时需要构建的 Git 托管插件会撞上 pnpm >= 10 的构建拦截:首次 `add` 会因 `allowBuilds` 提示失败,把打印出来的 key 抄进 profile 的 pnpm-workspace.yaml 再重跑即可。已构建的 tarball 或本地 checkout 不需要这个许可。
  • 需要 Node >= 22.19(node:sqlite 与 node:zlib 的 zstd);除 Node 内置模块与 dsh 平台模块外,插件没有运行时依赖。
2026-08-142026-11-09v0.5.0

MIT · 仅 README 证据,最新版本 v0.5.0,未做安全审计

06常见问题

在 DeepSeek Harness 里怎么跑完整迁移?

用 `dsh plugin --profile web add dsh-unified-context` 安装,重启 `dsh web`,刷新页面,然后在输入框工具栏点 Sync,或输入 `/import-all`。这一条命令会导入五个来源的会话、把 agent 转成技能、链接共享上下文,并规划好默认暂停的自动化任务。重复执行是幂等的,已导入的会话会跳过。

上下文迁移会把文件复制到每个 harness 里吗?

不会。`/link-context` 只保留一份真身,其他 harness 的读取路径都是指向它的相对符号链接。内容相同的旧副本会被替换成链接,内容不同的副本只列为冲突、保持原样。删掉符号链接即可恢复该 harness 原来的文件。

为什么迁移后的自动化是暂停状态?

为了避免源头的 Codex 或 WorkBuddy 自动化还在跑时重复执行。先在源 harness 里暂停或删除它,再到 Automation tasks 页面恢复 dsh 任务,并核对翻译后的时间表;如果你已经关掉源头,可以用 `--activate` 跳过暂停默认值。

导入会话时会保留工具调用结果吗?

WorkBuddy 记录了真实的工具结果,这部分原样导入。pi、opencode、codex 与 claude-code 只存了调用本身,所以导入后保留为 `tool-call` 块,并配一个明确标注的占位 `tool/result`——轨迹页仍会渲染工具卡,续跑请求也仍然符合 API 要求。

运行它需要什么环境?

Node.js >= 22.19(与 dsh 相同基线),除 Node 内置模块(node:sqlite、node:zlib 的 zstd)与 dsh 平台模块外没有运行时依赖。每次重启后都必须刷新页面,因为旧页面的 RPC 连接已经断开。

08数据与来源

  • 作者声明github.com108a5f09a151…

    migrates **pi**, **opencode**, **codex**, **claude-code**, and **WorkBuddy (Tencent)** into [DeepSeek Harness](https://g…

  • 作者声明github.com108a5f09a151…

    Context is **shared through symlinks — one real copy, every harness reading it — never copied per harness.**

  • 作者声明github.com108a5f09a151…

    **One-click Sync button.** A small control in the composer tool row runs `/import-all` and shows the result inline — ses…

页面基于项目公开文档、仓库元数据和 DSH Plugins 的结构化解析生成;最后核验于 2026-11-11。发现错误?提交更正。

🏆

最佳 DeepSeek Harness 插件

从全目录挑出的 12 个值得优先安装的插件,覆盖各个分类。

DSH Plugins 是独立的 DeepSeek Harness 插件目录,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。

每周获取最新的 DeepSeek Harness 插件,绝不滥发。