把文件拖进或粘贴进 DeepSeek Harness——Web…
30.4/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Crosery/dsh-drop该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · vision
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 38 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(dependency_conflict · 2026/11/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包@crosery/dsh-drop(未发布到 npm,仅可源码安装)
✓Node 引擎要求 ^22.19 || >=24 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/7 01:12:49
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 33 处,展示前 20 条)
- 写入本地文件lib/index.js:318
await mkdir(dir, { recursive: true }); - 写入本地文件lib/index.js:331
await pipeline(req, meter, createWriteStream(temp)); - 删除本地文件lib/index.js:334
await rm(temp); - 删除本地文件lib/index.js:346
if (temp !== void 0) await rm(temp, { force: true }).catch(() => { - 读取本地文件lib/index.js:414
children = await readdir(dir, { withFileTypes: true }); - 读取本地文件lib/index.js:441
summary.bytes += (await lstat(path)).size; - 读取本地文件lib/index.js:451
const entry = await stat(path); - 读取本地文件lib/index.js:453
const real = await realpath(path); - 读取本地文件lib/index.js:459
const file = await lstat(target, { bigint: true }); - 读取本地文件lib/index.js:465
if (!insideRoot(real, await realpath(target))) return void 0; - 写入本地文件lib/index.js:550
await mkdir2(candidate); - 写入本地文件lib/index.js:556
await rename(tree, candidate); - 删除本地文件lib/index.js:563
await rmdir(candidate).catch(() => { - 写入本地文件lib/index.js:566
await rename(tree, candidate); - 删除本地文件递归lib/index.js:613
await rm2(batch.home, { recursive: true, force: true }).catch(() => { - 写入本地文件lib/index.js:652
await mkdir2(batch.tree, { recursive: true }); - 删除本地文件递归lib/index.js:655
await rm2(home, { recursive: true, force: true }).catch(() => { - 删除本地文件递归lib/index.js:679
await rm2(batch.home, { recursive: true, force: true }).catch(() => { - 发起网络请求lib/client.js:2752
async function acquire(file, bridged, hints, signal, http = (url, init) => fetch(url, init)) { - 发起网络请求lib/client.js:3142
async function acquireFolder(root, name2, hints, signal, onProgress, http = (url, init) => fetch(url, init)) {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-input-trigger@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-host-webserver给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 拖拽文件粘贴
- 预览栏展示
- 发送时加入文件引用
把文件拖进 DeepSeek Harness Web 即可粘贴:一条预览栏、原生图片附件,文件引用只在发送时才加入。
README
由 DeepSeek 最新模型翻译生成DSH Drop
English · 中文
把文件拖进或粘贴进 DeepSeek Harness——Web 版和桌面应用都支持。图片和文件共用一条预览栏,草稿只保留你打的字;发送时才追加文件路径。
CI MIT
统一附件栏
安装
| 场景 | 支持范围 | 验证方式 |
| Web(dsh --profile web) | 0.0.1-rc.5 至 0.1.7-rc.2——每个能装上的已发布版本 | peer 范围接纳每个已发布版本。CI 用 dsh plugin add 把打包后的插件装进其中每一个并运行:激活、路由应答、浏览器半边被服务端提供并在无头 Chrome 中运行,往输入框拖入的文件必须出现在预览栏里;同时用该版本自己的包做类型检查和测试。更早的构建按发布时的依赖,还在 0.0.1-rc.5、0.1.0-rc.2 和 0.1.0-rc.6 上用浏览器手动实测了拖入图片、PDF、文本文件和文件夹,以及预览、移除和发送。0.0.1-rc.1 与 rc.2 同样被接纳,但这两个版本的 @deepseek-ai/dsh 本身装不上:它依赖的 @deepseek-ai/dsh-agent-tool-mode 从未在 npm 上出现过。 |
| 桌面应用 | 0.1.7-rc.2 | 在应用自带的运行时(即其更新 feed 发布的版本)上跑同样的启动冒烟。
展开完整文档(README 剩余 1 节)
DSH Drop English · 中文 把文件拖进或粘贴进 DeepSeek Harness——Web 版和桌面应用都支持。图片和文件共用一条预览栏,草稿只保留你打的字;发送时才追加文件路径。 CI MIT 统一附件栏 安装 | 场景 | 支持范围 | 验证方式 | | Web(dsh --profile web) | 0.0.1-rc.5 至 0.1.7-rc.2——每个能装上的已发布版本 | peer 范围接纳每个已发布版本。CI 用 dsh plugin add 把打包后的插件装进其中每一个并运行:激活、路由应答、浏览器半边被服务端提供并在无头 Chrome 中运行,往输入框拖入的文件必须出现在预览栏里;同时用该版本自己的包做类型检查和测试。更早的构建按发布时的依赖,还在 0.0.1-rc.5、0.1.0-rc.2 和 0.1.0-rc.6 上用浏览器手动实测了拖入图片、PDF、文本文件和文件夹,以及预览、移除和发送。0.0.1-rc.1 与 rc.2 同样被接纳,但这两个版本的 @deepseek-ai/dsh 本身装不上:它依赖的 @deepseek-ai/dsh-agent-tool-mode 从未在 npm 上出现过。 | | 桌面应用 | 0.1.7-rc.2 | 在应用自带的运行时(即其更新 feed 发布的版本)上跑同样的启动冒烟。应用窗口和原生拖放不在 CI 覆盖范围内。 | 0.1.0-rc.8 之前的输入框没有附件槽:预览栏是输入框卡片正上方单独的一行,承载文件和文件夹;拖入或粘贴的图片进入卡片里输入框自己的图片条,受输入框自己的限额约束。 从 0.1.7 起,DSH 会拒绝安装、并在启动时跳过 peer 范围不包含它的插件——0.2.0 之前的版本在 0.1.7 上无法加载。更新的 harness 只有经 CI 验证后才会纳入;逐版本证据见上游兼容性。 桌面应用: 打开 插件 → 添加插件,粘贴发布地址后重启应用: ~~~text https://github.com/Crosery/dsh-drop/releases/latest/download/dsh-drop.tgz dsh plugin 命令行拒绝操作桌面 profile,所以只能通过插件页安装;升级已安装的插件同样需要重启。 Web: PATH 上有 pnpm,以及 DSH 支持的偶数 Node 主版本(CI:22.19 / 24)。安装预构建包,然后重启 profile: ~~~sh dsh plugin --profile web add https://github.com/Crosery/dsh-drop/releases/latest/download/dsh-drop.tgz tarball 已包含双半边产物,安装不用运行插件构建。固定版本时将 latest/download 替换为 download/v0.2.1。仓库同时提交了构建产物,因此 dsh plugin --profile web add github:crosery/dsh-drop 不需要任何构建授权即可安装;需要可复现时优先用打 tag 的 tarball。若本地 patch 已挂载 @crosery/dsh-drop,勿重复安装。 ~~~sh dsh plugin --profile web remove @crosery/dsh-drop 移除后同样需要重启。源码安装与发版流程。 文件如何抵达模型 | 文件 | 发送方式 | 预览 | | PNG / JPEG / WebP / GIF | 出厂图片附件,沿用模型能力、大小、数量校验 | 缩略图和图片灯箱 | | 通过输入框自带 + 选择的文件 | 出厂文件附件(0.1.3 起),由 DSH 上传 | 卡片显示上传进度、失败与重试 | | 其他图片 | 文件引用 | 浏览器支持时显示图片 | | 视频 / 音频 | 文件引用 | 原生播放控件,取决于编解码器 | | PDF | 文件引用 | 浏览器有 PDF 阅读器时可预览 | | Markdown / 代码 / 日志 / CSV / HTML | 文件引用 | 转义文本,前 64 KiB;不执行 HTML | | Office / iWork / 压缩包 / 未知类型 | 文件引用 | 文件名、大小、格式徽标;没有文档渲染器 | | 文件夹 | 一个文件夹引用 @/path/to/folder/;已知路径时直接引用原文件夹,否则连同目录结构复制 | 文件夹卡片显示文件数、大小和跳过的条目;列表以纯文本显示前 200 个相对路径 | 非图片文件成为 @路径,不是新的模型内容块。模型必须显式调用文件工具才看得到内容,因此大日志在被读取前只花一个路径的 token。文件夹成为一条带结尾斜杠的 @路径/——0.1.5 起模型的引用提示词说明这样的路径要列目录;0.1.1 把所有 @ 都当文件,模型读取时才会发现是目录。文件夹里的图片随文件夹一起走,不会变成图片附件。本插件不新增模型工具;它与 DSH Viewer 互补,后者负责模型向你展示文件。 1. 打开一个会话,把文件拖入或粘贴进页面。落在哪个输入框上就进哪个输入框,落在别处则进当前对话的输入框;暂不接收文件的输入框(子智能体的、正在发送的)会直接提示原因。混合批次中的图片仍走出厂通道。 2. 在同一条栏中检查卡片:路径就绪前卡片显示「准备中…」;点击预览,逐个移除不会改变你打的字。同一个文件拖两次只会加一次。 3. 输入要求,按 Enter 或点发送按钮。模型先收到你的话,再收到文件引用。只发文件时可以按 Enter,也可以直接点灰色的发送按钮。 文本预览 优先原文件,否则暂存 桌面应用: 应用会把每个拖入文件的真实路径告诉页面,引用直接指向原文件——不复制,之后的修改在模型读取时即可见。 Web: 浏览器 File 不提供 OS 路径。拖拽若额外携带本地 file:// 提示,Host 比对文件大小和修改时间(允许 2 秒误差),匹配普通文件则引用原路径。元数据匹配只是启发式,不代表字节完全一致,也不是权限检查。路径中含双引号或控制字符时无法写成引用,退回暂存。 否则字节流入 $DSH_HOME/drops/YYYY-MM-DD/。完整副本以不覆盖的方式发布,并发同名上传也不会互相改写。编辑副本不会回写原文件;想可靠引用工作区文件,用输入框 @ 补全。远程 agent 必须能读取 Host 路径;本插件不自动同步远程工作区。 文件夹 拖入的文件夹是一张卡片,发送时是一条引用。它和文件一样有两条路抵达模型: - 原位引用。 桌面应用里页面能拿到文件夹的真实路径,直接引用原文件夹:不复制,模型看到的是完整文件夹,包括 .git。Web 上若拖拽带有该文件夹的本地 file:// 提示,Host 会用文件夹里前八个文件(相对路径、大小、修改时间;不足八个就要全部描述)核对,核对通过才原位引用。 - 复制。 否则页面遍历文件夹,按原有目录结构上传到 $DSH_HOME/drops/YYYY-MM-DD//。所有文件到齐后副本才以该名称出现;重名时加后缀(proj-2)。忽略列表中的名称(.git、node_modules、.DS_Store、Thumbs.db、__MACOSX、.svn、.hg)会跳过,它们和无法读取的文件都会在卡片上计数。空的子文件夹不会重建。 超过复制上限的文件夹——文件数、总大小、单个文件超过 maxBytes 或嵌套层级——会整个拒绝并提示是哪一项上限,绝不只发一部分。文件夹还在读取或上传时,卡片显示进度,此时发送会被拦下并提示「等待上传完成」。移除卡片会取消上传,Host 删除已到达的部分。混合拖入时每一项各走各的路:一个被拒绝的文件夹不影响同批的文件和图片。 配置 0.0.1-rc.5–0.1.6:$DSH_HOME/settings.yaml 中命名空间 crosery-drop,修改即时生效。 0.1.7:settings.yaml 已取消。请在 profile 的 cordis.patch.yml 里给插件条目(id drop)写配置(需重写整个 config 块——patch 会替换该行的配置)。0.1.7 的一次性导入不会迁移 crosery-drop 段:它按段名寻找同名条目,而本条目叫 drop;旧值留在 settings.yaml.imported 里。0.1.7 的设置页不会为这些字段生成表单。 | 键 | 默认值 | 含义 | | maxBytes | 536870912(512 MiB) | 每个暂存文件的字节上限,复制文件夹时对其中每个文件同样适用;必须大于零。 | | keepDays | 30 | 按日期目录保留的天数,0 关闭清理。 | | folderMaxFiles | 2000 | 复制的文件夹最多包含的文件数。 | | folderMaxBytes | 536870912(512 MiB) | 复制的文件夹总字节上限。 | | folderMaxDepth | 32 | 复制的文件夹在其下方最多嵌套的层数。 | | folderIgnore | .git、node_modules、.DS_Store、Thumbs.db、__MACOSX、.svn、.hg | 复制文件夹时跳过并计数的名称,与每个文件或文件夹名精确匹配。 | 文件夹上限只作用于复制;原位引用的文件夹没有大小限制。 启动及保留期改变时清理过期日期目录,目录内手工放入的东西也会删除;其他名称的目录和零散文件不动。启动时还会删除日期目录里中断的上传留下的东西——30 分钟内没有写入的隐藏 .batch- 文件夹和 .incoming- 半截文件——keepDays 为 0 时也一样。移除卡片不会删除副本。 重要限制 - 未发送的非图片清单只存在页面内。刷新或卸载会丢失待发引用和预览,发送前需重新拖入。 磁盘上有副本不代表待发清单恢复了。 - 单个文件的复制没有字节级进度(文件夹显示已完成/总文件数),跨多次拖入也没有总磁盘配额。卡片仍在准备或上传时发送会被拦下并提示;未能暂存的文件会按数量提示。 - 复制文件夹会复制忽略列表以外的一切,包括 .env 这类机密文件,与单独拖入该文件相同。文件夹内的符号链接按浏览器的读取方式处理;Host 原位统计文件夹时从不跟随链接。 - 粘贴文件夹只是尽力而为:浏览器很少把文件夹放进剪贴板。 - 在 0.1.2 起的输入框上,引用在你发送的那一刻追加到消息末尾,再由输入框自己的 Enter 或发送按钮投递——Cmd/Ctrl+Enter 的 steer/排队、上传检查和斜杠命令都照常生效。若输入框拒绝发送(例如它自己的上传还没完成),追加的引用会被撤回,文件继续留在栏中。Shift+Enter、输入法组字、高亮中的补全菜单都不会被当作发送;停止按钮永远不会带走文件。Alt+Enter、AltGr+Enter 和 Ctrl+Cmd+Enter 在 0.1.7-rc.1 及之前的输入框上会发送,同样带上引用;0.1.7-rc.2 忽略这些按键,引用会被撤回,且有暂存文件时不会插入换行。textarea 输入框(0.1.1 及更早)仍由插件改写草稿并自行提交;补全菜单有高亮项时,Enter 仍是选中它。 - 已发出的消息若之后失败,输入框会把带引用的文字恢复到草稿供重试,引用不会回到附件栏。本插件无法新增通用文件内容块。 - 附件留在栏中时预览字节保存在内存里,发送或移除后即释放。预览显示的是拖入时的字节,模型读取的是实际文件。媒体、HEIC、PDF 支持因浏览器而异。 - 0.1.0-rc.8 之前,预览栏和输入框的图片条是两行:图片留在输入框自己的图片条里,由输入框绘制和移除;卡片上方的预览栏承载其余一切。 - 接管 single 附件席位而非加一条并列栏;其他插件若占用相同优先级可能冲突。卸载后恢复出厂栏。 安全 没有第三方上传服务、分析统计、自动执行或解压。暂存是 Host 写端点:文件名归约成单段(Windows Host 上遵循 Windows 命名规则)、限制大小、拒绝简单跨站 POST、不授予 CORS。复制文件夹时,Host 会重新清洗文件夹名和每个相对路径(不允许 . 或 .. 段、去掉控制字符、在 Windows Host 上替换 Windows 保留字符和保留名、限制字节长度),只写入该批次自己的私有目录,且从不覆盖已有路径。从 0.1.2 起三条路由还要求 harness 自身的登录鉴权(其 connection 检查),没有登录 cookie 的其他本机进程会被拒绝——CI 在每个做启动冒烟的序列上都会检查这一点。0.1.2 之前(0.0.1-rc.5 至 0.1.1)这些路由没有自己的鉴权:保持 DSH 仅本机可访问或置于认证之后,不向不受信任用户暴露宿主权限。同源插件拥有页面权限。 SVG 留在图片元素,HTML 只展示转义源码,PDF blob 强制 application/pdf;预览不提供顶层 blob 导航。默认保留期清理不等于安全擦除。参见开发与安全边界。 开发 ~~~sh npm ci npm run typecheck npm test npm run check:dist npm run build npm run check 仓库自足,依赖公开 pin 版本,不要求兄弟 checkout。AGENTS.md 路由到双语开发、PR、发版与兼容规范。CI 在 Node 22.19 和 24 上按此顺序跑以上门禁——check:dist 在 npm run build 重写 lib/ 之前用临时构建比对已提交的产物,构建后树必须保持不变——另跑两个 harness 组合——固定的 0.1.7-rc.2 开发序列和 0.1.1-rc.2 地板——每格都做类型检查、测试、peer 准入和打包插件的启动冒烟;第三格跟随桌面应用的版本。Harness compatibility 工作流每天对桌面应用 feed 与 npm latest / next / alpha 运行,每周扫描全部已发布的 harness 版本——除类型检查、测试和准入外,每个版本都装入打包后的插件并启动——并在 macOS 上对桌面应用本体运行。发版必须先让它要发布的那个 tarball 通过同一道门禁。 许可 MIT,包括原创图标和合成演示素材。源码起源于 Crosery 的插件工作区,本仓库是独立分发版本。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Crosery/dsh-drop
把文件拖进或粘贴进 DeepSeek Harness——Web…
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,359已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,514已汉化DSH
71.8
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,289已汉化DSH
71.6
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 92,675已汉化DSH
71.2
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,522已汉化DSH
71
这是你的仓库?认领条目