DSH Plugins Marketplace

DSH Plugins

Plugins

/

Terminal & Clients

/

deepseek-web-import

d

deepseek-web-import

Manifest valid

Import chat.deepseek.com conversations into DeepSeek Harness as resumable sessions, from a settings-page UI. Fork with Session format v0-v4 support.

UI (client)hasBundlePatch

deepseek-web-import

把 chat.deepseek.com 网页版的历史对话导入成 DeepSeek Harness (DSH) 的正式会话: 导入后出现在左侧工作区列表里,可以打开、查看完整历史(含思维链)、选模型继续对话。

这是 wpc0323/deepseek-web-import 的维护分支(fork)。 原版导入一直失败(encodeCurrent requires Session format v3),且会话格式已升级到 v4, 本分支重写了导入链路,按运行中的 DSH 版本自适应写入 v0 / v1 / v2 / v3 / v4,并补上了原版会丢正文的问题。

✨ 功能

  • 设置面板新增 「DeepSeek 对话导入」 页面
  • 粘贴 userToken 后一键拉取对话目录(仅显示标题 + 日期,不展开正文)
  • 每条对话可选目标工作区,一键导入为 DSH 会话
  • 导入的会话:
    • 显示 DeepSeek 里的原标题
    • 保留思维链(THINK 片段 → reasoning 块)与真实时间
    • 可在其中选模型继续对话(走 DSH 正常 resume 路径,不会报 cannot prepare session while it is live)
    • 持久化在 $DSH_HOME/sessions/<工作区>/ 下,重启 DSH 后仍在
  • 自动提取 userToken 中的 value 字段(兼容 {"value":"...","__version":"0"} 格式)
  • 内置「诊断」区,接口变更时可直接 GET 原始响应排查

它解决了什么

问题现象修复
会话格式版本写死成 v0导入报 encodeCurrent requires Session format v3运行时探测当前构建写入的格式版本,写错时按后端报出的版本自动重试
用错持久化接口persistence.append is not a function(v2+ 是句柄式接口)自动识别两代接口:v0/v1 用 create(meta) + append(id, events),v2+ 用 create(header) 返回的写句柄
正文取错字段消息全部为空DeepSeek 的正文在 fragments(REQUEST/RESPONSE/THINK),不在 content;现在按角色提取,并把思维链导入为 reasoning 块
热重载路由冲突重载插件报 webserver: duplicate exact route路由注册可重入,并在 fiber 销毁时释放

兼容性

DSH 版本Session 格式状态
0.1.1-rc.1 – 0.1.2-rc.1v0✅ 实测通过
(无发布版本)v1✅ 按 v0 形状建模,单测覆盖
0.1.3-alpha.2v2✅ 实测通过
0.1.5-alpha.1 – 0.1.6-alpha.2v3✅ 实测通过
0.1.7-alpha.1+v4✅ 实测通过(当前版本)

“实测通过”指用该版本真实的 dsh-session-persistence-jsonl 后端写入并读回校验, 命令见 docs/COMPATIBILITY.md。

安装

# 从 GitHub 安装(dsh 会把它当作 bundle 插件)
dsh plugin --profile web add github:<你的GitHub用户名>/deepseek-web-import
# 若直接安装本Repositories:
dsh plugin --profile web add github:CwavGuy/deepseek-web-import

装完重启 DSH,设置页左侧出现「DeepSeek 对话导入」。

手动安装(不使用 dsh plugin add):把本仓库放到 $DSH_HOME/profiles/web/node_modules/deepseek-web-import/,然后重启 DSH 即可。

使用

  1. 打开 设置 → DeepSeek 对话导入。
  2. ① 登录态:浏览器登录 chat.deepseek.com → F12 → Application → Local Storage → 复制 userToken 的值 → 粘贴保存(整段 {"value":"…"} 也可以,插件会自动取值)。
  3. ② 对话目录:点「获取对话目录」(一次最多 100 条)。
  4. 每条对话右侧选目标工作区 → 点「导入为会话」。
  5. 刷新网页 (F5),左侧工作区即可看到导入的会话;点开选模型即可继续对话。

工作原理

  • 架构:lib/index.js 是 host 半部(用 DSH 的 webServer 注册同源 JSON 路由 /__deepseek-web-import/*),lib/client.js 是 web client 半部(设置页 UI)。二者通过 fetch 通信,不依赖动态插件机制。
  • 接口(DeepSeek 网页端非官方内部 API,随其改版可能失效):
    • 会话目录:GET /api/v0/chat_session/fetch_page?count=100
    • 对话历史:GET /api/v0/chat/history_messages?chat_session_id=<uuid>
    • 无自定义 Header 能力时,通过 subprocess 起 node 发请求并带上 Authorization: Bearer。
  • 导入:把历史消息转成合法 DSH 会话事件(turn/start → user/message → step/start → assistant/message → step/end → turn/end,surface 事件带 surfaceOp: "append",首部 session/title、尾部 session/end-seed),只写持久化、不进 live store,因此导入的会话可以被正常打开和续聊。
  • 版本自适应:lib/formats.js 保存各代格式的头部/事件差异,lib/persistence.js 负责识别接口代次并写入,lib/events.js 是纯翻译层(无副作用、可单测)。
  • Token 存储:用 DSH 的 credentials 服务($DSH_HOME/.credentials.yaml),不写进浏览器或会话日志。

会话日志损坏(corrupt session log)排查与修复

这是 DSH 自身的恢复游标问题(session/end-seed 由活动会话单独 append、重启后游标漏算导致 seq 复用),与本插件无关;插件的导入方式(整批写入)恰好避开了触发。现象、根因、修复方法见 docs/TROUBLESHOOTING.md。

已知限制

  • 依赖 DeepSeek 非官方内部接口,可能随其网页改版失效(失效时用「诊断」区查看原始响应)。
  • 密码登录会被 DeepSeek 的**人机验证(AWS WAF)**拦截,必须使用 userToken 方式。
  • 对话目录一次最多拉取 100 条:实测 fetch_page 响应仅含 chat_sessions + has_more,无可用游标字段(cursor/lte_cursor 参数均不生效),超过 100 条时只返回最新 100 条。
  • userToken 有时效(约数小时~数天),失效后重新复制保存即可。
  • 联网检索类片段(TOOL_SEARCH / TOOL_OPEN)不会导入为 DSH 工具调用,只保留正文与思维链。
  • 单次导入的响应上限约 4 MB 文本(超长对话会返回 too_large 提示,而不是静默截断)。
  • 只有附件、没有文字的消息会导入为一句明确说明;SYSTEM/TOOL 等非对话角色会被忽略。
  • 导入按 history_messages 返回的单条主线顺序进行(不解析 parent_id 分支):若 DeepSeek 针对「编辑/重新生成」返回兄弟分支,会被当作先后两轮导入。
  • 历史以「未回答的用户提问」结尾时,日志保留未闭合的 turn(DSH 打开会话时会自行补上 interrupted 收尾),这是为了让导入内容与网页端一致。
  • 修改 lib/ 下的代码后必须重启 DSH 才会生效:这个部署的 HMR 不监听 node_modules,且 Node 对模块与包解析都有进程级缓存。

开发与测试

npm test                                # 57 个单测(翻译层 + 路由层 + 传输层),无需 DSH

# 真实后端联调(在哪个版本目录下跑,就用哪个版本的持久化后端)
cd /usr/local/lib/node_modules/@deepseek-ai/dsh
node <repo>/test/compat.mjs --expect 4
node <repo>/test/live-import.mjs

test/matrix.sh 会在 /tmp/compat/v{0,2,3} 里装好旧版本并跑完整矩阵。

加一个新的会话格式版本(例如 v5)

  1. 在 lib/formats.js 的 PROFILES 表里加一行(或确认新版本沿用 v2+ 形状即可,未知版本默认沿用最新形状)。
  2. 用新 DSH 跑 test/compat.mjs --expect 5,若报字段错误,按错误把差异补进 PROFILES。
  3. 在 docs/COMPATIBILITY.md 的矩阵里补一行证据,更新 CHANGELOG.md。

发布 release

git tag -a v0.2.0 -m "v0.2.0" && git push origin v0.2.0
# 然后在 GitHub 上 Releases → Draft a new release → 选择 tag → 粘贴 CHANGELOG 内容

安全提醒

  • 请勿在任何对话、Issue、PR 中泄露 userToken、密码或私密对话内容。
  • 报 bug 时请把日志里的 token 与对话正文抹掉;test/fixtures/history.json 是合成数据,可直接引用。

上游

  • 原仓库:wpc0323/deepseek-web-import(MIT)
  • 本分支保留原作者版权声明(见 LICENSE),欢迎上游合并:本分支的改动是纯代码改动,没有依赖任何私有接口之外的东西。

Comments

Loading…

From the same category

dsh-TUI

by ccch1mneyyy

DSH 官方公众号收录的 TUI 补位插件:Claude Code 风,鲸鱼顶栏/实时状态/流式思考/双击 Esc 回滚/上下文进度+TPS。npm 一键装。 DSH official WeChat featured TUI plugin — Claude Code style: whale bar, live status, streaming thoughts, double-Esc rol

Terminal & ClientsManifest valid

★ 4.3k

↓ 10.9k/wk

MIT

TypeScript

Oct 11, 2026

dsh plugin --profile terminal add @deepseek-harness-tui/dsh-tui

by strukto-ai

The World's First Virtual Terminal for AI Agents

Terminal & ClientsManifest valid

★ 3.7k

↓ 355/wk

Apache-2.0

TypeScript

Oct 11, 2026

dsh plugin --profile agent add @struktoai/mirage-dsh

by bowenliang123

The best DeepSeek Harness plugin for context insight and management, with context dashboard / browser / sidebar and context command, for context statistics, composition, breakdown, evolution details,

Tools & CapabilitiesTerminal & ClientsUI & ExperienceManifest valid

★ 2k

↓ 34.4k/wk

Apache-2.0

TypeScript

Oct 11, 2026

dsh plugin --profile web add dsh-context

by huiliyi37

官方 DeepSeek Harness 的交互式终端 UI 插件:自研 ANSI 极简交互渲染、流式 Markdown/工具卡、16+ 主题、slash 命令与选择器、输入历史与本地偏好持久化、LSP 诊断、memory记忆,很丝滑的开发体验。

Terminal & ClientsManifest valid

★ 287

↓ 462/wk

Apache-2.0

TypeScript

Sep 30, 2026

dsh plugin --profile terminal add @huiliyi37/dsh-tianshu-tui

by Hilbert-beinghappy

面向 DeepSeek Harness 的 Claude Code 风格终端界面,支持 Windows、macOS 与 Linux,兼容透明终端、VS Code 主题和自定义配色。

Terminal & ClientsManifest valid

★ 197

↓ 108/wk

MIT

TypeScript

Oct 1, 2026

dsh plugin --profile web add seektty

by T-Auto

deepseek-harness Plugin Access and Implementation Standards / deepseek-harness交互生态插件规范与实施标准

Terminal & Clients

★ 83

MIT

JavaScript

Oct 10, 2026

Index only — not installable