Claude 迁移到 DSH
kirkchinese/Claudecode--DSH is a DeepSeek Harness ecosystem project for workflows and automation. Review its public README for features, setup, and usage details.
これは DeepSeek Harness(DSH)プラグインです。当サイトは GitHub README、インストール情報、メンテナンス状況、公開セキュリティシグナルをまとめています。
Claude → DSH
把 Claude Code 的用户数据无缝迁移到 DeepSeek Harness(DSH):会话、技能、插件、记忆与指令,一次迁移,全部可续、可查、可用。摆脱单一工具生态的限制。
DSH 的架构遵循 Cordis 的《A Programming Paradigm for Spatiotemporal Composability》——万物皆插件,能力由 cordis.yml 组合,agent 能力由 agent preset 提供。本工具链完全按照这套约定构建。
只读原则:~/.claude 永远只读;转换器绝不写入、删除或改动其中的任何文件(内置安全阀强制)。
它能做什么
| Claude Code 里的东西 | 迁移到 DSH 后 |
|---|---|
会话历史(projects/**/*.jsonl) | DSH 原生会话:可在会话列表打开、浏览、继续对话;按项目自动分组;标题带来源图标(🤖 Claude / 🧩 Codex) |
Codex 会话(~/.codex/**/rollout-*.jsonl) | 同上(🧩 图标、codex- 前缀,与 Claude 会话明确区分) |
Skills(SKILL.md,含插件内置) | DSH skills(~/.dsh/skills/,agent 可直接调用) |
| 插件(plugin.json + skills/commands/agents/hooks) | DSH agent preset(~/.dsh/.agent-presets/,会话选择器里选用;subagent/hooks 归档不执行) |
记忆(memory/*.md)与 CLAUDE.md | 每次请求实时注入的 prompt 段(项目优先) |
| 全部历史 | 可全文检索的上下文归档 + 语义召回 |
快速开始
# 1. 安装(一个命令)
dsh plugin --profile web add -w github:kirkchinese/Claudecode--DSH
# 2. 重启 DSH
# 3. 在任意会话里输入
/claude-import-all
刷新一次会话列表——所有 Claude(🤖)与 Codex(🧩)会话都在那里,按项目分组,点击即可继续。导入是幂等的:重跑只处理新增/变化的内容,已有数据绝不重复或覆盖。
会话内入口一览
| 入口 | 作用 |
|---|---|
/claude-import-all | 一键全量迁移(幂等、即时生效、自动分组) |
/resume-claude latest|<id>|<关键词> | 继续某个 Claude 会话(未导入先导入,摘要注入当前会话) |
/claude-recall <主题> | 在历史归档中语义检索旧会话(本地 TF-IDF,无 API 调用) |
/claude-watch on|off | 自动导入监听:Claude/Codex 目录变化自动增量导入(防抖 3 秒) |
claude_scan | 只读扫描:项目×会话索引(标题、时间、消息数、来源图标) |
import_claude | 按路径导入(支持 ~/.codex;verify=true 导入后自检) |
claude_plugins | 列出已装插件 / 插件转 agent preset(转换后自动挂载校验) |
claude_health | 全部导入会话的健康自检(只读) |
export_claude | 反向导出:DSH 会话 → Claude JSONL(claude --resume 可继续) |
| 🖥 Web 面板 | 右下角浮层:导入状态徽章、批量导入进度条、健康摘要 |
命令行模式(批量 / 无人值守)
node src/cli.js conversations # Claude 会话 → DSH 会话(幂等)
node src/cli.js conversations --origin codex # Codex 会话
node src/cli.js conversations --origin all # 两者
node src/cli.js skills --all # 技能迁移
node src/cli.js plugins --name <name> # 插件 → preset
node src/cli.js history # 上下文归档 + 检索 skill
# 通用:--dry-run 只报告不写入;--force 覆盖前自动备份;--verbose 逐文件决策
工作原理
flowchart LR
subgraph ClaudeCode["Claude Code / Codex(只读源)"]
P[projects/**/*.jsonl]
C[~/.codex rollout-*.jsonl]
S[skills / plugins]
M[memory / CLAUDE.md]
end
subgraph Core["claude2dsh 转换核心(纯函数)"]
R{来源注册表<br/>🤖 claude · 🧩 codex}
T1[会话解析 → DSH 事件流<br/>turn/step/tool 平衡结构]
T2[skill 归一化]
T3[插件 → agent.cordis.yml]
end
subgraph DSH["DeepSeek Harness"]
D1[sessionPersistence<br/>可续聊会话 + 工作区分组]
D2[~/.dsh/skills]
D3[agent presets]
D4[归档 + 语义召回]
D5[Web 面板]
end
P --> R
C --> R
R --> T1 --> D1
S --> T2 --> D2
S --> T3 --> D3
M --> D1
T1 --> D4
D1 --> D5
D2 --> D5
sequenceDiagram
participant U as 用户
participant PL as 插件 /claude-import-all
participant SR as 来源注册表
participant SP as sessionPersistence
participant WR as workspaceRegistry
participant PT as 投影缓存(标题)
U->>PL: /claude-import-all
PL->>SR: 扫描源文件(只读,按路径判来源)
SR-->>PL: claude 51 个 / codex 261 个
loop 每个会话
PL->>SP: create(header) + append(事件流 + session/title)
SP-->>PL: 即时落盘
PL->>WR: create(cwd) + attachSession(id)
end
WR-->>PL: 分组完成(不再"未分组")
PT-->>U: 会话列表显示 🤖/🧩 图标标题,可续聊
安全与质量保证
- 运行时级验证:导入的每个会话都经 DSH 官方
sessionPersistence.inspect校验;preset 经standingKeyFor挂载校验。迁移报告就是健康证明(claude_health实盘 51+261 会话 0 异常)。 - 分叉防护:已在 DSH 端继续过的会话不会被增量同步覆盖(两端历史互不破坏)。
- 回滚:CLI
--force覆盖前自动原子备份(.bak-<时间戳>)。 - 幂等:源文件 sha256 + 输出格式版本双判定;重复运行零副作用。
- 测试:74 项自动化测试(
node --test),CI 随每次提交运行。
常见问题
会话标题里的 Claude · / Codex · 是什么? 来源文本标记;Web 迁移面板按 source 字段渲染对应 SVG 图标(assets/icons/),DSH 原生列表无自定义图标通道故用文本前缀。id 带 claude-/codex- 前缀供程序判别;新增其他 agent 的支持只需在来源注册表加一个条目。
导入会不会动我的 Claude 数据? 不会。源文件只读;两边数据物理隔离。导入后你依然可以在 Claude Code 里继续任何会话,两边互不崩溃(同一会话在两端同时继续会形成两条分支,插件会检测并跳过覆盖)。
为什么有些会话没有标题? 标题继承自 Claude 的会话命名(ai-title);Codex 不保存标题,回退为会话首条消息。无法继承标题的会话显示 id。
插件会默认启用吗? 不会。插件迁移生成 preset 后由你决定何时在哪个会话使用——DSH 的架构约束是"会话一旦开始,工具集不可中途更换",所以选择性启用正是正确姿势。
导入后标题/分组没出现? 重启 DSH 或刷新会话列表;标题由投影缓存折叠日志事件生成,新会话即时可见。
姊妹插件
- dsh-remind:Claude 式提醒(
/remind 10m 检查编译结果),可独立安装:dsh plugin --profile web add -w "github:kirkchinese/Claudecode--DSH#packages/dsh-remind"
开发
- Node.js ≥ 22,ESM,无构建步骤;运行时依赖仅
js-yaml - 测试:
npm test(node --test) - 结构:
src/lib/(纯函数转换核心)·src/plugin/(DSH 插件入口与工具)·src/cli.js(命令行)·client/(Web 面板)·tests/(74 项测试) - 贡献前请读
docs/下的设计与格式对照文档
セキュリティとインストールエビデンス
このスコアは公開リポジトリメタデータと当サイトに登録されたインストールエビデンスのみに基づくもので、コードセキュリティ監査とは異なります。
公開プラグインカタログから取得し、公開 GitHub リポジトリにリンクしています。
リポジトリは MIT ライセンスを宣言しています。
過去180日以内にコードの更新があります。
再現可能な正確なインストールメタデータはまだ登録されていません。リポジトリの説明に従って手動で確認してください。
確認したパッケージメタデータにインストールライフサイクルスクリプトは宣言されていません。