dshbase

插件目录 / Developer / dsh-read-history

dsh-read-history

已验证 · 实测可装 Slowdownnn

✓ 持续维护

查看 GitHub ↗ ← 返回插件目录

1Stars
0Forks
0未关闭 issue
JavaScript语言
2026-08-15最近推送
跨平台平台

功能简介

迁移claude/codex对话历史到dsh

✅
我们的评价
可用 — 实测通过,早期项目

迁移claude/codex对话历史到dsh 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

dsh-read-history

把 Claude Code 与 Codex CLI 的历史对话导入 DeepSeek Harness (DSH): - **每个历史会话 → 一个原生 DSH 会话**:出现在左侧对应工作区的会话列表里(与现有会话并列), 点击即可查看完整历史(用户/助手消息、轮次结构、标题),就像它们本来就是 DSH 的会话。 - **入口在「设置」页**:新增「对话历史导入」设置区块(settings.section 插槽), 提供导入按钮、导入状态与已导入会话列表。

安装

从 npm 安装(发布后)

``sh

安装到 web profile(pnpm 通过 corepack 提供)

dsh plugin --profile web add dsh-read-history
`

本地开发 / 从源码安装

`sh

本地路径安装(用于开发调试)

dsh plugin --profile web add D:\code\dsh-read-history
` 安装后在 %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml 注册: cordis.patch.yml: `yaml - insert: - id: read-history name: 'dsh-read-history' config: claudeRoot: '' # 默认 ~/.claude/projects codexRoot: '' # 默认 ~/.codex/sessions includeThinking: false autoImport: false # 不开启自动导入(幂等) ` > ⚠️ host 端代码(lib/index.js、lib/convert.js)改动需要**重启** dsh web; > client 端(lib/client.js)no-cache 实时服务,**刷新浏览器**即可。

使用方法(通过设置页导入)

安装并重启
dsh web 后,按下面的步骤导入历史会话: 1. **打开 DSH Web 界面**(默认 http://127.0.0.1:3080)。 2. 点击左侧边栏底部的 **「设置」** 图标,进入设置页。 3. 在设置页里找到 **「对话历史导入」** 区块(标题下方有说明文字)。 4. 点击 **「导入 Claude」** 或 **「导入 Codex」** 按钮,分别导入对应工具的历史会话: - 只导 Claude Code 的历史 → 点 **「导入 Claude」** - 只导 Codex CLI 的历史 → 点 **「导入 Codex」** - 两个按钮各自独立,导入期间按钮会显示「导入中…」并暂时禁用。 5. 等待导入完成,区块里会显示结果: - **成功卡片**:显示本次创建了多少个 DSH 会话(如「导入完成:创建 12 个 DSH 会话」)。 - **统计行**:上次导入时间、累计创建/跳过/失败会话数。 - **已创建的会话列表**:每个会话显示标题、所属工作区、轮次数与 DSH 会话 id。 6. 回到左侧边栏,**在对应的工作区下就能看到导入的会话**(与现有会话并列),点击即可查看完整历史(用户/助手消息、轮次结构、标题)。 > 提示: > - 导入是**幂等**的——同一个会话重复导入会自动跳过,不会产生重复。 > - 导入的会话会出现在与其原始工作目录(cwd)匹配的工作区里,而不是「未分组」。 > - 想同时清掉某次的导入?没有内置「撤销」,但可以直接删除对应工作区下的会话。

工作原理

1. **扫描解析**:读取
~/.claude/projects/**/*.jsonl、~/.codex/sessions/**/*.jsonl。 2. **转换为 DSH 会话**(lib/convert.js):每个历史会话先 sessions.prepare() 构造、直接写入持久化(sessionPersistence.create + append),**不进入实时 store**,因此不占内存、重启不会复活;标题以 session/title 事件写进日志; workspaceRegistry.create(cwd)(按 cwd 复用或新建工作区)+ attachSession() 挂到对应工作区, 因此每个历史会话都会出现在与其 cwd 相同的工作区里,而不是落到「未分组」。 幂等:按派生 id(session-<源会话id>)查重(一次 sessionPersistence.list() 缓存成集合,O(n) 而非逐行 O(n²)),重复导入自动跳过。 3. **内容清洗**(lib/parse.js):过滤 Claude/Codex 注入的噪声——斜杠命令(/clear、/compact 等)、 <command-name>/<local-command-*>/<bash-*>/<system-reminder>/<environment_context>/<instructions>/ AGENTS.md 与 Codex Desktop 审批脚手架(TRANSCRIPT DELTA、APPROVAL REQUEST 等),只保留真实的人机对话。

API(同源,设置面板调用)

| 方法 | 路径 | 说明 | |---|---|---| | GET |
/dsh-history/api/status | 状态(目录、上次导入时间、统计) | | POST | /dsh-history/api/import | 执行导入(幂等;body 可带 {"tool":"claude"|"codex"} 只导入单一来源) | | GET | /dsh-history/api/imported` | 累积已导入会话清单 |

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-read-history」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

Web profile:

dsh plugin --profile web add dsh-read-history

Headless(CLI)profile:

dsh plugin --profile headless add dsh-read-history

包信息

npm:dsh-read-history · 版本 — · 实测环境 dsh 0.1.0-rc.6

实测报告

端到端验证通过:dsh 0.1.0-rc.6 上 L1 安装 + L2 加载 + L3 运行问答。

使用场景

扩展 agent 的编码能力面——给它一个新工具、工作流或集成,让它接手以前做不了的开发任务。

适合谁

想让 dsh 在真实代码库上像队友一样干活的开发者——能改、能跑、能验证,而不只是回答问题。

二次开发建议

工具/命令面就是缝:暴露更多 SDK 能力、加更聪明的上下文接线,或收紧改代码与验证之间的循环。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7797 个插件 →