夜雨聆风学习资料网

ARTICLE · 1350901

DSH桌面版插件配置指南

DSH桌面版插件配置指南
上周同事来我工位,看见我屏幕愣了一下,问我这是在用什么 IDE。
不是 IDE。是 DeepSeek Harness 的桌面版,右边挂着文件树、Git 和终端,左边在跑一个团队协作的任务面板,背景是一张我自己调的模糊壁纸。
他的第二个问题是:「装完就这样?」
不是。装完是一个白板,下面这些全是插件堆出来的。
这篇文章写的就是我这台机器上真实的配置:9 个第三方插件,每个干什么、我怎么用、踩过什么坑。你不需要照着装,但如果你也在用 DSH,这里面至少有五六个能省你时间。
九张插件卡片拼成一条流水线
一、先把 DSH 装上
DSH 的安装本身没什么可说的,六步,桌面端点四下就行。
从零到能干活:六步
但有几个点值得单独拎出来说,因为踩过。
第一,桌面版和命令行版是两套账。
你可以 npx @deepseek-ai/dsh 跑一个 Web 版,也可以在官网下安装包装桌面版(macOS 是 .dmg,Windows 也有对应的安装包)。两者的 profile 是分开的:桌面版用 desktop,Web 版默认 web。桌面版自带内核和包管理器,升级全局 CLI 不会升级桌面版,反过来也一样。
我见过有人 dsh plugin --profile web add 装了一堆东西,然后打开桌面版发现一个都没有,因为它们装到另一个 profile 里去了。
第二,配置文件就两个地方,认一下省很多事。
~/.dsh/profiles/desktop/├── package.json        ← dsh.profile.bundles 里列出要加载的插件└── cordis.patch.yml    ← 你自己的补丁层,唯一该手改的文件
插件装在 node_modules 里,但是光装进 node_modules 不会被加载,还得进 bundles 数组。这个区别后面还会提。Windows 用户的 ~/.dsh 就是 %USERPROFILE%\.dsh,下文所有 ~ 开头的路径同理。
第三,模型可以先不接 DeepSeek 官方。
DSH 的模型层是可插拔的,除了官方的 deepseek provider,还能挂任意 OpenAI 兼容网关。我这台机器上就并排挂了几组,需要的时候在模型选择器里一键切。
配置写在 cordis.patch.yml 里,形状大概是这样:
- id: llm-pi-ai  name: "@deepseek-ai/dsh-llm-pi-ai"  config:    providers:      my-gateway:        displayName: 我的网关        api: openai-completions        apiKeyEnv: MY_GATEWAY_API_KEY        baseURL: https://<你的网关域名>/v1/        models:          - id: <模型标识>            name: <显示名>            input: [text, image]
三个关键字段值得留意:
api 选 openai-completions 就是走标准的 OpenAI 兼容协议,绝大多数网关都吃这套。
apiKeyEnv 填环境变量名,不填真 key。真 key 统一放在 ~/.dsh/.credentials.yaml 里。这个文件不进代码库,也不会被打进任何插件包。这个设计挺对的,配网关的时候别图省事把 key 直接写进 yaml。
input: [text, image] 声明这个模型能不能读图。声明了 image 但实际模型不支持,贴图会报错;反过来没声明,多模态模型也只能当纯文本用。
注意:baseURL、apiKeyEnv 这些是本地配置,不要往文章、截图、仓库里贴。我写这篇的时候就把这几个值全换成了占位符。你这台机器上的凭据,只要落到公开文本里一次,就得当它已经泄露了处理。
第四,装完第一个插件应该是插件市场。
这一步之后你就再也不用敲命令了。桌面版打开「插件 → 添加插件」,填 dshmarket,装完重启,侧边栏或者账号菜单里就多一个入口。
然后我们进正题。
二、先搞懂宿主是怎么把你的插件拼起来的
这张图是我自己画的,因为文档里没有一处把这个讲清楚,而它决定了你后面 80% 的「装了怎么没反应」。
宿主的四层结构
DSH 的插件系统用的是 cordis 那套 loader。启动的时候它做一件事:从上往下叠补丁。
1.基础bundle层:@deepseek-ai/dsh-base 和 @deepseek-ai/dsh-web-app,官方内核。模型、工具、会话、界面都在这里。
2.插件patch层:每个插件包里自带一份 cordis.patch.yml,声明「我要注册一个侧栏标签」「我要加一个工具」「我要在设置里挂一张卡片」。
3.你的补丁层:~/.dsh/profiles/desktop/cordis.patch.yml。改配置、开关插件、换默认模型都在这。
4.运行时:改普通配置热重载大约一秒重新组合;改到 bundles 清单就得重启整个宿主。
所以「装了没反应」通常只有三种:
装了包,但没进 bundles 数组 → 根本不加载。
进了 bundles,但补丁层被写了 disabled: true(插件市场的开关、或者上次崩溃后的自救)→ 加载了但停用。
版本对不上 → 它自己静默退出,日志里才有原因。
第三种最坑。比如 dsh-better-sidebar 0.28.0 要求宿主 0.2.1-rc.1+,而当时 DSH 的 npm latest 还是 0.2.0-rc.2。你要是在 0.2.0 的宿主上装了最新版插件,它不会告诉你哪里不对,就是不出现。README 里有一张「你的 DSH 版本 → 该装哪个插件版本」的表,那表不是摆设。
顺便说一句 DSH 启动是全有全无的:一个插件加载失败,进程直接退出,你连界面都看不到。所以别乱动 @deepseek-ai/dsh-base 那层。
三、这 9 个插件,一个一个说
我按「装完先干什么」的顺序排,不是按重要程度。
01 `dshmarket`:把装插件这件事从命令行搬到界面上
干什么:DSH 里的可视化插件市场。社区目录收录了几千个插件,可以浏览、搜索、分类、看截图、看评论,一键装。
怎么用:设置入口在账号菜单 →「插件市场」(0.2.0 及以前在侧边栏)。打开之后我自己最常用的其实是搜索框,直接打 sidebar、session、theme 这种关键词,比一页页翻快。
它有个我挺喜欢的细节:会按你的宿主版本筛。不兼容的插件会被标注出来,不会让你装完才发现是白的。
我的用法:装完这个之后,后面八个插件全是在它里面点出来的。装完记得看一眼设置页里那个「市场」的更新提示,它自己也需要更新。
02 `@liustack/modlens`:给纯文本模型补一双眼睛
干什么:DeepSeek 的主力对话模型和 GLM-5.3 本体都是纯文本的,读不了图。modlens 外挂一个视觉引擎,把图片转成结构化描述喂给模型。没它的时候你贴截图给 DSH,模型只能回你「我看不到图片」。
怎么用:两种姿势。
第一种,直接粘贴。你 Cmd+V(Windows 上是 Ctrl+V)贴进输入框,插件会把图片自动转成文件路径塞进去,然后由 modlens_read_image 工具接手读图。跟 OpenCode、Pi 的交互一致。
第二种,切模型变体。模型选择器里会多出 DeepSeek-V4-Flash (modlens vision) 这类带后缀的条目,选了之后缩略图直接在气泡里可见,所见即所得。选择器有记忆,选一次就行。
我的配置:~/.modlens/config.json,指向一个 OpenAI 兼容的多模态端点:
{  "provider": "openai",  "providers": {    "openai": {      "baseUrl": "https://<你的多模态端点>/v1/",      "model": "<多模态模型标识>"    }  }}
模型标识填什么,取决于你手上那个端点提供什么。我这边用的是公司网关上的一个多模态模型,名字就不贴了,端点地址和模型名都属于「说出去就得换」的东西。
如果你手上什么视觉引擎都没有,README 里推荐免费 Gemini key(5-10 秒一次),或者装 Antigravity CLI 用浏览器登录(15-45 秒,完全免注册)。它内置了一条故障转移链,配了几个就走几个,第一个可用的胜出,meta.attempts 里能看到每次尝试,回退不是无声的。
坑:会超时。我这两天用它复核一张图就报 The operation was aborted due to timeout,换了网关才好。所以截图这种活儿,别指望它 100% 稳,重要的时候多贴一次。
03 `@liustack/modsearch`:把联网能力补回来
干什么:模型在官方 App 里能联网,切到 API 就不能了。modsearch 补的是这块:网页搜索、X(推特)搜索、单页抓取。
怎么用:装完即用。默认引擎是 Firecrawl 的免注册通道,每月 1,000 免费 credits,不用注册、不用 key、不用绑卡。你不用记任何命令,正常提问就行,它会自动挑引擎、跑搜索或抓取,答案带来源回来。
DSH 里的 web_search、read_page、x_search 这些工具会直接跑在它的引擎链上。
真要用起来,几个场景:
甩一个链接过去 + 「总结一下」→ read_page 抓全文,不打开浏览器。
「今天有什么 AI 新闻」→ web_search 返回几条带来源的结果,末尾还会带一句可信度说明(来自 uncertainty 字段)。
「X 上大家怎么评价这个」→ x_search,需要本机装了 Grok Build 并登录。
引擎可选:Firecrawl、Keenable、Antigravity CLI、Tavily、Exa、Grok Build、local。前两个零配置,后面的各一条命令。配了多个就自动故障转移。
坑:如果你开着 Clash 这类代理的 fake-ip 模式,不用担心,198.18.0.0/15 会被识别成占位地址。但 URL 里直写 http://198.18.0.5/ 这种内网地址会被拦,是 SSRF 防护,正常。
04 `billion-context`:让一个会话能连着跑几天
干什么:上下文压缩。长会话总有撑爆窗口的时候,billion-context 用一套分层增量压缩,把已经聊完的部分折叠成摘要,再长的会话也装得下。
怎么用:装完几乎不用管。它会往对话里注入四个工具,模型自己决定什么时候用:
compress:把一段消息范围折成详细摘要
decompress:需要精确细节时把那段恢复回来
search_context:在摘要和可见消息里做关键词检索
acp_status:看上下文用量,哪些区间还能压
这是它跟宿主自带摘要器最大的区别:增量、可逆、对前缀缓存友好。摘要只在小范围写入,缓存前缀保持完整,所以不会因为你压缩了一次就把整个 prompt cache 打掉。
我的用法:基本不干预。偶尔觉得「它怎么忘了刚才那段」,就让它 search_context 或者 decompress 一下。这一般是模型压缩得太激进,不是 bug。
想查账的话,/acp 或者 /acp-cache 会给你缓存命中率归因。健康会话的前缀缓存命中率在 95-97% 左右,压缩本身的代价 ≤2%。持续低于这个数就得看看是不是上游 TTL 到期、切换了模型、或者别的什么。
坑:补丁层里那条 bili-compaction-gate 别随手关。我这份配置里它是 disabled: false,保持开着。
05 `@nanmicoder/dsh-agent-teams`:把当前会话变成队长
干什么:多智能体团队协作。当前会话成为队长,可以创建可续聊的子 Agent、把目标拆成带依赖的任务、成员之间直接发消息,不需要队长中转。
怎么用:一句话。
/agent-teams 把这个项目的单元测试补到 80%,顺便把 CI 的 lint 报错清干净
然后它会走一套固定协议:建团队(草稿态,等你确认)→ 你审批 → 调度器按依赖派活 → 成员领任务干活 → 报告回流。
我留着它,主要因为两个细节:
一是任务有依赖。 「先改接口再补测试」这种顺序它是懂的,依赖没完成的任务领不了。
二是质量门禁。 默认顺序是需求 → 实现 → 验证 → 审查 → 集成。审查不过会自动加一轮修复 + 复审,不是失败就结束。这个对我这种「写完就觉得自己对了」的人特别有用:它逼着有个独立角色去看。
Web UI 里有实时活动面板:成员树、可交互的 DAG、分段进度、每个运行中子任务标出用的模型。团队结束后完整历史还在。
我的用法:文档类、审计类、多文件重构类任务用它;单文件改个 bug 就自己上,建团队的开销比收益大。
坑:它推荐的宿主是 0.2.1-rc.2,我这儿还是 rc.1,能跑但不是我验证过的最优组合。还有团队状态存在 <workspace>/.agent-teams/ 里,别去手改那些文件,出问题用工具改。
06 `dsh-better-sidebar`:我为什么离不开它
干什么:DSH 的双工作台。原生右侧栏 + 自绘底部面板,一个会话一套。
如果你的 DSH 现在还是「中间一个对话框、右边什么都没有」,装完这个你会觉得换了个软件。
它能干什么:
文件树:懒加载、Git 变更着色、实时 watch、全局搜索、拖拽上传、多选批量、右键「打开方式」(编辑器 / 预览 / 打包下载)。
Git:Source Control 分 Merge / Staged / Changes 三组,带 Generate 的消息框,分支与同步底栏,还有一张只读的提交图(泳道 + 引用徽章 + 分支筛选)。只读这点很重要,它不会误触 checkout 或 fetch。
编辑器:CodeMirror,可编辑(官方的预览是只读的)。Markdown 支持 Mermaid 和浮动目录,HTML 走沙箱 iframe 预览,超大文件分页,传输不限大小。
任务管理:子代理拓扑实时预览(工作流图 / 树两种模式)+ 后台任务清单,能看到退出码、实时输出、强制终止。
侧边对话(beta):Codex 那种侧边线程,继承主会话完整上下文独立跑,可以排队、撤回、每线程独立选模型、一键提升成顶层会话。
底部工作台:跟右侧栏同时展开,拖拽分栏、多终端页签、按会话持久化布局。
还有个隐藏福利:它把 ctx.betterSidebar 这个服务开放给所有插件,别的插件可以往侧栏里注册标签页和文件查看器。所以这插件除了自己好用,还是整个生态的地基。
我的配置:agentOpenTools: true。开着之后模型可以主动用 sidebar_open 帮你把文件、文件夹、网页打开到侧栏。我经常让它写完文档直接推过来给我看。
坑:版本匹配。上面提过一次,这里再说一遍:0.28.0 要宿主 0.2.1-rc.1+。另外升级后如果出现两个侧边栏,去 cordis.patch.yml 里删掉旧的手动挂载行,双挂载了。
07 `dsh-at-file`:`@` 一下,但只给路径不给内容
干什么:输入框里打 @ 搜索当前工作区的文件和目录,选中后路径插进输入框。Codex 同款交互。
怎么用:
请检查 @docs/spec.pdf
关键在它不读文件。选中之后插件只做一件事:确认路径在当前工作区、仍然存在,然后补一条引用消息:
<workspace-reference path="docs/spec.pdf" kind="file" />
就一个相对路径加一个类型。文件内容什么时候读、读多少,交给模型自己判断,用当前会话里有的工具。这个设计我很认同:早期版本会在提交时把文件内容塞进 prompt,PDF 稍微大一点就直接爆上下文。
几个实用细节:
输入里带 / 会逐段匹配路径,比如 src/view 能找到 src/client/view.ts。
高亮目录时按右方向键能进目录,候选菜单继续显示。
候选项优先显示文件名,下面显示父目录,重名的才把父目录提到主标题。
默认索引会跳过版本控制目录、IDE 元数据、依赖目录、缓存和构建产物(VS Code、JetBrains、Xcode、CMake、Flutter、.NET、Unity、Unreal 这些都覆盖了),.DS_Store、Thumbs.db 也排除。
文件过滤在 设置 → 文件提及 里配。全局规则所有工作区共用,工作区规则只对当前路径生效。每条规则可以选 Exact 或 Regex,可以区分大小写。改完规则会清索引缓存,下次输入 @ 就生效。
还有个容易忽略的开关:「忽略粘贴文本中的 @」。默认开着,意思是你从别的应用复制一段带 @路径 的文字贴进来,不会触发选择器,也不会生成引用标记。想恢复旧行为就关掉它。
08 `dsh-session-manager`:四个月后还能找回那次会话
干什么:会话与工作区管理。
我用了四个月,~/.dsh/sessions 下面已经是一堆按路径分组的目录。没有这个插件之前,找一次两周前的对话只能靠标题瞎猜。
它能干什么:
会话:删除(二次确认,子 Agent 会话和空白占位不能删)、归档 / 移出归档、跨工作区移动(会把 cwd 重写到目标工作区,历史、标题、归档状态都保留)、迁移 Agent 预设(原预设被改名或删除导致会话打不开时,修复它)。
标记:收藏、待回看、优先级(1 最高到 5 最低,默认 3)、标签(每会话最多 20 个,每个 32 字符)、备注(最多 2000 字)。英文逗号和中文逗号都是分隔符。
搜索:按标题、会话 ID、备注、标签,不区分大小写。注意它不读聊天历史,所以搜不了「我说过的那句话」。
批量:顶部「批量处理」切进去,行左边出复选框,然后归档、收藏、打标签、设优先级、移动、迁移预设、删除都能批量。非破坏性操作立即执行,删除会先弹预览。
工作区:搜索、排序、批量归档、显示开关。关掉开关会把整个工作区连同未归档会话一起归档,并从原生侧边栏隐藏,运行中的会话会被拒绝。
入口在侧边栏底部「会话与工作区」。标题栏右侧还有当前会话的快捷入口:归档、标签、移动、删除。
我的用法:主要就是归档。一堆试完就废的会话,批量归档一下,主列表立刻清爽。还有那个 annotations.v1.json 里的标签,我给不同项目打了标记,找起来比翻标题快。
坑:标记存在 dsh-session-manager/annotations.v1.json,按会话 ID 关联。同源的客户端实例通过 BroadcastChannel 同步,所以开两个窗口不会打架。但你要是手动改这个文件,先备份。
09 `dsh-any-background`:纯审美,但你天天看
干什么:外观插件。主题色(PS 风格色轮 + 精确 HSL/RGB 输入)、背景壁纸(图片 / 视频 / 算法动态生成)、逐表面的透明度和模糊度。
怎么用:设置里有五页:色彩、界面、字体、背景、配置。
色彩:色轮取色,或者直接输 HSL/RGB。
背景:图片和视频壁纸支持拖动平移和滚轮缩放。算法动态背景有网格渐变、Shader、几何图案(含低多边形)几组预设。
透明度与模糊度:主背景、侧边栏、卡片、设置面板、输入框、轨迹、产出、标题条……每个表面单独调。
我的配置(~/.dsh/.dsh-any-background-data/theme-config.json):
color:  HSL(13.8, 15%, 20%)   ← 深棕sidebar / card / input  opacity: 0.5所有表面 blur: 30pxbg opacity: 0                 ← 背景全透明,只留壁纸
翻译一下:一张暗色调的壁纸铺满,侧栏和卡片是半透明磨砂,主背景完全透明。看着像一块有内容的毛玻璃,不是一块白板。
两个注意点:
模糊滑块拉到 0 就是没有磨砂,不是「用宿主的默认值」。0.3.7 那会儿曾经把 0 解释成宿主默认的 40px,后来改回来了。
「标题条带文字」有自动 / 跟随主题 / 始终白 / 始终黑四档。壁纸浅色的时候手动选黑,不然白字看不见。
它跟 dsh-better-sidebar 的侧栏是打通的:主题卡片会注册到 better-sidebar 的「主题」页,跟设置面板三处共用同一份状态。所以你在哪调都一样。
导出导入挺好用的:配好一套直接导出 JSON,换机器或者分享给同事。
四、把它们串起来是什么样
单看每个插件都是「哦,还行」。串起来才是这套配置的意义。
六个插件接力跑完一次会话
这是我昨天一次真实的会话,需求是「把智审通那套 KPI 表格重做一版」。
1.我用 @ 把旧的 xlsx 和一个需求 md 丢进去,只给路径,模型自己决定读哪个。
2.它说需要看一版行业标准,我甩了一个链接,read_page 抓全文。
3.我又贴了张截图(原来那版表格的排版),modlens 把它转录成文字。
4.聊到第三十轮,前面那堆试错的数据它自己折叠了,我什么都没做。
5.中间我嫌它一次改太多,/agent-teams 拆了个三人小队:一个改数据,一个写渲染脚本,一个审数字对不对。审查那轮抓出一个指标算错了两行。
6.产物落盘,我在侧栏的文件树里直接预览 docx 效果,改了两处措辞。
全程我动手的次数:粘贴一次截图、敲一个 @、丢两个链接、点了几下审批。
所谓「配置」就是这么回事:单个插件都不神奇,但摆对位置之后,中间那些复制、粘贴、切换、手动整理的动作就消失了。
五、几条不会写进 README 的经验
1. 先装底座,再装能力。
我的顺序是:市场 → 模型接入 → 感知(视觉 + 联网)→ 上下文 → 协作 → 工作台 → 维护 → 审美。反过来装你会很痛苦,因为前三个不装,后面那些插件你都验证不了。
2. 一个插件出问题,先看 bundles 再看补丁层。
90% 的「没反应」在这两处。剩下 10% 是版本不匹配,去看 README 的兼容表。
3. 别一次装五个。
DSH 是全有全无启动。一次装一个,重启,确认能用,再装下一个。我有一次一口气装了三个,结果起不来,排查了四十分钟,最后发现是第二个插件跟宿主的 rc 版本差了一个小版本。
4. 桌面版不要用命令行改 profile。
desktop 这个 profile 归应用自己管。应用开着的时候你在命令行 dsh plugin --profile desktop add ...,轻则无效,重则把 package.json 写坏。桌面端请用界面里的「添加插件」。
5. 插件不是越多越好。
我现在这 9 个,每一个都能说出「没有它我会少做什么」。装了一堆用不上的插件,除了拖慢启动没有别的作用,每个插件还是一个潜在的启动失败点。
6. 社区插件的风险要当真。
这九个包都是第三方写的。装进宿主,就等于把你的会话内容、文件路径、模型凭据交给它的代码去处理。大部分插件规矩,但你得自己看一眼。
我给自己定的两条规矩:一是涉及账号和 Key 的一律走环境变量,不写进任何插件配置;二是装之前快速翻一遍 README 的风险段和 issue 区,写得含糊的直接跳过。这是读 README 唯一不能省的部分。
六、最后
写了这么多,其实想说的只有一句:
DSH 本体是个很干净的底座,真正让它变成「我的工具」的,是这九个社区包。
它们来自不同的人,有不同的设计取向,有的严谨到给每个模型做核验表,有的就是给个色轮让你调背景。但它们都遵守同一套补丁协议,能叠在一起跑,互不打架。
这类插件生态最有意思的地方就在这儿:你不需要等官方 roadmap,缺什么就装什么。
本文环境:macOS(Apple Silicon)/ Windows · DeepSeek Harness Desktop 0.2.1-rc.1 · profile desktop。文中插件版本:dshmarket 1.66.44、@liustack/modlens 3.27.1、@liustack/modsearch 5.10.10、billion-context 0.1.204、@nanmicoder/dsh-agent-teams 0.1.26、dsh-better-sidebar 0.28.0、dsh-at-file 0.6.3、dsh-session-manager 0.7.4、dsh-any-background 0.3.9。插件更新很快,具体版本要求以各自 README 为准。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料