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。

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

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

小夜