鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

dsh-table-attach

把表格与文档(xlsx、csv、pdf、zip…)粘贴或拖拽进 DSH 输入框即可附加:文件会保存到会话工作区并插入 @引用。

工具能力
访问 GitHub
文档README

dsh-table-attach

Paste or drag tables & documents (.xlsx, .csv, .pdf, .zip, …) into the DSH web composer. The file is saved into the current session's workspace and an @reference is inserted at the caret, so the agent reads the real file.

The official DSH composer only accepts images (PNG/JPG/WebP/GIF) on paste/drop. This plugin adds non-image file attachments.

Features

  • Paste & drop: works for file pastes (⌘C a file, then paste) and drag-and-drop.
  • Any non-image file: spreadsheets, CSVs, documents, PDFs, archives, JSON, …
  • Saves into the session workspace: files land in <workspace>/attachments/ (auto-renamed with a -1/-2… suffix on name clashes).
  • Inserts an @reference: e.g. @attachments/report.xlsx (quoted as @"attachments/my report.xlsx" when the name contains spaces) — matching the host's @-mention grammar so the agent can read the file.
  • Safe by default: 50 MiB size cap, executable extensions blocked (.exe, .dll, .sh, .js, …), and path-traversal-proof file names.
  • Images untouched: PNG/JPG/WebP/GIF pastes/drops still go through the built-in image path.
  • i18n: zh / en toasts and drop-hint overlay.

Install

Currently distributed from GitHub (npm publishing pending):

▼
bash
复制代码
dsh plugin add github:yybukn/dsh-table-attach

For local development:

▼
bash
复制代码
dsh plugin --profile web add /path/to/dsh-table-attach

Usage

  1. Open any session (it provides the workspace).
  2. Drag a .xlsx / .csv / .pdf / .zip … into the composer, or copy a file and paste it into the composer.
  3. A toast reports progress; on success the composer contains @attachments/<file>.
  4. Send the message — the agent can read the referenced file.

Pasting table cell text (copied out of Excel) is treated as ordinary text and passes through untouched; it is not converted into a file.

How it works

  • Host side (lib/index.js) registers a Typert Remote service tableAttach.saveFile(agent, payload). It validates the payload, keeps the path inside the session workspace, de-duplicates file names and writes with 0o644. It runs as a cordis plugin (no build step — plain ESM + zod).
  • Client side (lib/client.js) is a web bundle. It intercepts paste/dragenter/dragover/drop at the document level before the conversation plugin's handlers, base64-encodes the file, calls the host remote, and inserts the @mention into the composer (which is a Lexical contenteditable — insertion goes through execCommand("insertText"), the same beforeinput path the editor itself uses).

Security

  • Files larger than 50 MiB are rejected before bytes cross the wire.
  • Executable extensions (.exe, .dll, .app, .sh, .js, .jar, …) are blocked.
  • File names are sanitized (no directories, control characters, dotfiles or traversal), and the target path is verified to stay inside the workspace.
  • The agent only ever sees the workspace-relative reference, never an arbitrary absolute path.

Development

▼
text
复制代码
dsh-table-attach/ ├── lib/ │ ├── index.js # host: cordis plugin + Typert Remote service │ └── client.js # browser: interception, upload, composer insertion ├── cordis.patch.yml # loader entry for the host bundle ├── dsh.plugin.json # plugin manifest └── package.json # exports ./client for the web platform

The host runs in the DSH harness (Node); the client runs in the web GUI. When installed from npm the host's peer deps (@deepseek-ai/cordis, @deepseek-ai/dsh-typert-protocol, zod) resolve from the profile's shared dependency closure. A local link: install outside the profile needs those deps made resolvable (e.g. node_modules symlinks into the app bundle) — these are not part of the package and are git-ignored.

License

MIT

工具能力

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:yybukn/dsh-table-attach

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题
dsh 插件推荐
dsh-live-canvas
在隔离的 iframe 沙箱中实时渲染 Agent 生成的 HTML、React (JSX/TSX)、Vue、SVG、Mermaid 和 Markdown,支持 SSE 热重载,并提供 DOM 点击检查器、并排视觉对比、响应式设备矩阵和一键 Vite ZIP 导出。
dsh-plugin-model-capability
DSH 网页端对话导航点 — 快速跳转用户消息。
dsh-firecrawl
通过 Firecrawl Cloud API 把 URL 抓成 LLM 可用 Markdown,或搜索网页并返回结果内容。
dsh-browser-use
Browser Use 云端桥接:通过 Browser Use API 让 dsh agent 执行真实网页任务,包括打开页面、点击、输入、填表和提取数据。
dsh-frecency
为 DeepSeek Harness 提供常驻索引 grep,以同名遮蔽内置 grep/glob 工具:重复内容检索命中按访问/修改 frecency 排序的内存索引,glob 在可用时对齐内置 ripgrep 语义、不可用时回退索引。