dshbase

插件目录 / Storage / paste-to-workspace

paste-to-workspace

已验证 · 实测可装 LQ-1123

✓ 持续维护

查看 GitHub ↗ ← 返回插件目录

3Stars
0Forks
0未关闭 issue
JavaScript语言
2026-08-14最近推送
跨平台平台

功能简介

DSH 插件:把粘贴/拖入聊天框的图片与任意文件保存为会话工作区文件。官方 bundle 插件,安装:dsh plugin --profile web add github:LQ-1123/paste-to-workspace

我们的评价
可用 — 实测通过,早期项目

DSH 插件:把粘贴/拖入聊天框的图片与任意文件保存为会话工作区文件。官方 bundle 插件,安装:dsh plugin --profile web add github:LQ-1123/paste-to-workspace 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

paste-to-workspace

Release v0.8.1
GitHub
License: MIT
DSH: Web Profile

把粘贴或拖入聊天框的图片与任意文件保存为会话工作区文件,发送时以
[Image: source: <绝对路径>] / [File: source: <绝对路径>] 文本注入消息——
图片由 modlens 读图,其他文件由模型按路径直接读取。输入框保持干净,预览条
与对话气泡内直接渲染缩略图 / 文件卡片。

✨ 功能一览

  • 🖼️ 任意文件拖放:从 Finder / 微信 / QQ / 网页把任意类型文件拖到窗口
    任意位置即保存到工作区 .dsh-paste/,进入待发预览条(纯文本/链接拖放仍走
    原生行为)
  • 📋 图片粘贴:Cmd/ctrl+V 粘贴截图/图片同样进入待发列表
  • 🎨 类型图标渲染:图片显示缩略图;其他文件显示 RemixIcon line 图标 +
    原始文件名 + 大小(PDF/Word/Excel/PPT/TXT/Markdown/压缩包/音视频/代码/
    字体/电子书等 15 组),未知格式用代码图标兜底,样式随浅/深主题
  • ⬇️ 点击即下载:点文件卡片唤起浏览器另存为(保留原始文件名),不再打开
    预览页
  • 🚀 纯文件发送:只上传文件、不输入任何文字也能发送(Enter 或发送按钮
    均可),一次调用 = 一个回合,文字与文件不拆消息
  • 🧵 一回合双气泡:文字留在原气泡、图片/文件卡片移到独立用户行(显示层
    拆分,模型侧始终是一条消息)
  • 🌓 主题适配:卡片底色/边框/文字/图标全部走宿主设计 token,深浅主题
    自动切换
  • ✏️ 官方提示文案改写:拖放时宿主全页提示"图片拖动到此处即可添加"自动
    改写为"文件拖动到此处即可添加",限制行替换为任意文件说明
  • 🧹 30 天自动清理:超期文件自动清扫(只动插件自己的 pasted-* 文件)

🚀 安装

前置:已装好 DSH(dsh web 可正常运行),dsh plugin 可用(依赖 pnpm)。

GitHub 安装(推荐,一行命令,产物已入库无需构建):

dsh plugin --profile web add "github:LQ-1123/paste-to-workspace"
# 验证 bundle 已挂载
dsh --profile web --dump-config | grep paste-to-workspace

也可以本地路径(开发调试时)或 npm 包名安装:

dsh plugin --profile web add /path/to/paste-to-workspace

安装后重启 dsh web 生效:宿主在进程启动时通过 package.json
dsh.client 声明发现浏览器端 bundle,浏览器端无需额外配置。

禁用与重新启用

在 Profile patch 或 overlay 中把 bundle 行设为 disabled: true

- id: paste-to-workspace
  disabled: true

删除该字段或设为 false 即可重新启用。

卸载

dsh plugin --profile web remove @dsh-user/paste-to-workspace

📖 使用

重启 GUI 后:

  1. 拖入任意文件(.txt / .md / .pdf / .doc / .zip …)或粘贴图片:输入框
    上方出现预览条——图片为缩略图、其他文件为图标卡片(点击卡片下载
    点灰色 × 移除);
  2. 发送(Enter 或发送按钮,不输入文字也可以):一次回合——有文字时
    显示两个气泡(文字一条、媒体一条),纯文件只有一条;
  3. 模型侧收到 [Image: source: /Users/.../.dsh-paste/pasted-*.png](modlens
    自动读图)或 [File: source: /Users/.../pasted-*.txt](模型按路径读取
    文件内容);
  4. 文件落在工作区 .dsh-paste/ 目录,历史消息里点击文件卡片可随时重新下载。

🧩 工作原理

  • 浏览器侧lib/client.js):捕获阶段拦截图片粘贴与任意文件拖放 →
    POST 到宿主路由 → 路径进入旁路待发列表(草稿零改动);
    conversation.input.dock 预览条渲染待发项;发送时包装 sendSession
    路径拼成 token 追加到消息(一次调用 = 一个回合);MutationObserver 把
    已发送消息里的 token 显示层替换为图片/文件卡片并拆成两个气泡;拖放期间
    改写宿主"图片…"提示文案。
  • 宿主侧lib/index.js):POST /save 保存任意类型文件到
    <会话工作区>/.dsh-paste/pasted-<时间戳>-<随机>.<扩展名>(扩展名取自原始
    文件名,无扩展名文件按原名保存);GET /file?path=…[&meta=1] 回读文件 /
    返回原始文件名与大小;DELETE /file?path=… 移除未发送文件。路径校验严格
    (必须位于已知粘贴根目录内且匹配插件命名格式),跨站请求 403。

⚠️ 已知限制

  • 粘贴(Cmd+V)只拦截聊天输入框内的图片;文件请用拖放
  • 不支持拖入文件夹(请打包成 zip 再拖)
  • 单文件上限约 24 MB(base64 后 32 MB JSON 体)
  • 发送过的文件在 .dsh-paste/ 保留 30 天后自动清理,历史卡片点击下载可能
    404(预期行为)
  • 待发文件是全局列表:未发送前切换会话,文件会跟着下一次发送走
  • 拖放提示文案改写仅作用于拖放进行时;宿主 UI 若有其他"图片"字样不在本
    插件职责范围

📜 许可

MIT。文件图标来自 RemixIcon(Apache-2.0),path 数据
内嵌于客户端 bundle。

🕒 更新历史

  • v0.8.1:官方拖放提示"图片"→"文件"运行时改写;限制行替换为任意文件说明
  • v0.8.0:点击文件卡片直接下载(保留原始文件名);图片缩略图仍为预览
  • v0.7.9:纯文件发送(空草稿占位符保持发送按钮可用,Enter/按钮均可)
  • v0.7.8:移除按钮改灰色 ×、置于卡片内部,卡片加高至 48px
  • v0.7.7:修复 .ts 被解析为视频的冲突(TypeScript 优先)
  • v0.7.6:中性单色图标(随主题),未知格式改用代码图标兜底
  • v0.7.5:改用 RemixIcon line 图标(内嵌 SVG,无网络依赖)
  • v0.7.4:全格式覆盖,无扩展名文件按原名保存
  • v0.7.3:图标瓦片加宽(更"胖")
  • v0.7.2:文件卡片/图标紧凑化
  • v0.7.1:样式随宿主主题 token 切换
  • v0.7.0:拖放支持所有文件类型 + 文件图标渲染
  • v0.6.x:30 天自动清理、串行保存、流式输出、拖放接管全局化
  • v0.3 ~ v0.5:输入框保持干净、缩略图预览条、一回合双气泡

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 paste-to-workspace」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:LQ-1123/paste-to-workspace

Headless(CLI)profile:

dsh plugin --profile headless add github:LQ-1123/paste-to-workspace

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

使用场景

给 agent 持久存储——数据库、文件存储或持久层——让状态跨会话留存。

适合谁

任务需要读写结构化数据并跨运行保留的人。

二次开发建议

存储后端和数据模型是缝——插新数据库、加 schema 或暴露查询工具。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Storage 里更多

浏览全部 7795 个插件 →