DeepSeek Harness Hub
← 返回列表

severin-ye/uagent-sync

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
需源码安装

Node兼容范围:…

暂不能直接安装(需源码编译或环境不满足):engines.node 要求 ^22.22.2 || ^24.15.0 || >=26.0.0,不满足 Node 22.19.0。 · 最近上游提交 2026/9/17 · 已提供中文文档

OpenCode、Codex 和 DeepSeek Harness 的跨设备代理工作区同步——备份、恢复、更新和配置检查。

综合分
36.2
GitHub 分
36.2
用户评分
★ Stars
3
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add severin-ye/uagent-sync
engines.node 要求 ^22.22.2 || ^24.15.0 || >=26.0.0,不满足 Node 22.19.0,改用 GitHub 源安装
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包uagent-sync @ 2.1.0
Node 引擎要求 ^22.22.2 || ^24.15.0 || >=26.0.0 · 基线 Node 22.19 不满足
dsh CLI 依赖未声明 dsh 版本约束
入口文件main/exports/bin 已声明

engines.node 要求 ^22.22.2 || ^24.15.0 || >=26.0.0,不满足 Node 22.19.0

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/18 12:11:58

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

Node兼容范围: 锁定运行依赖的要求比根>=18字段更严格。Node18.20.8通过过已记录测试,但不代表支持engine-strict安装;24.16.0/24.19.0同时有测试证据且满足依赖声明。详见精确兼容边界。

uagent-sync

一条命令备份,一条命令恢复。你的整个开发环境,跨设备同步。

把你的智能体工作区——子模块、配置、技能、API 密钥模板——导出到私有 GitHub 仓库。
在新设备上拉回来,一切自动安装。

为什么

你有不止一台机器。每台机器上的 opencode / Codex 都装着不同的插件、MCP 服务器、技能,子模块也停留在不同提交。手动同步是一场噩梦:git submodule update、npx skills add、复制粘贴配置文件……

uagent-sync 把它变成一条命令:

主机器上
opencode-sync push "周五备份"

新电脑上
opencode-sync pull

就这样。子模块重置到精确提交,MCP 服务器重建,技能重装,配置合并,API 密钥模板化。一切自动完成。

安装

uagent-sync 提供一套 CLI 与三个智能体入口。按你使用的平台安装:

DeepSeek Harness

从 npm 安装(推荐——随依赖自动带入 CLI)
dsh plugin --profile  add uagent-sync-dsh

或从 GitHub 安装(monorepo 子包,纯 JS,无需构建授权)
dsh plugin --profile  add "github:severin-ye/uagent-sync#master&path:packages/dsh"

OpenCode

npm install -g uagent-sync        # 全局 CLI(命令名:uagent-sync / opencode-sync)
或免安装直接运行:
npx uagent-sync

然后把它加进 opencode 配置(config/opencode.json)并重启:

{ "plugin": ["file:///绝对路径/uagent-sync/dist/plugin.js"] }

Codex

codex plugin marketplace add severin-ye/uagent-sync
然后在 Codex CLI 中打开 /plugins,安装 uagent-sync,新会话生效

迁移分析与功能去重

迁移分析是唯一的 Dashboard 模块,内部包含覆盖与缺口、兼容性、功能重叠与去重、迁移决策、执行与验证。运行 uagent-sync dashboard --page migration-analysis 后,选择单 Agent(检查同一 Agent 内的功能重复)或明确的来源/目标 Agent(迁移比较);未选择范围时不扫描、不显示比较结果和数量。来源统一标记为官方、第三方、本地或未知;官方身份必须有受控安装证据。agent-browser → browser/chrome 是一个功能分组,保留多条证据边和一个动作控件。

V1 审计账本 usync-dotfiles/agents/codex/policies/extension-conflicts.json 只读保留。首次确认写入时才在事务内创建/导入 V2 账本 usync-dotfiles/policies/capability-decisions.json。Codex 写入必须经过暂存、精确配置/账本 diff 和一次性二次确认;OpenCode、DeepSeek 永远只读,不卸载或删除扩展。旧 /extension-conflicts 仅作为统一 Dashboard 的兼容入口。

首次备份

opencode-sync init          # 检测工作区
opencode-sync push "init"   # 首次备份

改用源码? git clone https://github.com/severin-ye/uagent-sync && cd uagent-sync && npm install && npm run build,之后用 node dist/cli.js 。

新设备? 先 opencode-sync init --init-type sync --github-url ,再 opencode-sync pull。

Codex 支持

uagent-sync 同时是一个 Codex 插件(skills + hooks,不依赖 MCP):同一套 CLI、同一批技能,两端共享。

安装(Codex CLI)

codex plugin marketplace add severin-ye/uagent-sync
然后在 Codex CLI 中打开 /plugins,安装 uagent-sync,新会话生效

安装(ChatGPT 桌面版 / Codex 桌面版)

1. 打开 Plugins → Personal → 添加 marketplace 源 https://github.com/severin-ye/uagent-sync
2. 安装 uagent-sync,开新会话

安装后获得什么

- 3 个技能:uagent-sync-backup(备份流程)、uagent-sync-restore(新设备恢复)、uagent-sync-update(生态更新)——按需加载,指导智能体调用 CLI
- 会话启动钩子:会话开始时注入 CLI 使用提示(PLUGIN_ROOT 环境变量定位插件根,Windows 经 Git bash 包装)
- CLI(唯一执行通道):node /dist/cli.js ,18 个命令与 opencode 插件共享同一套 CLI

原理

uagent-sync/
├── .codex-plugin/plugin.json   # Codex 插件清单(skills + hooks,预留 mcpServers 扩展位)
├── hooks/                      # hooks-codex.json + run-hook.cmd + session-start
├── skills/                     # 3 个 SKILL.md —— opencode 与 Codex 共享同一份
├── src/plugin.ts               # opencode 插件(config 钩子自动注册技能目录)
└── src/cli.ts                  # 18 命令 CLI —— 三端唯一执行通道

DeepSeek Harness 支持

uagent-sync 同时以 DeepSeek Harness bundle 形态分发(packages/dsh/):注册 16 个 sync_ 工具(与 opencode 插件的 opencode_sync_ 一一对应),全部通过 CLI 桥接执行。中文名:U同步 / 优同步。

安装

从 npm(推荐——uagent-sync-dsh 依赖 uagent-sync,CLI 随依赖带入)
dsh plugin --profile  add uagent-sync-dsh

从 GitHub(monorepo 子包,纯 JS,无需构建授权)
dsh plugin --profile  add "github:severin-ye/uagent-sync#master&path:packages/dsh"

或本地 checkout(自动发现 dist/cli.js)
dsh plugin --profile  add ./packages/dsh

插件按以下顺序定位 CLI:cordis.yml config.cliPath → 环境变量 OPENCODE_SYNC_UAGENT_SYNC_CLI → 本地 checkout 相对路径 → npm 依赖 uagent-sync/dist/cli.js → 工作区递归(向上找 .gitmodules 再找 uagent-sync/dist/cli.js)。详见 packages/dsh/README.md。

DSH 插件加载时还会把共享技能(uagent-sync-backup/restore/update)注册为 DSH runtime skills——从 CLI 所在 checkout 的 skills/ 目录读取,与 opencode/Codex 是同一份。

工作区根目录定位

所有 node dist/cli.js  命令都需要知道工作区根目录(包含 .gitmodules 的目录)。定位顺序:

1. 环境变量 OPENCODE_SYNC_WORKSPACE_ROOT=(显式指定,优先级最高)
2. 固定缓存 ~/.config/opencode/sync-cache.json(任何启动目录都能读到)
3. 旧位置缓存自动迁移(usync-dotfiles/state/sync-cache.json,v1.0.0 写入)
4. 从 opencode 进程启动目录逐级向上找 .gitmodules

从桌面、主目录或 OpenChamber 默认目录启动 opencode 也能正常解析——不需要在工作区内启动。四种途径全部失败时,错误信息会给出可操作的引导。

同步内容

| 类别 | 内容 | 方式 |
|------|------|------|
| 子模块 | 所有仓库,精确提交号 | git clone + git reset --hard |
| OpenCode 配置 | 插件、MCP 服务器、模型供应商 | 深度合并,绝不覆盖 |
| 技能 | 从 git 源安装的技能包 | skills add  -g |
| API 密钥 | 名称 + 说明(绝不包含值) | 模板文件 keys/API.md —— keys/ 目录在 usync-dotfiles 中已 gitignore,真实值只存在于本机 |
| 依赖 | gh CLI、Ralph、Skills CLI | winget/brew/apt/npm 自动安装 |
| Windows 修复 | NTFS 路径问题 | 自动检测问题文件名,应用 git config core.protectNTFS |
| 安装日志 | 每次安装的来源与踩坑 | state/install-log.json —— 可追溯 |

多 Agent 配置看板

以只读方式检查 Codex、OpenCode 和 DeepSeek Harness 配置:

opencode-sync inventory --json
opencode-sync dashboard

看板默认只监听 127.0.0.1,启动后会输出实际本地地址。第一阶段只做扫描和可视化:展示 Skills、规则、MCP 声明、Hooks、插件/工具、可迁移性与缺口,不在网页中修改配置。密钥值、Session、Memory、Provider 凭据、权限、主题、快捷键、UI 状态和缓存均不进入清单。DeepSeek MCP 在本机证据明确前始终标记为“未证实”。

“迁移建议”页面支持 Codex、OpenCode、DeepSeek Harness 之间的六个迁移方向。它按能力而不是插件名称生成只读草案,并将系统建议与用户决定分开显示。用户可以先选择一套统一法则,再逐项覆盖冲突能力;目标平台官方版本、目标原生重复能力、待验证兼容性和最后兜底的自制适配器会被区别标记。本阶段不会下载扩展、启用插件或改写任何 Agent 配置。

只读 API 也可以直接查看草案:

GET /api/migration-draft?from=codex&to=opencode&policy=recommended

可用策略为 recommended、prefer_target_native、prefer_source_workflow、keep_both 和 ask_each。完整能力边界见 docs/multi-agent-capability-migration-spec.zh-CN.md。

🌐 语言(English / 中文)

输出默认英文,可随时切换为中文:

- CLI:--lang zh 参数,或环境变量 UAGENT_SYNC_LANG=zh(兜底依次为系统 locale、英文)。
- 看板:顶栏 中文 / EN 一键切换,选择保存在 localStorage(键 uagent-lang)。
- 生成的文档(SYNC-GUIDE.md、know-how 文件)跟随当前语言。

opencode-sync api-keys detect            # 默认英文
opencode-sync api-keys detect --lang zh  # 中文
UAGENT_SYNC_LANG=zh opencode-sync guide  # 中文引导文档

CLI(18 个命令)

所有命令以 node dist/cli.js  执行(npm link 后可简写为 opencode-sync )。

| 命令 | 作用 |
|------|------|
| init | 检测工作区,引导首次设置。只问一次。 |
| push | 导出状态 → 提交 → 推送到 GitHub。一条命令。 |
| pull | 从 GitHub 拉取 → 恢复一切。一条命令。 |
| export | 导出完整工作区状态为 JSON |
| import | 从 JSON/URL 恢复(支持 --dry-run 预览) |
| diff | 对比当前状态与已保存状态 |
| status | 查看每个子模块:提交、分支、是否脏 |
| verify | 环境健康检查:gh、git、配置、ralph、技能、子模块 |
| setup | 安装一切:gh、子模块、配置、ralph、Skills CLI、技能包 |
| create-repo | 创建私有 GitHub 仓库(公开会警告) |
| api-keys | 检测、生成模板或添加 API 密钥 |
| guide | 生成 guide/SYNC-GUIDE.md —— 恢复手册 |
| log | 读写安装溯源日志 |
| crystallize | 记录安装 + 重生成文档 + 导出状态 + 一键提交 |
| update | 按 targetAgent 更新智能体生态;Codex 的 sync 会拉取 U同步源码、运行测试、真实打包并重装全局 CLI,再刷新 personal marketplace、安装并核验同版本插件 |
| changelog | 从最新更新报告起草分类变更日志 |
| inventory | 只读扫描 Codex/OpenCode/DeepSeek Harness 配置(不含密钥值) |
| dashboard | 启动本地只读配置看板(默认监听 127.0.0.1) |

MCP 服务器形态(v1.0.0)已移除——自 v1.1.0 起仅提供 opencode 插件形态与独立 CLI。工具/命令前缀保留 opencode_sync_ / node dist/cli.js 以兼容既有习惯。

架构

uagent-sync/                  # ← 本仓库(纯代码,运行时永不修改)
├── src/
│   ├── application/           # 共享 verify/export/import/setup/update/push/pull 用例
│   ├── ports/                 # 文件系统、Git、进程和 Agent 契约
│   ├── adapters/              # Node/Git/进程和 Agent 扫描实现
│   ├── artifacts/             # 版本化 WorkspaceState 读时 codec 与迁移
│   ├── entrypoints/           # 仅负责呈现的格式化器
│   ├── lib/                   # 现有领域实现与兼容模块
│   ├── sync.ts                # 公共兼容与架构汇总导出
│   ├── plugin.ts              # OpenCode 插件入口
│   └── cli.ts                 # 独立 18 命令入口
├── skills/                    # 3 个共享技能(opencode + Codex + DSH)
├── hooks/                     # Codex 会话启动钩子
├── .codex-plugin/             # Codex 插件清单 + marketplace
├── packages/dsh/              # DeepSeek Harness bundle(16 个 sync_* 工具)
├── test/                      # node:test 测试套件(npm test 全量)
├── .github/workflows/         # CI + 发布自动化
├── CHANGELOG.md               # 变更日志
├── RELEASING.md               # 发布手册
└── dist/                      # 编译产物

usync-dotfiles/             # ← 运行时数据(独立仓库,随 Git 同步)
├── state/                     # 运行时状态文件
├── guide/                     # 自动生成的文档
├── keys/                      # API 密钥模板
├── config/                    # OpenCode 配置模板
├── sessions/                  # 聊天记录(来自会话录制插件)
└── scripts/                   # 引导脚本

代码永不触碰数据。 插件代码在一个目录,所有生成文件写入 usync-dotfiles/。职责分离。

已实装的依赖方向为 入口 → Application → Domain/Ports ← Adapters。WorkspaceState v3 是内部验证后的读时契约,当前 wire 导出继续兼容旧格式。DSH 与 all 尚无恢复 writer/contract,因此恢复会 fail-closed。具体边界、Codex-only 隔离、codebase-memory-mcp 永久删除语义和 runtime scanner 扩展边界见 docs/ARCHITECTURE.md。要正式支持第四 Agent,仍需显式扩展 AgentId、路径、Dashboard、迁移上下文和宿主契约。

开发

git clone https://github.com/severin-ye/uagent-sync
cd uagent-sync
npm install
npm run typecheck    # tsc --noEmit
npm run build        # TypeScript → dist/
npm test             # 全量测试(node:test)
npx playwright install chromium  # 首次安装浏览器
npm run test:e2e     # 真实 Dashboard 浏览器流程

CI 门禁(GitHub Actions,Windows,Node 20/22):构建、单元测试和 Playwright 浏览器 E2E 全部通过才能合并。

发布

见 RELEASING.md。流程:更新 CHANGELOG → npm run release:patch|minor|major(版本号 + tag + 推送)→ GitHub Actions 自动构建、测试并创建 Release(附带 tarball)。

安全

- 命令注入加固:shellEscape() 包裹所有进入 Shell 的用户输入;Git 提交用 -F 文件输入而非 -m 字符串拼接。
- 路径穿越防护:isPathSafe() 校验所有文件路径都落在工作区根内。
- Zod 模式校验:每个输入都经 .min()/.max()/.strict() 校验后才触碰文件系统。
- 密钥绝不导出:只记录环境变量_名称_,值永远留在本机。usync-dotfiles/keys/ 目录已 gitignore,即使 api-keys add --key-value 写入的真实值也只存在于本地、永不进入 Git 历史。
- 默认私有仓库:create_repo 创建 --private;发现公开仓库会警告。

参与贡献

欢迎 PR。测试先行:新功能附带测试,Bug 修复先写复现用例(红)再修复(绿)。测试套件设计见 evaluation.xml。

🤖 给智能体: 详见 AGENTS.md——完整的逐步指南,让任何智能体无需额外提示即可完成安装、配置与备份/同步全流程。把智能体指向本仓库即可。

许可证

MIT © 2026 uagent-sync contributors

简体中文 | English

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群