前言¶
在 DeepSeek Harness(DSH)里续写智能体会话时,如果历史留在 chat.deepseek.com 的网页端,就需要自己复制粘贴或手工整理上下文。DeepSeek 网页对长对话会分页加载,附件和思考过程也不一定和正文在同一条导出链路里。Hungry-M 维护的 dsh-deepseek-import 把这条链路拆成两步:用 Edge 扩展在浏览器侧抓取对话并导出 JSON,再用导入器 CLI(亦可作为 DSH 插件的一部分能力)把 JSON 重建为可恢复的 DSH 会话与工作区条目。
项目自述为 0.x 预发布,数据格式与 CLI 参数可能变动;且非 DeepSeek 或 DeepSeek Harness 官方产品。许可证为 MIT。package.json 当前版本为 0.3.2。
这是什么¶
一句话:DeepSeek web chat → DSH session migration(Edge 扩展 + 导入 CLI)。
数据流如下:
Edge extension ──export──▶ dsh-deepseek-*.json ──dsh-import.cmd──▶ ~/.dsh/sessions + workspace.json
- 维护者:Hungry-M
- 分类:客户端(社区目录归类)
- 运行环境:导入器要求 Node.js 22+(会话压缩使用内置 zstd)
- DSH 插件形态:npm 包内含
dsh字段与cordis.patch.yml,可作为 DSH 生态插件使用;浏览器扩展无法随 npm 包分发,需单独加载。
核心功能¶
Edge 扩展:抓取与导出¶
- 在
chat.deepseek.com打开对话,加载完成后扩展可识别已捕获内容。 - 可逐条打开多个对话,列表会累积;勾选后 Export selected 导出。
- 若某对话未出现,可在该页使用 Capture chat:依次尝试 IndexedDB 本地缓存、按屏回填、仅可见区域。
- 长对话:按
message_id合并消息,重复抓取只增不盖;多数情况下可直接从 IndexedDB 的deepseek-chat / history-message一次读完,无需反复上滑。
导入器:会话、附件与旁路文件¶
- 无参数时可在下载目录中查找最新的
dsh-deepseek-*.json;也可将 JSON 拖到dsh-import.cmd上执行。 - 列出 DSH 工作区后按编号选择;每个对话对应一个 session,标题、顺序与正文(含代码块、表格)尽量保留。
- 附件:仅在数据源带有时,写入
<workspace>/.dsh-imported/<sessionId>/;无法下载时降级为占位说明。IndexedDB 来源通常不含附件。 - Thinking 写入同目录
thinking.md,不注入上下文。 - 编辑 / 再生成:正文仅保留选中分支,全版本记入
revisions.md。 - 中断输出:默认仅编号占位;可加
--keep-interrupted保留部分正文。 - 修改
workspace.json前会备份;过程记入import.log。
导入后必须重启 DSH¶
侧栏列表来自 ~/.dsh/storages/workspace.json,DSH 仅在启动时读取。应完全退出 DSH 再打开;若仍看不到新会话,顺序应为:退出 DSH → 运行导入 → 再启动 DSH,避免运行中的 DSH 用内存列表覆盖磁盘上的 workspace.json。
配置与优先级¶
与 CLI / TUI / 扩展共用的 import.config.json 示例:
{ "downloadDir": "D:\\Downloads", "subdir": "dsh-import", "lang": "zh" }
| 键 | 含义 |
|---|---|
downloadDir |
查找导出的目录(默认系统下载目录) |
subdir |
扩展保存到 <downloadDir>/<subdir>/,导入器也扫描该路径 |
lang |
zh / en,影响 TUI 与扩展界面 |
autoTrim |
默认 true:超过阈值时自动裁剪对话 |
autoTrimChars |
触发阈值,默认 120000 字符 |
autoTrimTurns |
保留的最大轮数,默认 20 |
autoTrimBudget |
保留部分的字符预算,默认 60000(从末尾向前取) |
扩展 ⚙ 中可设置相同裁剪项;导出 JSON 的 options 与 CLI 标志、配置文件、内置默认的解析顺序为:
CLI flags > export options(扩展设置) > import.config.json > built-in defaults
扩展还可选择 Write sidecars to DSH home,等价于 CLI 的 --no-sidecar。
审计与修复¶
DSH session format v4 要求首个模型可见节点为 system/message。0.1.0 导入的会话可能在继续聊天时出错;0.1.1 起导入时会写入头节点。可用:
node dsh-import.mjs --audit
node dsh-import.mjs --repair
node dsh-import.mjs --doctor
安装与启用¶
导入 CLI(npm)¶
资料中的安装方式如下:
# from npm (once published)
npm i -g dsh-deepseek-import
dsh-import --list
亦可在克隆后的仓库目录直接运行(需自行获取源码):
node dsh-import.mjs --list
扩展必须单独安装,不能通过 npm 包附带。
加载 Edge 扩展(一次性)¶
- 在 Edge 打开
edge://extensions/ - 开启 Developer mode
- Load unpacked,选择仓库中的
edge-extension目录 - 可选:固定到工具栏
作为 DSH 插件使用时,安装 npm 包后按 DSH 对 Cordis 补丁类插件的常规方式启用即可;具体以项目 cordis.patch.yml 与 DSH 文档为准。社区目录页:https://www.skillhub.cn/plugins/Hungry-M/dsh-deepseek-import
典型用法¶
1. 捕获并导出¶
在 chat.deepseek.com 打开对话 → 打开扩展确认已捕获 → 勾选 → Export selected。导出文件命名形如 dsh-deepseek-*.json,默认落在配置的 downloadDir / subdir 下。
2. 导入到工作区¶
双击工作区内的 dsh-import.cmd,或将 JSON 拖到该脚本上;命令行等价示例:
node dsh-import.mjs
node dsh-import.mjs export.json -w "D:\proj"
node dsh-import.mjs export.json --dry-run
交互式界面:
node dsh-import-tui.mjs
可选分支起点(从某条用户消息之后开始会话,而非默认「最后 N 轮」):
node dsh-import.mjs export.json --from-match "some text you typed"
node dsh-import.mjs export.json --from-index 157
其它常用标志(节选):
node dsh-import.mjs export.json --thinking
node dsh-import.mjs export.json --keep-versions
node dsh-import.mjs export.json --keep-interrupted
node dsh-import.mjs export.json --tail 20
node dsh-import.mjs export.json --no-auto-trim
node dsh-import.mjs export.json --no-sidecar
脚本 / AI 调用可 import 模块函数 runImport、getWorkspaces、listExports、peekExport(见 README)。
导入后首条用户消息末尾会带索引行,指向 .dsh-imported/<sessionId>/ 下的 thinking.md 与附件路径,便于需要时用普通文件工具读取,而不会自动塞进上下文。
3. 极长对话¶
README 提醒:单会话若达到数十万字符量级,token 体量很大;DSH 虽有压缩,仍建议用 --tail、--from-index、autoTrim 等控制导入范围,避免一次整包迁入。
适用场景与注意¶
适合:已在 Edge 使用 DeepSeek 网页聊天、希望把选定对话迁到本地 DSH 工作区继续开发或复现上下文的用户;需要保留 thinking / 多版本修订到旁路文件、而非全部堆进 prompt 的场景。
注意:
- 插件与 CLI 在用户本机、以当前 DSH / Node 进程权限读写
~/.dsh与工作区;安装前请阅读 GitHub 仓库 源码与 MIT 许可证。 - 项目为第三方工具,与 DeepSeek、幻方及 DSH 官方无隶属关系;社区目录 SkillHub 为独立站点,不是官方应用商店。
- 预发布阶段接口与 JSON 结构可能变化;生产环境迁移前建议
--dry-run或小样本试导入。 - 抓取依赖 Edge 与
chat.deepseek.com前端实现,页面或存储结构变更可能导致需更新扩展。
结尾¶
dsh-deepseek-import 把「网页端聊天」和「DSH 可恢复会话」用 JSON 桥接起来:扩展负责可靠抓取(含长对话与 IndexedDB 路径),导入器负责 session、工作区登记与 thinking / 附件等旁路归档。装好 Node 22+ 与全局 dsh-import、加载 edge-extension 后,按「捕获 → 导出 → 导入 → 重启 DSH」即可接续在 Harness 里工作。
- 社区目录:https://www.skillhub.cn/plugins/Hungry-M/dsh-deepseek-import
- 源码与文档:https://github.com/Hungry-M/dsh-deepseek-import