跳到主要内容

dsh-plugin-claude-import

已验证

dsh-plugin-claude-import · v0.1.0 · MIT · Web 界面

Import Claude Code sessions into DeepSeek Harness: agent tools (claude_session_list / claude_session_import) plus a Web GUI one-click import dock.

安装

dsh plugin add dsh-plugin-claude-import

dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南

源码

标签

作者

说明文档

dsh-plugin-claude-import

Claude Code 的会话(~/.claude/projects/*.jsonl)导入 DeepSeek Harness,提取成可续接的上下文——自动摘要链、最后任务、动过的文件、尾部状态——而不是逐事件回放。

本插件是 claude-code-to-dsh(零依赖 Python CLI,产出同样的 seed / markdown 文档)的 DSH 原生移植。

功能

  • agent 工具(host 半区):
    • claude_session_list —— 列出 ~/.claude/projects 下所有会话(ID/项目/标题/时间/大小/消息统计)
    • claude_session_import —— 导入指定会话为 seed 开场上下文块(可直接粘贴进新会话)或完整 markdown 续接文档;createSession=true 时在 Claude 会话所属项目目录下新建 DSH 会话,并把上下文作为首条消息投递
  • Web UI(client 半区):会话头部新增「Claude 导入」入口——输入会话 ID(留空 = 最近一个),插件自动新建 DSH 会话、切换过去并播种导入指令

环境要求

  • dsh0.1.0-rc.6(npm:npx @deepseek-ai/dsh web),Node.js ≥ 18
  • 本机装有 Claude Code 且 ~/.claude/projects 下存在会话(插件在 dsh host 进程里读取它们)

安装

一条命令(bundle 流程,推荐)

dsh plugin --profile web add dsh-plugin-claude-import

包声明了 dsh.bundle,因此 dsh plugin 会自动 link、追加进 profile 的 bundles 并应用其 patch 层(插入插件行)。重启 dsh web 后验证:

dsh --profile web --dump-config | grep claude

手动(装进已有 profile)

cd ~/.dsh/profiles/web
pnpm add dsh-plugin-claude-import

然后在 ~/.dsh/profiles/web/cordis.patch.yml 注册:

- insert:
    - id: claude-import
      name: 'dsh-plugin-claude-import'

重启 dsh web

从 GitHub 安装

纯 JS 无构建步骤,git 安装无需 prepare 脚本:

dsh plugin --profile web add github:changhang155/dsh-plugin-claude-import#<sha>

若 pnpm 拒绝执行脚本,在 profile 的 pnpm-workspace.yaml 里放行(allowBuilds: dsh-plugin-claude-import: true)后重新 add。

peer 依赖

插件以 @deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/dsh-host-apiproxy@deepseek-ai/schemastery 为 peer,从 dsh 安装目录解析。web profile 已内置这些包;极简 profile 可能需要手动补装或把 dsh 安装目录 node_modules/@deepseek-ai 下的对应包软链进来。

用法

对 agent 说:

请列出 Claude Code 的历史会话。
把会话 <id> 导入为 seed,并在其项目目录下新建一个 DSH 会话。

claude_session_import 参数:

参数 含义
sessionId 8 位前缀、完整 ID 或完整 .jsonl 路径
format seed(默认)或 markdown
createSession 在 Claude 项目目录新建 DSH 会话,并把上下文作为首条消息投递

Web GUI: 点击会话头部「Claude 导入」,可选填会话 ID 后点「导入」。会新建并切换到新会话,其 agent 会汇报标题、动过的文件与未完成事项。

兼容性

DeepSeek Harness 处于 developer preview——会有破坏性变更。本插件面向 0.1.0-rc.6 npm 线(peer 范围 ^0.1.0-rc.6)。若后续 rc 改变 client 契约(window.__ModuleLoader__ / slot 注入),需要更新插件或固定 dsh 版本。

导入是启发式的:标题取自 Claude 的 ai-title / summary 行;「动过的文件」只覆盖 Write/Edit(及 Read)工具调用;本地命令模式会话(消息多为命令注入)会被识别并标注,而不是误当对话。

开发

git clone https://github.com/changhang155/dsh-plugin-claude-import
cd dsh-plugin-claude-import
npm test            # node --test tests/(零依赖)
node --check lib/index.js lib/client.js lib/parse.js

结构:

  • lib/index.js — host 半区:注册两个 agent 工具(defineTool,来自 @deepseek-ai/dsh-tools)
  • lib/client.js — client 半区:Web GUI 入口(由 client runner 加载)
  • lib/parse.js — 纯 Node 的 Claude Code JSONL 解析器(零依赖)
  • cordis.patch.yml — 激活插件的 bundle patch 层

License

MIT —— 见 LICENSE。请在 GitHub 仓库打上 dsh-plugin topic 便于发现。