dsh-webchatlike

DSH PLUGIN浏览器与联网

仓库 cindyguyuehu123/dsh-webchatlike · npm dsh-webchatlike

浏览器与联网 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 带来网页版/App 聊天体验的 DSH plugin:原位编辑提问、重新生成回复、消息级版本翻页,并支持整树分叉。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 8 复刻 0 · 未关闭 issue 1
最近更新 2026-08-16 创建于 2026-08-14
README 11.3 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:cindyguyuehu123/dsh-webchatlike
兼容 DSH 版本0.2.0-rc.2 等 9 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/cordis@^4.0.1、@deepseek-ai/dsh-client-locale@^0.1.0-rc.5 等 8 个需要同时安装的同级依赖
npm 包名dsh-webchatlike可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-webchatlike:为 DeepSeek Harness 带来网页版聊天体验的 DSH plugin

  • 原位编辑重发
  • 一键重新生成
  • 消息级版本翻页
  • 整树分叉副本

适用场景

联网搜索

上游标签

deepseekdeepseek-harnessdshdsh-plugindsh-plugin-marketdsh-plugin-verifydsh-plugins

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询
— · 其它检查项
  • L4_0_SANDBOX 沙盒安装判定 方式:沙盒安装执行

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

浏览器与联网
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方cindyguyuehu123仓库 dsh-webchatlike · 默认分支 main
分类浏览器与联网search
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue8 / 0 / 1收录时的数值,非实时
创建 / 更新2026-08-14 · 2026-08-16最后推送 2026-08-16
本站收录2026-08-20首次进入本站目录的时间

README 全文

11.3 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-webchatlike

> 把 DeepSeek 网页版 / App 的聊天体验带进 DeepSeek Harness:编辑提问、重新生成回复、在消息上直接翻版本——就像在 deepseek.com 上聊天一样。

一个面向 DeepSeek Harness Web GUI 的客户端插件,让对话行为和 deepseek.com 网页版 / App 一致:原位编辑、一键重新生成、逐条消息的版本翻页器。

  • ✏️ 编辑重发——悬停自己的消息,在原消息位置就地打开编辑框(预填原提问,无弹窗、不新建对话),改完重发。fork 点选在提问回合之前,新会话是干净的 历史 + 修改后的提问 + 新回答。
  • 🔄 重新生成——悬停任意 assistant 回复,从该回合之前分叉重新生成。旧提问不会重复塞进上下文。
  • ** 版本翻页——每条被重新生成 / 编辑重发过的消息旁都会出现 deepseek.com 风格的 <2/5> 翻页器(树状模型:每条消息的版本独立计数**)。左右箭头切换版本,自动定位到同一轮。每个对话记住你最后查看的版本——切去别的对话再回来,不会跳回第 1 版。
  • 🌳 分叉整棵树——「在新对话中分支」(对话内或边栏)会把整棵树复制成一份完全独立的副本:新根 + 每个版本的副本,新树自带完整版本体系(` 可翻),从此与原树互不影响。副本根标题带(副本)/(副本 2)递增,分叉后自动定位到你 fork 时所在的版本。**任意**侧边栏 / 对话内分叉出来的独立副本(包括非版本族会话的单会话分叉)都带(副本)` 标记——它是边栏区分"独立副本"与"regenerate/编辑版本"的记号,保证新副本一定以独立行出现,不会被折叠隐藏。
  • 🗑️ 删除会话(需补丁)——从左侧会话菜单彻底删除会话,连同硬盘上的会话日志。

边栏保持干净:版本 fork 折叠进原始对话(一个对话一行),在任意版本里的活动都会照常把该对话浮到顶部。家族根行上的重命名、归档、删除作用于整棵树(所有 regenerate/编辑版本);分叉副本是完全独立的对话,只作用于自身。

⚠ 依赖 2 个源码补丁

与纯插件不同,本插件扩展了两个 harness 没有公开扩展点的源码文件:

补丁 文件数 作用
ui-conversation user-actions 插槽 5 用户消息下方的 ✏️ 按钮座位 + 原位编辑锚点(position: relative)+ 对话内「分支」复制整棵树
ui-workspace 版本折叠 4 边栏永远隐藏版本 fork、当前版本映射回原始行、版本内活动折算进对话排序、恢复最后查看的版本、家族级行操作、边栏分叉复制整棵树

不打补丁时插件能加载,但编辑按钮和边栏折叠不会出现。cordis.patch.yml 只负责加载插件本身。

安装

1. 打源码补丁

cd deepseek-harness
/path/to/dsh-webchatlike/apply-patches.sh   # 逐个复制,冲突时提示
pnpm install
pnpm run build:lib:client && pnpm run build:web

2. 安装插件

方式一:作为 bundle 安装(已声明 dsh.bundle):

dsh plugin --profile web add <本仓库 git 地址或 npm 包名>

方式二:手动在 ~/.dsh/profiles/web/cordis.patch.yml 注册:

- insert:
- id: chat-actions
name: 'dsh-webchatlike'

手动安装时,请把包加入 ~/.dsh/profiles/web/package.json 的 dependencies 并在 profile 目录执行 pnpm install,让加载器能解析到它。

3. 重启

终端 Ctrl+C,重新 pnpm dsh web,刷新页面。

使用

  • 悬停任意 assistant 回复 → 🔄 重新生成
  • 悬停任意 用户消息 → ✏️ 原位编辑重发
  • 对同一回合多次 🔄 / ✏️ 后,回复旁出现 <2/5>,点左右箭头切换版本
  • 左侧会话列表行尾 ⋯ 菜单 → 删除会话(带确认框;正在运行的会话拒绝删除)

工作原理

  • 每个版本都是一个真实的 fork 会话。fork 点选在目标回合之前,新会话 = 历史 + 提问 + 新回答——与 deepseek.com 的树状模型一致。
  • 插件把 fork 记录在 localStorage 版本树(dsh-webchatlike:version-tree,按家族根命名空间:每棵树一个命名空间,分叉副本与原树互不干扰)和「最后查看版本」映射(dsh-webchatlike:last-version)里。所有读取都是防御式的:没有插件时,边栏行为与原生完全一致。
  • 版本翻页器渲染在每条版本化消息上;切换打开兄弟 fork 并滚动定位到同一轮。不依赖 seedLength——版本功能不需要任何 host 改动。

FAQ

为什么对话的第一条消息没有按钮? 第一回合之前没有干净的 fork 边界(harness 的 fork 需要一个已完成的回合作为锚点),所以第一条消息不能重新生成 / 编辑——和大多数网页版聊天一致。

与上游的关系

  • 插件本身只用 harness 公开扩展点(conversation.chat.assistant-actions / conversation.chat.user-actions 插槽、ctx.sessions.fork、session.prompt、ctx.sessions.open)。
  • 两个补丁是小而自洽的核心改动(共 9 个文件)。上游更新后重新应用即可——apply-patches.sh 会先对比再覆盖。

License

MIT


dsh-webchatlike

> Bring the DeepSeek web / app chat experience to DeepSeek Harness: edit your question, regenerate the answer, and flip between versions — right on the message, like chatting on deepseek.com.

A client plugin for the DeepSeek Harness Web GUI that makes conversations behave like the deepseek.com web/app chat — in-place editing, one-click regeneration, and a per-message version pager.

  • ✏️ Edit & resend — hover your own message, edit it in place (no modal, no new chat), and resend. A clean fork restarts from the turn before your question: history + edited question + new answer.
  • 🔄 Regenerate — hover any assistant reply and regenerate it from the turn before. The old question is not duplicated into context.
  • ** Version pager — every message whose turn was regenerated or edited gets a deepseek.com-style &lt;2/5&gt; pager (tree model: each message's versions are counted independently**). Flip through versions with the chevrons; the same turn is scrolled into view. The version you were viewing is remembered per conversation, so switching chats and coming back does not throw you to version 1.
  • 🌳 Fork the whole tree — "Branch in a new conversation" (in-chat or sidebar) copies the WHOLE tree into a fully independent copy: a new root plus a copy of every version, with its own complete version system (` pager works), never interacting with the source again. The copy root is titledbase (副本)/(副本 2)etc., and the new tree opens at the version you forked FROM. **Every** independent copy created by the sidebar or in-chat fork action (including plain single-session forks outside any version family) carries the(副本)` marker — the sidebar's tell that distinguishes an independent copy from a regenerate/edit version, so a new copy always shows up as its own row and is never folded away.
  • 🗑️ Delete session (patch) — delete a session from the sidebar context menu, including its on-disk log.

The sidebar stays clean: version forks are folded into their original conversation (one row per conversation), and activity inside any version still floats that conversation to the top. Family-ROOT rows act on the whole tree for rename/archive/delete (all regenerate/edit versions); fork copies are fully independent conversations that only ever act on themselves.

⚠ Requires 2 source patches

Unlike pure plugins, this one extends two harness source files that have no public extension points:

Patch Files What it adds
ui-conversation user-actions slot 5 files the ✏️ button seat under user messages + the in-place edit anchor (position: relative) + in-chat "branch" copies the whole tree
ui-workspace version-fork folding 4 files hide version forks from the sidebar (always), alias the open fork to its original row, fold fork activity into the conversation's recency, restore the last-viewed version, family-wide row actions, sidebar fork copies the whole tree

Without them the plugin loads but the edit button and sidebar folding stay off. cordis.patch.yml only loads the plugin itself.

Install

1. Apply the source patches

cd deepseek-harness
/path/to/dsh-webchatlike/apply-patches.sh   # copies files, prompts on conflicts
pnpm install
pnpm run build:lib:client &amp;&amp; pnpm run build:web

2. Install the plugin

Either install it as a bundle (it declares dsh.bundle):

dsh plugin --profile web add

…or register it manually in ~/.dsh/profiles/web/cordis.patch.yml:

- insert:
- id: chat-actions
name: &#x27;dsh-webchatlike&#x27;

If you install manually, make the package resolvable from the profile (e.g. add it to ~/.dsh/profiles/web/package.json dependencies and pnpm install there).

3. Restart

Ctrl+C and pnpm dsh web again, then refresh the browser.

Usage

  • Hover an assistant reply → 🔄 to regenerate.
  • Hover a user message → ✏️ to edit in place and resend.
  • After several 🔄/✏️ on the same turn, the reply shows <2/5>; use the chevrons to switch versions.
  • Sidebar row ⋯ menu → Delete session (with confirmation; running sessions are refused).

How it works

  • Every version is a real fork session. The fork cut lands before the target turn, so the new session is history + question + new answer — matching deepseek.com's tree model.
  • The plugin records forks in a localStorage version tree (dsh-webchatlike:version-tree, namespaced by family ROOT — each tree gets its own namespace, so forked copies never collide with the source), and the "last viewed version" map (dsh-webchatlike:last-version). Reads are fully defensive: without the plugin the sidebar behaves exactly as stock.
  • The version pager renders on every versioned message; switching opens the sibling fork and scrolls the same turn into view. seedLength is not used — no host changes needed for versioning.

FAQ

Why are there no buttons on the very first message of a conversation? The first turn has no clean fork boundary before it (the harness fork needs a completed turn to anchor to), so regenerate/edit are unavailable there — same as the first message in most web chats.

Relationship to upstream

  • The plugin itself uses only harness public extension points (conversation.chat.assistant-actions / conversation.chat.user-actions slots, ctx.sessions.fork, session.prompt, ctx.sessions.open).
  • The two patches are small, self-contained core changes (9 files total). Re-apply after upstream updates — apply-patches.sh diffs and asks before overwriting.

License

MIT

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-webchatlike 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:cindyguyuehu123/dsh-webchatlike` 即可。对应的 npm 包名是 `dsh-webchatlike`。

dsh-webchatlike 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-webchatlike 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-webchatlike 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.1.7-rc.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2、0.1.3-alpha.1、0.1.2-rc.1。版本较多,只列出前 8 个。

dsh-webchatlike 需要什么运行环境?

需要同时安装 @deepseek-ai/cordis@^4.0.1、@deepseek-ai/dsh-client-locale@^0.1.0-rc.5、@deepseek-ai/dsh-client-runtime@^0.1.0-rc.5、@deepseek-ai/dsh-client-ui-conversation@^0.1.0-rc.5、@deepseek-ai/dsh-client-ui-primitives@^0.1.0-rc.5。环境不满足时安装会失败,建议先确认本机版本。

dsh-webchatlike 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-webchatlike 有哪些功能?

原位编辑重发、一键重新生成、消息级版本翻页、整树分叉副本。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

浏览器与联网
按星标排序,可作替代方案

dsh-our-free-model

dsh-our-free-model

在 DeepSeek Harness 中装上这个 DSH plugin,无需登录、注册或填 API Key,即可直接调用 DeepSeek

L3 · 安装规范通过 8,796 星

dsh-web

dsh-web

侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。

L3 · 安装规范通过 8,549 星

BrowserSkill

BrowserSkill

BrowserSkill 的 DeepSeek Harness 浏览器自动化桥接插件,通过原生浏览器工具控制可见的 Chrome 和 Edg

L4 · 沙盒安装通过 8,456 星

dsh-pocket

dsh-pocket

DSH Pocket 让 DeepSeek Harness 装进口袋:电脑跑 dsh web,手机扫码即实时同步访问(局域网+公网),人在外

L5 · 运行验证通过 1,656 星

Browser4

Browser4

L4 · 沙盒安装通过 1,152 星

agentrq

agentrq

L4 · 沙盒安装通过 1,140 星

cindyguyuehu123 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。