DeepSeek Harness 插件

dsh-width

DSH web 插件:在「设置」中增加「显示」页,用两个滑杆分别调节输入框与内容展示区的宽度百分比,改动即时生效并持久化。 / DSH web plugin: adds a "Display" page under Settings with two sliders that adjust the width percentage of the input box and the content(英文原文)

跳到安装方式

来源信息

GitHub 仓库
Hanice404/dsh-width
最近更新
2026年8月19日
分类
工具与能力
GitHub stars
1
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/Hanice404/dsh-width
插件名:dsh-width
作者:Hanice404

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-width

> DeepSeek Harness 的界面插件:在 设置 → 显示 中新增两个滑杆,分别调节输入框内容展示区的宽度百分比,全部即时生效、持久化保存。 > > A UI plugin for the DeepSeek Harness: adds a Settings → Display page with two sliders to adjust the width percentage of the input box and the content area, applied live and persisted.

![License: MIT](LICENSE)

功能

![](https://i.mij.rip/2026/08/18/faefb01284245759bd4144ff9de3b1dc.png)

滑杆效果
内容展示区宽度调整消息内容列的宽度(占中间栏的百分比,--dsh-chat-content-width
输入框宽度调整底部输入框(composer)的宽度(占中间栏的百分比,--dsh-composer-card-max-width
  • 范围 30% – 100%,步进 5%,默认 100%;
  • 每个滑杆带「重置」按钮,一键恢复默认;
  • 改动即时生效,无需刷新;
  • 数值持久化在 ~/.dsh/settings.yamldsh-width 一节。

安装

# 从 GitHub 安装(发布后)
dsh plugin --profile web add https://github.com/Hanice404/dsh-width/archive/refs/heads/main.tar.gz

# 或从本地目录(开发调试)
dsh plugin --profile web add link:/path/to/dsh-width

> 也可以直接在 profile 目录用 pnpm 安装: > > ``bash > cd ~/.dsh/profiles/web && pnpm add /path/to/dsh-width > ``

安装后重启 dsh web(Ctrl+C 后重新运行 dsh web),使浏览器端加载新插件 bundle。

暴露设置命名空间(仅旧版 DSH 需要)

> DSH 0.1.0-rc.7 及以后已移除 WEB_SETTINGS_NAMESPACES 白名单,插件通过 settings.register() 注册的命名空间会自动暴露给浏览器,无需任何额外步骤,重启即可使用。

仅在 0.1.0-rc.6 及更早版本上,浏览器可读写的设置命名空间被硬编码在 dsh-host-apiproxyWEB_SETTINGS_NAMESPACES 白名单里,需要执行一次幂等补丁:

npm run expose   # 等价于 node scripts/patch-apiproxy.mjs

> 该脚本在新版 DSH 上会检测到「无白名单」并直接成功退出(无害)。执行后再次重启 dsh web

使用

打开 设置 → 显示,拖动滑杆:

  • 内容展示区宽度:调整消息列宽度;
  • 输入框宽度:调整底部输入框宽度。

所有改动即时生效。

工作原理

  • 节点端lib/index.js):注册 dsh-width 设置命名空间(两个百分比字段,默认 100),值持久化到 ~/.dsh/settings.yaml
  • 浏览器端lib/client.js):

- 通过 ctx.settingsScope.bind 订阅设置,变化时实时套用宽度; - 在 settings.section 槽位注册独立设置页「显示」(与「模型 / 插件 / Agent 预设 / 文件提及」并列); - 用稳定的 [data-conversation-scroll] 属性选择器(不依赖哈希类名)覆盖 --dsh-chat-content-width(消息列)与 --dsh-composer-card-max-width: 100%(composer 栈全宽),并直接覆盖 [data-composer-card](输入框)的 max-widthinput%——两个百分比都相对中间栏,输入框与消息列宽度一致(若栈保持内置 780px,输入框的百分比会相对 780px,导致输入框明显窄于消息列); - 新会话(hero)页面:工作区 / 模式选择菜单行的左边缘通过 JS(MutationObserver + rAF)精确对齐到输入框左边缘——偏移量基于该行的原始(无 margin)位置计算,多次重新对齐结果稳定(刷新、DOM 变化、窗口缩放后位置不变),且只移动这一行,不改变任何其他元素的布局; - 会话中的任务列表(TodoPanel)宽度通过 JS 实时同步为输入框的实际宽度(px),两者始终保持一致。

常见问题

现象原因与解决
设置页滑杆是禁用状态旧版 DSH(≤rc.6)命名空间未暴露:运行 npm run expose 并重启 dsh web
设置值存到哪里~/.dsh/settings.yamldsh-width 一节
滑杆范围 / 默认值如何改同时改 lib/index.js 的 schema 与 lib/client.jsMIN/MAX/STEP/DEFAULT

兼容性

  • 目标平台:DeepSeek Harness webdsh --profile web),版本 0.1.0-rc.6 及以后(rc.7+ 无需 expose 步骤);
  • 依赖:见 package.json peerDependencies。

目录结构

dsh-width/
├── package.json          # 包清单 + dsh.client 注入配置
├── dsh.plugin.json       # 插件元数据清单
├── cordis.patch.yml      # bundle 组合补丁(loader 条目)
├── lib/
│   ├── index.js          # 节点端:注册 dsh-width 设置命名空间
│   └── client.js         # 浏览器端:设置页 + 宽度 CSS 注入
└── scripts/
    └── patch-apiproxy.mjs # 暴露命名空间到浏览器(仅旧版 DSH ≤rc.6 需要)

License

MIT