前言¶
在 DeepSeek Harness(DSH)里写长提示、贴代码块时,输入区会跟着内容一直长高。官方行为是长到约 336px 才开始在框内滚动,且不能用手拖动固定高度。对经常改多行草稿的开发者来说,框时高时低、占屏又偏满,阅读和排版都不顺手。
下面介绍的 dsh-composer-resize 是维护者 ayachinene285 发布的客户端插件:在聊天输入框顶部加一条拖动把手,可在一定范围内自由改高度;松手后高度写入浏览器 localStorage,重启仍生效。双击把手可回到「跟着内容长、但封顶更低」的自动增高模式。实现上只改 [data-input-scroll] 的 height / max-height,不接管 React 组件。
这是什么¶
- 名称:
dsh-composer-resize(npm 包名与仓库同名) - 分类:客户端(
dsh.client.platform为web) - 许可证:MIT
- 版本(
package.json):0.1.0 - GitHub 星标:目录页记录为 1(以社区目录为准)
插件通过 Cordis bundle patch(cordis.patch.yml)做纯 DOM 增强,宿主入口 lib/index.js 为空实现,实际逻辑在客户端导出 lib/client.js。
与官方输入框行为的差异¶
DSH 默认:输入框随内容增高,约 336px 后内部滚动,不能拖。
启用本插件后:
| 模式 | 行为 |
|---|---|
| 自动增高(默认 / 双击复位) | 仍随内容变高,但 max-height 封顶 168px(约为官方一半) |
| 固定高度(拖动后) | 高度锁定为你拖定的值,超出部分在框内滚动,不再忽高忽低 |
拖动范围:64px ~ 屏高的 72%。拖动时右上角会显示当前像素值。
核心功能¶
- 把手交互:在
[data-composer-card]输入卡片顶部插入约 10px 高的细把手;鼠标移上或聚焦时出现。 - 任意时刻可拖:无论当前一行还是多行,往上拖变高、往下拖变矮;从「当前实际高度」起算,第一次移动后切换为
height/min-height/max-height三件套固定高度。 - 双击复位:清除内联
height,回到仅设max-height的自动增高模式(封顶 168px)。 - 持久化:松手即写入
localStorage,换会话、重启浏览器或 DSH 仍保持上次高度(按本次浏览器,不写进 DSH 配置文件)。 - 兼容范围:不改动发送、附件、斜杠命令;
MutationObserver加定时兜底,React 重建输入框后自动补回把手与样式;卸载时移除把手、样式及内联高度。
安装与启用¶
安装步骤以仓库 README 为准。插件以当前 DSH 进程权限运行,安装前建议浏览源码与 MIT 许可证。
先克隆仓库到本地,再让 desktop profile 以本地路径安装:
git clone https://github.com/ayachinene285/dsh-composer-resize.git
dsh plugin --profile desktop add "$(pwd)"
(第二条命令需在克隆得到的仓库目录内执行,使 $(pwd) 指向该插件根目录。)
手动方式(README 原文):
- 将目录放到
~/.dsh/profiles/<profile>/node_modules/dsh-composer-resize - 在该 profile 的
package.json里,dependencies增加link:指向该目录 - 在
dsh.profile.bundles末尾加入dsh-composer-resize - 完全退出 DSH 再重新打开
社区目录页:https://www.skillhub.cn/plugins/ayachinene285/dsh-composer-resize(独立站点,与 DeepSeek / 幻方无官方从属关系)。
典型用法¶
无需额外配置项;安装并重启 DSH 后,在聊天输入框顶部即可使用把手。
- 临时拉高写长文:鼠标移到把手或聚焦输入区,向上拖至合适高度;松手后进入固定高度模式,长内容在框内滚动。
- 收回占屏:向下拖矮输入框;高度会记住,下次打开仍是该值。
- 恢复「随内容长」:双击把手,回到自动增高,且最高约 168px。
示意见仓库 docs/screenshot.png。
实现要点(便于排错)¶
插件不注册 UI 组件,流程概括为:
- 定位
[data-composer-card](position: relative),顶部插入把手; - 拖动 → 固定高度模式;双击 → 清内联
height,自动增高模式; - 监听 DOM 变化并在 React 重建后重新挂载;
- 仅触及
[data-input-scroll]的高度相关样式。
适用场景与注意¶
适合:经常在 DSH 桌面 Web 端写多行提示、希望输入区高度可控、且希望默认自动增高不要顶到半屏的用户。
边界(README「已知边界」):
- 只影响聊天输入框;队列编辑框(QueueDock)仍为官方样式。
- 固定高度模式下不会再自动增高;要恢复自动增高请双击把手。
- 高度仅存在浏览器
localStorage,不进入 DSH 配置。 - 依赖
data-composer-card、data-input-scroll两个 DOM 标记;若未来 DSH 改名,插件会静默不生效(不报错)。
结尾¶
dsh-composer-resize 用最小 DOM 补丁解决「输入框只能长到 336px、不能拖」的问题:拖动定高、双击回自动、默认封顶 168px,并本地记住高度。需要详情与源码时,可看社区目录页与 GitHub 仓库。