wpc0323
deepseek-web-import
DeepSeek Web 对话导入
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
DeepSeek Web 对话导入(DeepSeek Harness 插件)
将 chat.deepseek.com 网页端的历史对话导入为 DeepSeek Harness (DSH) 的正式会话:导入后会话出现在左侧工作区列表中,可以打开、查看完整历史,并选择模型继续对话。
本项目是 DSH 的动态 Cordis 插件(Host + Client 双半部),不是 npm 包。加载方式见下文「安装」。
✨ 功能
- 设置面板新增 「DeepSeek 对话导入」 页面
- 粘贴
userToken后一键拉取对话目录(仅显示标题 + 日期,不展开正文) - 每条对话可选目标工作区,一键导入为 DSH 会话
- 导入的会话:
- 显示 DeepSeek 里的原标题
- 可在其中选模型继续对话(走 DSH 正常 resume 路径,不会报
cannot prepare session while it is live) - 持久化在
~/.dsh/sessions/<工作区>/下,重启 DSH 后仍在
- 自动提取
userToken中的value字段(兼容{"value":"...","__version":"0"}格式) - 内置「诊断」区,接口变更时可直接 GET 原始响应排查
⚠️ 重要提示
导入对话后请刷新网页(F5),左侧工作区才会立即显示新导入的会话。
若不刷新,新会话可能要到下次会话列表刷新/重连后才出现。
安装
这是一个 动态 Cordis 插件(运行在当前 DSH 进程内,定义+激活即可用)。安装步骤:
-
打开一个 DSH agent 会话,把下面这段提示词发给 agent:
请读取本仓库根目录的
host.js和client.js,分别作为code.host和code.client,调用cordis_define(plugin.kind: "new",idPrefix: "dswi")定义插件,然后cordis_run激活它。如果有 Client 审批请求,请批准。 -
批准后,设置 → 左侧会出现 「DeepSeek 对话导入」 页面。
说明:动态插件在 DSH 进程重启后需要重新加载(重复上面一步即可)。若你有长期自托管的 Cordis 环境,也可把
host.js/client.js适配进自己的 host composition / client web module。
使用
- 打开 设置 → DeepSeek 对话导入。
- ① 登录态:粘贴
userToken→ 保存。- 获取:浏览器登录 chat.deepseek.com →
F12→Application→Local Storage→ 复制userToken的值。 - 插件会自动提取其中的
value字段,直接复制整段即可。
- 获取:浏览器登录 chat.deepseek.com →
- ② 对话目录:点「获取对话目录」→ 显示最近 100 条对话(标题 + 日期)。
- 每条对话旁:选择工作区 → 点「导入为会话」。
- 导入对话后请刷新网页,然后在左侧工作区点开新会话 → 选模型 → 继续对话。
实现原理(简述)
- 接口(DeepSeek 网页端非官方内部 API,已从官方 JS 包逆向确认):
- 会话目录:
GET /api/v0/chat_session/fetch_page?count=100 - 对话历史:
GET /api/v0/chat/history_messages?chat_session_id=<uuid>
- 会话目录:
- 导入为会话:把历史消息转换成合法 DSH 会话事件(
turn/start → user/message → step/start → assistant/message → step/end → turn/end,surface 事件带surfaceOp: "append",含session/title与session/end-seed),通过sessionPersistence.create + append只写持久化,再workspace.attachSession挂载到所选工作区 —— 不进入 live store,因此可以被正常打开/对话。 - 网络层:
web.fetch无法携带自定义 Header,插件通过subprocess起 Node 发送带Authorization: Bearer的请求;请求启用了rejectUnauthorized: false(本机 TLS 证书校验失败的环境限制)。 - Token 存储:使用 DSH
credentials服务($DSH_HOME/.credentials.yaml),不写入会话/设置文档。
已知限制
- 依赖 DeepSeek 非官方内部接口,可能随其网页改版失效(失效时用「诊断」区查看原始响应)。
- 密码登录会被 DeepSeek 的**人机验证(AWS WAF)**拦截,必须使用
userToken方式。 - 对话目录一次最多拉取 100 条(
fetch_page分页未实现,需要全量可自行扩展游标参数)。 userToken有时效(约数小时~数天),失效后重新复制保存即可。- 动态插件仅在当前进程内运行;重启 DSH 后需重新加载。
安全提醒
- 请勿在任何对话、Issue、仓库中泄露账号密码或
userToken。 - 如曾在聊天中贴出密码,请立即修改 DeepSeek 密码。