dshbase

Plugin directory / UI & Skins / @luckvd/dsh-btw

@luckvd/dsh-btw

Verified · install-tested on dsh LuckVd

✓ Actively maintained Builds on 1 official DSH packages

View on GitHub ↗ ← Back to plugin directory

0Stars
0Forks
1Open issues
JavaScriptLanguage
2026-08-21Last push
Cross-platformPlatform

What it does

BTW side-ask panel for the DSH web GUI: per-answer ? button opens an independent side session that does not write to the main conversation.

Our take
Works — verified, early-stage project

BTW side-ask panel for the DSH web GUI: per-answer ? button opens an independent side session that does not write to the main conversation. It installs cleanly and boots without issues in our testing. It's early-stage but functional.

“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.

README

dsh-btw — BTW 侧问面板(DHS Web GUI 客户端插件)

痛点:对话进行中想随手问一个问题,又不想污染主会话的上下文。
解决:随时弹出一个浮动面板(Ctrl/⌘+Alt+B),从当前主会话的已完成历史创建一个独立的一次性会话提问——
回答在分支会话中流式生成,主对话一行都不新增。

原理

  • 这是一个纯客户端插件(dsh.client / platform web),无任何服务端改动。
  • 每次打开面板后的第一条提问会读取主会话当前窗口中的已完成用户/助手文本,创建一个新的空会话,并把这段内容作为隐藏的只读参考上下文随首问发送。
  • 不复制主会话的 goal、计划、工具调用、权限状态或待处理队列;BTW 的内部上下文只用于模型回答,面板只渲染实际问题和回答。
  • 新会话继承主会话的 cwd,创建后、首问前立即归档,因此不会出现在左侧普通会话历史;发送后先显示本地问题和等待状态,再接收侧问会话事件。
  • 主会话不会被写入;
  • 回答通过会话事件快照(session.subscribe / getSnapshot 的 uSES 通道)实时渲染,
    过程中可以看到"思考中 / 输出中"。

配置

BTW 默认创建 minimal preset,并选择 opencode-go/deepseek-v4-flashoff 推理强度。插件配置可以在 Web profile 的 Cordis patch 中覆盖:

- insert:
    - id: dsh-btw
      name: dsh-btw
      config:
        agentPreset: minimal
        provider: opencode-go
        model: deepseek-v4-flash
        reasoningEffort: off

模型选择使用 persistDefault: false,因此只作用于 BTW 的隐藏会话,不修改主会话或部署默认模型。配置项必须是非空字符串;提供方、模型或 preset 不可用时,首问会失败并显示错误。

使用

操作 效果
点击某条回答底部图标组里的 ?(BTW 追问) 按钮 打开侧问抽屉,以该回答及其之前的已完成对话作为参考上下文,开启一条独立的追问会话
Ctrl/⌘ + Alt + B 开关侧问面板(任意页面均可;不用 Shift+B 是因它会撞浏览器书签快捷键)
输入问题按 Enter 发送(Shift+Enter 换行)
面板头部 归档 清除当前侧窗并归档其上下文会话
Esc / 点击遮罩 / 收起 收起面板(隐藏分支仍在当前标签页内复用)

侧问会话会以 BTW: <问题前30字> 命名并自动归档,不进入左侧普通会话历史。页面刷新后,面板会基于刷新时的主会话创建新的侧问会话;已归档会话仍保留在会话数据中。

按回答追问(每消息 BTW 动作)

在每条已完成回答的图标组里(复制 … 好的回答 … ?),有一个 ? 图标,它是「针对该回答追问问句」的唯一入口
(右下角的 ⚡ BTW 胶囊按钮已移除)。点击后打开侧问抽屉,以该回答为锚点追问。
历史按锚点回答保留:再点同一条回答的 ? 会续接之前的追问(含此前的问答历史),不同锚点各自独立;
点面板头的「归档」才会清空该锚点的历史。首个问题会携带该回答及其之前的已完成对话
(用户 + 助手文本,最多 48KB)作为只读参考上下文,主会话不被动用。通过向 DSH 的
conversation.chat.assistant-actions 插槽注册(order: 20,位于 复制/好的回答 之后)实现。

发送区:主会话风格卡片 + 上下文圈

BTW 抽屉底部的发送区改成了主会话同款样式:圆角卡片内是随内容自适应的输入框(无内部滚动条),
卡片下方的工具行里是模型胶囊和上下文圈。「上下文圈」读取侧问会话的真实 contextPressure
投影
(与主会话的 ContextMeter 一致),以百分比环展示当前侧问上下文占用量,点开可看已用/窗口 token——
侧问会话首次 LLM 调用回报用量后才会出现。发送按钮为圆形图标,与主会话一致。

模型:默认继承主会话 + 抽屉内切换

BTW 侧问会话的模型默认与主会话当前所选模型一致(打开抽屉时自动读取主会话的当前
provider/model 并作为默认)。抽屉底部输入框上方有一个模型胶囊,点击展开可用模型列表,
可随时为 BTW 侧问会话单独切换 provider/model(沿用其默认推理强度)。切换仅作用于 BTW
隐藏会话(persistDefault: false),不会改动主会话或部署默认模型;若主会话当前模型读取失败
或尚无模型,则回退到插件配置中的默认模型。

输入框:无内部滚动条(随内容自适应增高)

BTW 抽屉的提问输入框采用与主会话一致的 auto-grow 方案:输入框随内容自动增高,
内容不超过上限(180px)时内部不出现滚动条;超过上限后由输入框外层容器整体滚动。

文件结构

dsh-btw/
├── package.json     # dsh.client 清单 + exports["./client"]
└── lib/
    ├── index.js     # 节点侧空实现(让插件成为合法的 Loader entry)
    └── client.js    # 浏览器端 bundle(手写 window.__ModuleLoader__.load 格式)

安装 / 卸载

BTW 是纯客户端插件(dsh.client / platform web),安装即拷贝插件包 + 在 web profile 的
cordis.patch.yml 插入 Loader entry + 重启 dsh-web。任选其一:

方式 A:dsh plugin 安装(若已发布为可直接安装的包)

dsh plugin --profile web add dsh-btw
# 然后重启 dsh-web 服务

方式 B:手动部署

# 1) 把本目录复制到 profile 的 node_modules
cp -a dsh-btw ~/.dsh/profiles/node_modules/
# 2) 在 ~/.dsh/profiles/web/cordis.patch.yml 插入:
#    - insert:
#        - id: dsh-btw
#          name: 'dsh-btw'
# 3) 重启 dsh-web 服务(systemctl restart dsh-web 等价)

卸载:删除 patch 中的 dsh-btw 行 + 删除
~/.dsh/profiles/node_modules/dsh-btw 目录 + 重启服务即可。

已知限制

  • 会话只能归档不能删除(DSH 平台限制);侧问分支的日志仍持久化,但不显示在普通会话树中。
  • 每个浏览器标签页各自维护自己的侧问会话(互不共享)。
  • 首个问题会先读取主会话窗口、创建并配置侧问会话、再归档它,故比后续追问略慢。
  • 上下文只包含浏览器当前已打开窗口中的已完成文本;更早历史需要先在主会话中加载后才会作为 BTW 参考。
  • 上下文圈读取侧问会话的 contextPressure 投影,首次 LLM 调用回报用量后才显示。

发布信息

  • 本仓库打 dsh-plugin GitHub 话题(官方的插件可发现性约定;社区 awesome-* 列表会索引该话题)。
  • 针对 DeepSeek Harness 0.1.0-rc.6 开发验证(v0.1 预览版可能有不兼容变更,更新时请关注上游变更公告)。
  • License: MIT(见 LICENSE)。

Install

🧩 Let your agent install it (recommended)

Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:

dsh plugin add dshbase-catalog

Then say "install @luckvd/dsh-btw for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.

This plugin is GitHub source (not published to npm) — install it straight from the repo:

Web profile:

dsh plugin --profile web add github:LuckVd/dsh-btw

Headless (CLI) profile:

dsh plugin --profile headless add github:LuckVd/dsh-btw

Test report

Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.

Security: not yet scanned — our daily static scan will cover it shortly.

Share this badge

More in UI & Skins

Browse all 1884 plugins →