dsh-btw

DSH PLUGIN记忆与知识

仓库 loster12520/dsh-btw · npm dsh-btw

记忆与知识 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-btw 是 DeepSeek Harness 的旁路问答插件,通过 /btw 命令在独立只读分支中回答问题,不污染主对话上下文,并配有居中弹窗面板。

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

安装

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

能做什么

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

dsh-btw:DeepSeek Harness 的旁路问答插件

  • /btw 旁路提问
  • 独立只读分支
  • 不污染主上下文
  • 居中弹窗面板
  • 多轮对话支持

适用场景

联网搜索记忆

上游标签

deepseekdeepseek-harnessdshdsh-plugin

验证等级与安全审查

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
  • 风险详情 未发现严重或警告级问题。

仓库档案

记忆与知识
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方loster12520仓库 dsh-btw · 默认分支 main
分类记忆与知识memory
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue6 / 0 / 0收录时的数值,非实时
创建 / 更新2026-08-14 · 2026-10-09最后推送 2026-10-09
本站收录2026-08-27首次进入本站目录的时间

README 全文

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

dsh-btw

> 更好的推荐:ChenRuoT/dsh-sidebar-qa
> 本项目不再维护,上述项目已经能完全实现本项目的功能且使用起来更方便

> ⚠️ 仍在开发中(WIP)
>
> 本项目处于活跃开发阶段,尚未发布稳定版本(v0.1.0 以下)。API、命令行为、RPC 契约与
> 面板 UI 均可能随时变化;可能存在未修复的缺陷或未验证的边界情况。请勿用于生产环境,
> 升级前请阅读提交记录与 README 变更。欢迎提交 Issue 与 Pull Request 参与共建。

DSH 旁路问答插件:/btw <问题> 命令 + 居中弹窗面板。在独立会话分支中回答你的问题——分支可以查看主对话历史(创建时 seed + 每次提问注入增量),但只有只读 + web 搜索权限(write/edit/bash/pwsh/ssh_ 等写类工具全部下掉),问答内容不进入主对话上下文*。对齐 Claude Code /btw 的旁路问答语义,并扩展了多轮对话、主对话增量同步、一键清空与每会话独立的居中弹窗面板。

功能

  • /btw <问题> 命令:输入框直接旁路提问,命令系统消化(log-only 记录),不触发主模型;自动打开居中 BTW 面板并展示回答。
  • /btw 无参命令:仅打开面板并聚焦输入框,不做其他事、不输出提示。
  • 居中弹窗面板:类似 antd Modal,半透明遮罩覆盖右侧内容区(排除左侧侧边栏);点击遮罩或 ✕ 关闭;多轮对话、问题/答案气泡、Ctrl+Shift+K 或「清空」按钮一键重置当前会话分支。
  • 无常驻入口:不再有会话标题栏 BTW 按钮,面板只能通过 /btw 命令打开。
  • 只读分支:分支通过 agents.create 创建为「裸 agent」,不注册进 subagent registry(GUI 不显示为子代理,不出现在子代理目录);工具白名单 read / glob / grep / read_image / web_search,其余全局工具(写文件、执行命令、SSH 等)全部不可见。
  • 查看主对话历史:分支创建时以主对话已完成 turn 为 seed;每次提问注入主对话增量(自上次同步水位之后的新消息),所以主对话的进展会持续同步到分支。
  • 每会话独立分支:每个主会话各自维护独立的 btw 分支、历史、同步水位与串行队列;不同对话的 btw 问答完全隔离、互不污染。
  • 统一问答历史:Host 维护 {id, role, text} 历史,面板轮询 btw/state 增量同步——命令路径的问答也会出现在面板,主对话命令卡片只显示一行提示。
  • 不污染主上下文:分支是独立 Session,主对话的 LLM 上下文不含任何 btw 问答。

安装与使用

方式一:dsh plugin 一键安装(推荐)

前置:本机已安装 dsh CLI(dsh plugin 是 pnpm 的薄转发器,需 pnpm 在 PATH 上)。

在任意目录执行(路径用你的本仓库路径,绝对/相对均可):

dsh plugin --profile web add <本仓库路径>

# 或从 GitHub 安装
dsh plugin --profile web add git+https://github.com/loster12520/dsh-btw.git

然后重启 dsh web(Host 半区改动需要重启;之后仅 Client 改动浏览器硬刷新即可)。

打包原理(对本仓库的配置说明):

  • dsh plugin --profile web add <路径> 等价于在 ~/.dsh/profiles/web 里执行 pnpm add <路径>,
    随后按「已安装依赖的 package.json 是否声明 dsh.bundle.patch」自动把包加入 profile 的
    bundle 层(dsh.profile.bundles),无需手动改任何配置。
  • 本仓库 package.json 的声明:
  • dsh.bundle.patch: "./cordis.patch.yml" —— bundle 层,挂载插件行 {id: dsh-btw, name: dsh-btw}(等价于在 profile 的 cordis.patch.yml 手写该行);
  • dsh.client: { platform: "web" } + exports["./client"](dist/client.js)—— Client 半区由 client-modules 扫描并注入浏览器;
  • main: src/host.js —— Host 半区,注册 /btw 命令与 /api/dsh-btw/* HTTP 路由(带浏览器信任围栏)。
  • 手动静态挂载(agent preset 插件行)同理可用:- id: dsh-btw / name: dsh-btw,详见 cordis.yml。

使用:

  • 主输入框输入 /btw <问题>:问答并自动打开居中面板;
  • 主输入框输入 /btw:打开面板并聚焦输入框;
  • Ctrl+Shift+K / 面板「清空」按钮重置当前会话分支。

方式二:动态插件(开发/调试用,无需安装)

  1. 生成装配产物:
node scripts/to-dynamic.mjs
  1. 在 DSH 会话中用 cordis_define 定义插件:
    - code.host ← dist/dynamic-host.js 的内容
    - code.client ← dist/dynamic-client.js 的内容
    - 插件名 btw(idPrefix 语义),然后 cordis_run 激活(Client 半区需在 UI 批准)。

  2. 使用同方式一。

> 两种方式共用同一份 src/client.js:动态路径由宿主沙箱以闭包参数注入
> React / host / styles;静态路径由 scripts/build-static.mjs 生成的
> dist/client.js 在 factory 闭包内提供等价符号(require("react") + fetch 到
> /api/dsh-btw/*)。改动 src/client.js 后需 npm run build 重新生成
> dist/client.js 并提交(dist/ 已 gitignore,仅 dist/client.js 例外保留跟踪)。

目录结构

dsh-btw/
├── package.json           # 包声明:dsh.bundle.patch + dsh.client + exports["./client"]
├── cordis.patch.yml       # bundle 层:挂载插件行 {id: dsh-btw, name: dsh-btw}
├── src/
│   ├── host.js            # Host 半区:每会话状态、命令、分支创建/复用、历史、/api/dsh-btw 路由
│   └── client.js          # Client 半区:隐形会话同步 + 居中弹窗面板 + 轮询同步
├── scripts/
│   ├── to-dynamic.mjs     # 动态插件装配:ESM 源码 → code.host/code.client
│   ├── build-static.mjs   # 静态 Client bundle 装配:src/client.js → dist/client.js
│   └── verify.mjs         # 校验动态产物与静态 bundle
├── dist/                  # 装配产物(dist/client.js 提交跟踪;dynamic-*.js 本地生成)
├── cordis.yml             # 静态挂载说明(与 cordis.patch.yml 的对应关系)
├── README.md
└── LICENSE

权限模型

分支的工具集在创建窗口内通过 childCtx.tools.restrict({ allow: [...] }) 白名单限定,只保留:

工具 用途
read 读文件(只读)
glob / grep 搜索文件(只读)
read_image 读图片(只读)
web_search 网络搜索

其余全局工具(write、edit、pwsh/bash、ssh_*、子代理、工作流等)对分支不可见且拒绝执行(scoped tools.restrict 对 inherited 工具生效)。

与 Claude Code /btw 的对齐

Claude Code /btw dsh-btw
斜杠命令,不进入主对话上下文 /btw 命令由命令系统消化,log-only 记录,不触发主模型
全新临时上下文回答 独立 Session 分支(创建时 seed 主对话历史 + 增量注入)
答案以紧凑形式展示 居中弹窗气泡展示,可关闭
主对话零 token 消耗 分支问答完全独立于主会话 LLM 上下文
—(扩展)多轮对话 followup 复用同一会话分支
—(扩展)主对话更新同步 每次提问注入主对话增量
—(扩展)多会话隔离 每个主会话独立分支与历史,互不干扰
—(扩展)清空记录 Ctrl+Shift+K / 清空按钮重建当前会话分支

开发

npm run check        # to-dynamic + build + verify 全部执行(改源码后建议跑一遍)
node --check src/host.js
node --check src/client.js
node scripts/to-dynamic.mjs   # 重新生成动态装配产物
node scripts/build-static.mjs # 重新生成静态 Client bundle(dist/client.js,需提交)

License

MIT

常见问题

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

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

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

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

dsh-btw 安全吗?

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

dsh-btw 支持哪些 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-btw 用的是什么许可证?

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

dsh-btw 有哪些功能?

/btw 旁路提问、独立只读分支、不污染主上下文、居中弹窗面板、多轮对话支持。

这条记录的数据可靠吗?

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

同名或近似条目

8 条
不同作者的仓库分开列,请确认你要装的是哪一个
记忆与知识
按星标排序,可作替代方案

ruflo

ruflo

L3 · 安装规范通过 7.4 万 星

OpenViking

OpenViking

面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`vik

L3 · 安装规范通过 3.9 万 星

WeKnora

WeKnora

把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己

L4 · 沙盒安装通过 3.3 万 星

distilly

distilly

Distilly — Distill how they think into reusable Skills for any Agent o

L4 · 沙盒安装通过 2.5 万 星

EverOS

EverOS

L4 · 沙盒安装通过 1.3 万 星

MemOS

MemOS

L4 · 沙盒安装通过 1.2 万 星

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