← Back to home@wangyili-1

dsh-sidecar

Native DeepSeek Harness plugin for side chats, browser tabs and resizable split panes. 为 DSH 添加独立侧聊、网页标签与可拖动分屏。

Stars
0
Language
JavaScript
Created
Oct 25, 2026
Updated
Oct 26, 2026

Introduction

DSH Sidecar

简体中文 · English

v0.5.0-beta.1 预发布:新增 DSH 主控的多模型协作、网页人工交接、本机 Ollama 接口及可复制的提示词。下载预发布版 · 稳定版 v0.4.1。

API 协作使用你自己的接口与凭据;DeepSeek、豆包、Qwen、Kimi 网页成员需要在官网操作后粘贴回答。协议与本地交接已验证,真实供应商鉴权、在线推理及生图尚未验收。详见协作说明与免费资源方案。

Tests License: MIT

给 DeepSeek Harness 加上独立侧聊、网页标签和可拖动分屏。 主任务继续执行,你可以在旁边解释报错、引用文件、核对反例,再选择将结论送回主任务。

Native DeepSeek Harness plugin for independent side chats, browser tabs, and resizable split panes.

适配 DSH 0.1.2-rc.1 · Node.js 22+ · MIT · 当前预发布 v0.5.0-beta.1。真实 DSH 界面验收在 Windows 完成;其他 DSH 版本尚未验证。

快速开始 · 提示词 · 功能 · 版本下载 · 验证记录 · 反馈问题

拖宽侧栏并完整显示百度网页

侧栏展开时,主页面同步收窄并居中;收起后恢复原宽度。每个网页和侧聊有自己的标签,分屏后上、下两组可独立切换。此前首页布局效果见 截图,各项功能的测试范围见 验证记录。

这是独立实现的 DSH 原生前后端插件,通过现有认证连接和 Session Controller 工作,复用 DSH 的模型配置。安装到现有 Web profile 后,仍可从原来的桌面快捷方式进入。更新记录记录各版本变化。

快速开始

先准备 Git、Node.js 22+,以及已配置好模型的 DeepSeek Harness 0.1.2-rc.1。在准备长期保留插件的位置执行,并把最后一行的示例路径改为你的工作区:

git clone --branch v0.5.0-beta.1 https://github.com/wangyili-1/dsh-sidecar.git
cd dsh-sidecar
npm ci
npm run build
npm run doctor
npm run install:dsh -- --workspace "C:\path\to\your-project"

保存 DSH 草稿、停止正在执行的任务后,重启 DSH 服务;只关闭浏览器窗口可能不会停止后台服务。重新打开 DSH,选择工作区,点击右上角开关展开侧栏,再从标签栏 + 打开 网页 / 侧聊 / 协作。侧栏左边缘调整宽度,分屏按钮切换上下布局。

插件按绝对路径加载,安装后请保留项目目录的位置。未自动找到 DSH、使用下载包或需要卸载时,见详细安装说明。

功能

  • DSH 主控协作(Beta):让主会话拆分任务,调用已配置的文本或生图接口;任务状态、取消和结果集中显示在“协作”标签。先从提示词示例开始。
  • 网页与本地资源(Beta):四个官网入口支持复制任务、人工回填与结果归档;本机 Ollama 支持无 Key 协议,需要自行安装模型。它们不替代主会话原有的 API 配置。
  • 简洁黑灰界面:复用 DSH 的主题变量,减少重复标题和常驻说明。图标按钮提供悬停提示、键盘焦点及按下反馈;消息内容保留正常字号。
  • 浏览器式标签:默认及新建网页直接打开百度首页,通过顶部 + 菜单新建网页、侧聊、协作或恢复标签;关闭侧聊标签不会删除 DSH 保存的会话记录。
  • 拖动与上下分屏:把标签拖到标签栏内可排序,拖到内容区下方可组成上下两组;拖动中间分隔条调整比例,也可一键合并回单组。
  • 侧栏与主页面联动:复用 DSH 的 0.3 秒缓动,侧栏滑入的同时预留实际布局宽度,不遮挡主输入框。收起保留侧聊草稿;系统设置减少动态效果时关闭过渡。
  • 左右调整宽度:拖动侧栏左边缘,主页面同步收窄;宽度会记住,窗口变窄时自动限制。拖拽条支持左右方向键,双击恢复默认。
  • 右上角插件入口:仅保留侧栏开关,功能统一从标签栏 + 打开。选好工作区后,尚未发送消息的首页也能使用。
  • 独立侧聊:与选中的主会话关联,使用不同 Session ID。主任务和侧聊分别发送、停止、保存;关闭面板后恢复 DSH 原有工具详情。
  • 侧聊输入框控制栏:权限、模型及可用推理等级绑定当前侧聊;上下文环和运行统计读取该侧聊的真实状态。点击输入框内的 + 引用工作区文本文件或粘贴文字,发送前可审阅、移除。
  • 网页面板:默认把桌面页面缩放到侧栏宽度;可选 100% 横向滚动或响应式排版。拖宽与分屏保持页面实例。通过 URL 和显式粘贴的片段引用网页;不读取跨域 iframe 的内部内容。
  • 侧聊整理:用第一条明确提问生成简短标题,不把系统提示或引用资料当名称;空白侧聊显示“新对话”。“继续侧聊”列表右侧的 × 持久移除条目,并归档保留原始聊天历史;正在运行时提示先停止。
  • 回传主任务:先查看并编辑结论,再明确发送到主会话队列;不会自动把全部旁聊塞进主任务。

侧聊和主任务共享工作区,隔离的是会话状态、消息路由及取消操作,不是复制出两个文件系统。侧聊默认被要求只分析引用内容;这属于行为约定,模型工具权限仍由 DSH 管理。

标签与上下分屏

侧栏顶部的 + 菜单可以新建网页、新建侧聊、带入主任务上下文新建侧聊,或恢复已有标签和侧聊。每个网页保留自己的地址与页面状态,每个侧聊关联独立的 Session ID,草稿和待发引用分别保存在对应标签中。

操作用法
切换或排序点击顶部标签切换;拖到其他标签前后改变顺序
上下分屏打开至少两个标签,将一个拖到内容区下方;也可点击分屏按钮,或在 + 菜单选择“移到下方”
调整分屏拖动两组之间的分隔条;分隔条获得焦点后也可按上下方向键
合并点击“合并上下分屏”,两组标签回到同一栏
关闭与恢复点击标签上的 ×;通过 + 菜单的“已关闭”重新打开,已有侧聊也可从“继续侧聊”打开
永久关闭侧聊点击“继续侧聊”列表右侧的 ×;该条目及待发草稿从 Sidecar 移除,刷新和重启后不再出现,原始历史仍由 DSH 保留
左右调整侧栏拖动侧栏左边缘;左右键每次 16px,按住 Shift 为 48px,双击恢复默认 420px

同一页面内,切换、拖动和关闭后恢复标签会保留其内容实例;关闭侧栏也不会清空未发送草稿。关闭侧聊标签不等于停止正在运行的模型,需要停止时应在对应侧聊中操作。

网页地址栏可选择“适应宽度 / 100% / 响应式”。适应宽度使用至少 1280px 的桌面视口再缩放,窄侧栏里的文字会相应变小;拖宽侧栏可放大显示。100% 模式允许横向滚动,响应式模式由网站自身决定窄屏排版。网站拒绝嵌入时仍需使用外部浏览器。

标题在本机从首次提问提炼,不额外调用模型;已有数字标题会从可读取的原始用户消息恢复。尚未提问或历史无法读取时显示“新对话”,不会编造话题。

标签布局、网页状态、未发送草稿和待发引用属于当前 DSH 页面、当前主会话的缓存。刷新整个 DSH 页面、重新打开窗口或切换主会话会重置这些界面状态,不能据此恢复未发送内容;已发送的聊天历史仍由 DSH 保存。

侧聊输入框

输入框内的 + 用于引用工作区文件或文字;访问模式按钮修改该侧聊的工具权限,模型按钮选择模型及其支持的推理等级。模型选择遵循 DSH 原生行为:也会成为之后新建会话的默认模型,模型菜单中会明确提示这一点。

上下文环显示当前侧聊的上下文占用,点击可查看窗口和 token 用量。输入框下方显示该侧聊的轮次、步数和运行统计,点击可查看 LLM / 工具耗时、首 token 时间、生成速度及缓存命中;尚未运行或尚未采样时显示对应空状态。

安装到现有 DSH

首次安装按上方快速开始执行。也可以下载 Release 的源码 ZIP,解压后从 npm ci 开始;构建包 .tgz 已含 lib/,解压后运行 npm install --omit=dev,再执行诊断和安装命令。

未自动找到 DSH 时,给诊断和安装命令指定同一个 CLI 路径:

npm run doctor -- --dsh-cli "PATH/TO/@deepseek-ai/dsh/lib/bin.js"
npm run install:dsh -- --dsh-cli "PATH/TO/@deepseek-ai/dsh/lib/bin.js" --workspace "PATH/TO/your-project"

若 DSH 服务已运行,先保存草稿、停止任务并退出该服务,再用原启动方式启动;只关闭浏览器窗口可能不会停止后台服务。然后重新打开原来的 DeepSeek Harness 桌面快捷方式。首页右上角只保留侧栏开关:

按钮操作
调节图标展开或收起侧栏

侧栏默认显示百度首页,顶部标签栏的 + 用于添加网页、侧聊或协作,按需要保持单组或分成上下两组。先在 DSH 中选择工作区;当前主会话还没有消息时也能打开面板。如果当前没有主会话,插件会为所选工作区连接一个空会话,不自动调用模型。

主页右上角不再提供方框加号;标签栏的 + 和输入框内的引用 + 各自保留。前端更新可保存草稿后刷新;从 v0.4.1 或更早版本升级到本版,还需在任务停止后重启 DSH 服务,以加载协作后端和工具。

安装器向 DSH 的 Web profile(默认 ~/.dsh/profiles/web/cordis.patch.yml)添加一个插件条目,修改前保存原文件备份。重复安装相同路径不会重复添加,也不会覆盖已有 Sidecar 设置。插件以本项目的绝对路径加载,安装后请保留项目目录的位置;迁移目录时先卸载,再从新目录安装。

此方式不修改桌面快捷方式或 DSH 安装程序。本机的 DeepSeek Harness 快捷方式由第三方 Whale Girl 启动器打开官方 DSH Web 运行时;它并不是 DSH 官方桌面客户端。其他启动器只要使用同一 DSH home 和 web profile,也能加载该条目。

查看安装状态或卸载:

npm run status:dsh
npm run uninstall:dsh

卸载只移除 Sidecar 的插件条目及针对它的覆盖项,保留其他 profile 配置;卸载前同样保存备份。随后重新打开 DSH。安装、状态和卸载命令均支持 --dsh-home "PATH/TO/.dsh",安装另支持 --dsh-cli "PATH/TO/@deepseek-ai/dsh/lib/bin.js"。

单独启动(可选)

也可另起本机 DSH Web 实例用于调试,默认地址为 http://127.0.0.1:3082:

npm start -- --workspace "C:\path\to\your-project" --open

启动器复用已有模型配置。已经安装到 Web profile 时直接使用该插件条目,避免重复加载;尚未安装时使用一次性的插件配置覆盖层。若 profile 中相同插件 ID 指向其他目录,启动器会报告冲突,请先从旧目录卸载。

Windows 完成首次安装和构建后,可以双击 Start-Sidecar.cmd。也可指定工作区:

.\Start-Sidecar.cmd "C:\path\to\your-project"

启动窗口保持打开即可;关闭窗口或 Ctrl+C 会停止本实例。命令参数决定默认工作目录,在 DSH 界面仍需选择对应工作区和主会话。

若未自动找到 DSH,显式指定安装路径:

npm start -- --dsh-cli "PATH/TO/@deepseek-ai/dsh/lib/bin.js" --workspace "PATH/TO/project" --open

DSH_SIDECAR_CLI 也可指定同一路径。--port 4092 可更换端口;端口占用时启动器会报错,不会终止其他进程。保留终端运行,按 Ctrl+C 停止本实例。

Windows 下,如果通过本脚本启动的是桌面安装配置中同一套 Node、DSH、用户目录及地址端口,启动器会同步本次服务的本机登录状态,避免桌面快捷方式继续使用上次服务的过期链接。该状态只保存在本机安装目录;默认 3082 调试实例不会覆盖 3080 桌面实例。

引用与持久化

引用内容会显示来源,可在发送前查看和移除;只在你发送时进入对应对话。主会话上下文取已完成的消息摘录,不把仍在执行的工具调用复制成新会话的可执行历史。

侧聊关联数据写入 .local/state/,实际聊天历史由 DSH 保存。.local/、运行日志和依赖目录均被 Git 忽略。命令输出只在本次服务进程内保留;浏览器是否允许嵌入由目标网站决定,拒绝嵌入时应在外部浏览器打开。

文件读取限制在选中主会话的工作区,检查真实路径以阻止目录穿越与链接逃逸,并限制文件及输出大小。命令台只在你明确运行命令时执行,使用本机当前用户权限,不注册为模型工具。DSH 会话内的模型工具仍遵循 DSH 自身的权限策略。

开发与验证

npm test
npm run build
npm pack

src/host.mjs 注册已认证 RPC;src/service.mjs 管理会话、文件和命令;src/client.jsx 接入原生槽位;src/WorkspacePanel.jsx 与 src/workspace-tabs.mjs 管理标签、拖放和分屏;src/Panel.jsx 提供各类标签的内容界面。构建复用 DSH 提供的 React,不打包第二份 React。

src/ComposerBar.jsx 提供侧聊输入框控制栏。文件、命令面板及其引用接口仍保留在底层,新建标签菜单不提供这两类入口。

真实执行结果、已测试范围与限制记录在 VALIDATION.md。独立测试会话与本地日志不作为源码发布。

已在真实 DSH 中验证主任务与侧聊同时运行、单独停止侧聊及主任务继续完成,7 项检查全部通过;保留脱敏的 执行记录。属性测试报告中的大整数直接从 JSON 原文提取,避免把 9007199254740993 显示成另一个数。

许可

MIT。这是独立实现的 DSH 插件,不包含 Codex 的界面代码或资源。DSH 的接口与版本边界见 固定版本的官方源码。