dsh-sidechat
旁侧对话:给 [DSH] Web 客户端加一个能对话的侧边栏。左侧栏全局入口 + 右侧栏 tab,输入 /side 打开;对话跑在真实 DSH 会话上,带工具、带上下文,可与主对话并存。无需构建(手写 ModuleLoader bundle)。
一句话定位
旁侧对话:给 [DSH] Web 客户端加一个能对话的侧边栏。左侧栏全局入口 + 右侧栏 tab,输入 /side 打开;对话跑在真实 DSH 会话上,带工具、带上下文,可与主对话并存。无需构建(手写 ModuleLoader bundle)。
安装方式
在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。
$ dsh plugin --profile web add 'git+https://github.com/rannyrjjy/dsh-sidechat.git#9854990b8dc57dcd018566e4e0aba11628bdfe64'
兼容的 DSH 版本
未声明
作者与热度
rannyrjjy · ★ 7 · 更新于 2026-11-06
关于这个插件
dsh-sidechat · 旁侧对话
给 DSH 加一个能对话的全局侧边栏。模仿 Codex 的 /side:在输入框敲 /side,右侧就多一个独立的对话面板,跟你主对话互不打扰、同时可见。
对话跑在真实的 DSH 会话上 —— 不是另接一个 HTTP 客户端,所以侧栏里同样有工具、工作区、权限预设和模型配置,跟主对话一个待遇。
它解决什么问题
干正事的时候总会突然冒出题外话:这个报错是什么意思、那行命令的参数到底是啥、刚才那个结论边界在哪。这些不值得占据主线上下文,也不该打断正在跑的主任务。
旁侧对话就是给这类提问准备的:
- 知道你在干什么 —— 每次提问,它会自动把主会话最近的进展打包带上,所以「刚才那个」它有上下文,不用你复述;
- 不污染主线 —— 那段背景只发给旁侧会话,主会话一个字都不加,主线上下文原封不动;
- 立刻能问 —— 主任务在跑也不影响,旁侧是独立会话,各跑各的;
- 强绑当前会话 —— 切到别的会话,旁侧对话跟着换成那个会话的;切回来,原来那套又回来了。
安装
# 1. 拿源码 git clone https://github.com/rannyrjjy/dsh-sidechat.git # 2. 装进你的 DSH profile( 换成你自己的,见下) dsh plugin --profile add link:/absolute/path/to/dsh-sidechat # 3. 重启 DSH
` 是你自己 DSH 的 profile 名。找法:看 ~/.dsh/profiles/` 下面有哪几个目录
(Windows 是 %USERPROFILE%\.dsh\profiles\)。常见的:
desktop—— 桌面端 App(dsh桌面版默认)web—— 用dsh web起的网页版
不确定就两个都看一眼,装上你平时用的那个。
不想 clone 源码的话,从 [Releases](https://github.com/rannyrjjy/dsh-sidechat/releases) 下载
dsh-sidechat-.tgz,然后:
dsh plugin --profile add file:/absolute/path/to/dsh-sidechat-0.1.0.tgz
装完必须重启 DSH:浏览器侧 bundle 在宿主启动时组装,页面刷新不够。
卸载:
dsh plugin --profile remove dsh-sidechat
装不上、找不到 dsh 命令、想手工装 —— 见 [INSTALL.md](./INSTALL.md)。
强绑定:面板跟着会话走
一句实话:侧栏不是「一个全局聊天框」,而是每个主会话各有自己的一条旁侧对话。
主会话 A ──► 旁侧会话 A' (绑定表:{ A: {sideId: A', seq: 21} } )
主会话 B ──► 旁侧会话 B'
- 切到 B:面板立刻显示 B'(还没聊过就显示「将围绕这个会话新建」),A 的话不会串过来;
- 切回 A:A' 原样还在,接着问;
- 在 A 里点「新对话」:只解绑 A,B 的旁侧对话不受影响。
绑定关系存在 localStorage 的 dsh-sidechat:bindings:v2 里,重启浏览器也还在。
右侧栏本来就是按会话停靠的,所以切走会话时那个停靠面自然就没了 —— 这跟绑定是同一件事的两面。
上下文怎么带过去(且不污染主线)
每次发送时:
1. 借主会话读一次转录快照;
2. 只挑上次之后的新增内容(水位线记在绑定表的 seq 里),拼成一段带标记的背景;
3. 把「背景 + 你的问题」一起发到旁侧会话;
4. 主会话完全不参与 —— 它不收到任何消息,转录不变。
三层截断保证不会撑爆旁侧上下文:最多 24 条消息、单条 900 字、总量 8000 字。聊到第十轮也只带最后一轮的变化。
背景块在旁侧转录里会被剥掉(`` 标记),所以你看到的只有自己打的那句话。
三个入口,一个面板
| 入口 | 位置 | 说明 |
| --- | --- | --- |
| /side | 任意会话的输入框 | 敲 /side 回车,右侧栏打开「旁侧对话」tab(不产生模型消息);若当前没有会话,则打开主面板 |
| 左侧栏「旁侧对话」 | 全局左侧导航 | 没有会话也能点,主区打开同一个面板 |
| 右侧栏 tab | 会话右侧停靠区 | 开着就跟主对话并排显示 |
三者是同一个面板、同一个旁侧会话,随意切换。
用法
1. 在主区打开一个会话(面板必须知道你在哪个会话里,所以没有会话时只会给提示)。
2. 在面板底部说第一句话 —— 自动为这个主会话新建一条旁侧对话。
3. 顶部按钮:
同分类对比
同一分类下 Star 最高的 5 个,便于横向比较。
| 插件 | 作者 | Star | 版本 | 更新 |
|---|---|---|---|---|
| open-design | nexu-io | 106.9K | 0.25.1 | 2026-11-10 |
| huashu-design | alchaincyf | 29.1K | 3.3.0 | 2026-11-10 |
| dsh-web | zhu1090093659 | 10.3K | 0.0.1 | 2026-11-10 |
| baoyu-design | JimLiu | 6.3K | 2.12.2 | 2026-11-10 |
| dsh-wallpaper-engine | elysia395 | 6.3K | 1.4.2 | 2026-11-10 |