dsh-snap-line:在消息输入框下挂一条拍立得晾衣绳

前言

DeepSeek Harness(DSH)的会话页以输入框为核心,侧栏和插件槽位可以扩展能力,但聊天区域本身往往偏工具化。若你希望在写提示词时有一点视觉上的「个人印记」,又不想动核心逻辑或引入远端资源,就需要一种只改界面、数据留在本机的装饰型 bundle。

下面介绍社区插件 dsh-snap-line(维护者 LMhuo,仓库 LMhuo/dsh-snap-line)。它在消息输入框下方绘制一条微微下垂的晾衣绳,夹上一排拍立得风格的照片,并支持用你自己的图片替换默认手绘插画。插件分类为「趣味换装」,许可证 MIT,当前 npm 版本 1.4.0(以 package.json 为准)。

这是什么

SnapLine 是 DSH 的 bundle 插件:Host 半通过 Harness Web Server 同源路由提供照片清单与图片;Client 半注册到 conversation.composer.dock 与 Hero 相关插槽,在浏览器里渲染晾衣绳、摆动动画与灯箱预览。

默认展示五张内置手绘小画;照片目录为空时不会出现空绳。你可以在已安装插件的详情页管理照片,排序后前几秒自动刷新,无需重启 Harness。

核心功能

出现位置

  • 会话页:挂在 conversation.composer.dock 插槽,紧贴输入框下方,外层 pointer-events: none,不挡输入框点击;仅照片本身响应悬停与点击。
  • 新会话首页:除 dock 外,还会在空白 Hero 中通过 Portal 渲染加宽版晾衣绳(有 Session 后 dock 版出现后自动让位,不重复显示)。

照片与展示

  • 绳上最多 6 张,由列表顺序决定(前 6 张上绳);张数越多排版越密,每张有独立倾斜角与摆动节奏。
  • 支持 .jpg、.jpeg、.png、.webp、.gif、.avif;单张 ≤ 25MB、像素 ≤ 64MP。
  • 原图与显示版分离:绳上与缩略图用长边 1280 的 JPEG 显示版(通常几百 KB);点开灯箱才加载原图。
  • 系统开启 prefers-reduced-motion 时不做摆动动画。

插件详情页管理

路径:侧栏 → 插件 → 已安装插件 → dsh-snap-line(英文:Plugins → Installed plugins)。支持多选或拖入添加、删除(二次确认)、拖动或 ↑/↓ 排序;列表标注「在绳上 / 未上绳」并显示数量摘要。

也可直接把图片放进照片目录,约 5 秒内自动上绳;清空目录则恢复内置插画。

交互与无障碍

悬停仅用 CSS :hover 与 transform;点击或 Tab 聚焦后 Enter / 空格打开灯箱;Esc、点背景或关闭按钮退出,焦点回到对应照片。晾衣绳、照片与灯箱提供中英双语读屏名称。

隐私与依赖

照片存放在本机 $DSH_HOME/dsh-snap-line/photos/(默认 ~/.dsh/dsh-snap-line/photos/),由 Harness 同源路由提供;插件不发起外部请求、不上传,也不写入 Git 或 npm 包。纯 ESM、零运行时依赖,react / react-dom 复用 Harness 内置模块。

安装与启用

SnapLine 通过 Harness 的 plugin_manager 或 CLI 安装。插件以当前 DSH 进程权限运行,安装前建议浏览仓库源码与 MIT 许可证。

方式一:npm(推荐)

包名 dsh-snap-line:

dsh plugin --profile <profile> add dsh-snap-line

DSH 从 npm 安装后,按 dsh.bundle.patch 组合 Host 半、按 dsh.client 加载 Client 半。收录到社区插件市场后,也可在 Harness 插件市场里搜索安装。

方式二:从 GitHub 安装

将仓库地址交给 Harness Agent,用 install_bundle 安装,或使用简写:

https://github.com/LMhuo/dsh-snap-line.git
github:LMhuo/dsh-snap-line

停用与卸载

在 dsh-snap-line 详情页关闭开关,或由 Agent 调用 set_bundle / remove_bundle。卸载插件不会删除 ~/.dsh/dsh-snap-line/photos/ 中的照片。

典型用法

1. 安装后默认体验

安装成功即出现在输入框下方,无需额外配置。未添加自定义照片时显示五张内置插画。

2. 在详情页添加并排绳照片

  1. 打开 插件 → 已安装插件 → dsh-snap-line。
  2. 多选或拖入图片;用拖动或 ↑/↓ 调整顺序,保证希望上绳的 6 张排在最前。
  3. 等待轮询刷新(间隔约 5 秒),或依赖写入完成后的窗口事件立即刷新。

照片持久化目录:

~/.dsh/dsh-snap-line/photos/
├── <name>                  # 原图
├── .display/<hash>.jpg     # 显示版
└── .order.json             # 顺序

同名文件重复添加会自动改名为 photo-2.jpg 等形式,不覆盖已有文件。

3. 命令行侧直接放图

将符合扩展名与大小限制的图片复制到 ~/.dsh/dsh-snap-line/photos/,数秒内自动出现在绳上。若没有显示版,打开详情页时会补生成。

从 1.3.x 升级:旧版放在插件包 photos/ 里的照片不会自动迁移,需在新版详情页重新添加。

适用场景与注意

适合谁:长期在 DSH Web 或 Desktop 里写会话、希望输入区有一点个人照片装饰、且接受数据仅在本机的用户。社区目录 skillhub 插件页 将其归为趣味换装,不改变模型或 Agent 行为。

兼容性(README 表格):

项目 要求
DeepSeek Harness 0.2.x(engines.dsh: ^0.2.0;开发验证于 0.2.2)
Node.js ≥ 20(开发与测试;运行时用 Harness 内置 Node)
插件形态 bundle

其他注意:

  • iPhone HEIC 需先导出为 JPEG 再添加。
  • 目前晾衣绳为固定暖色纸张配色,不随 Harness 深色主题切换。
  • 能访问本机 Harness 端口的进程可读取同源提供的图片,请在本机安全策略下使用。

结尾

dsh-snap-line 用一条本地化的拍立得晾衣绳装饰消息输入区:安装即生效,照片在详情页或文件目录中管理,交互克制且不依赖外网。若需预览截图、工作原理与 FAQ,见仓库 README。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜