DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Table Attach — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
T

dsh-table-attach

Table Attach

将非图片文件(xlsx/csv/pdf/zip…)粘贴或拖放到 DSH 网页编辑器中:文件会保存到会话工作区,并插入一个 @reference。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:yybukn/dsh-table-attach#02246642068df431282cb5fc8c09d39985706983
README兼容性版本

兼容性与来源证明

Table Attach 以 dsh-table-attach 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/8/31

版本

0.1.0stable
2026/8/31

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/8/31
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Deepseek Ipptdeepseek-ipptiPolloWork PPT Studio 及其精选幻灯片模板,作为原生 DeepSeek Harness 对话视图。Mnemondsh-mnemon面向 DeepSeek Harness 的可组合三层记忆控制平面:持久化运行时上下文、可搜索的项目文档、可插拔的长期记忆、受保护的策略、WebUI 和无头工具。Codex Ui@michengai/dsh-codex-uiDSH Codex UI — 为 DeepSeek Harness Web 提供 Codex 风格侧栏、工作区会话树、全局搜索和轮次导航Rewind Plugindsh-rewind-plugin同窗口内对话回退并恢复工作区文件

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):

dsh plugin add github:yybukn/dsh-table-attach

For local development:

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

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