dsh-file-upload
DeepSeek Harness dual-face plugin: Codex-style file references (@path), fully bundled document→Markdown (MarkItDown engine, 20+ formats), mature image handling (read_image for multimodal routes, automatic vision descriptions for text-only models), read_document tool.
一句话定位
DeepSeek Harness dual-face plugin: Codex-style file references (@path), fully bundled document→Markdown (MarkItDown engine, 20+ formats), mature image handling (read_image for multimodal routes, automatic vision descriptions for text-only models), read_documen…
安装方式
在 DSH 的 web profile 中执行下面的命令;装完刷新页面即可。
$ dsh plugin --profile web add dsh-file-upload@0.5.4
兼容的 DSH 版本
>=0.1.0-rc.6 <0.3.0
作者与热度
HongMing-Huang · ★ 28 · 更新于 2026-10-19
关于这个插件
dsh-file-upload
File-message plugin for DeepSeek Harness (dsh). Claude/Codex-style uploads — drag-and-drop (files and folders), paperclip picker, paste-to-attach, multi-file support; content sniffing; fully bundled document → Markdown conversion (MarkItDown engine, 20+ formats, image OCR); Codex-style @relative/path references; automatic image explanations for text-only models; and a read_document tool for agents.
English | 中文 Zero-config, install-and-use. Every feature works out of the box with sensible defaults — no Python, no downloads, no picking backends. Image explanations auto-discover a vision endpoint (local Ollama → OpenAI-compatible key from the dsh credentials seam). Features Upload — composer paperclip button plus a global drag-and-drop overlay ("release to attach"), multi-file support. Attachment cards — color-coded type badges (PDF red / DOC blue / XLS green / TXT gray / ZIP purple / JSON gold) with name and size; removable. Codex-style file references — uploaded files appear in the message as @relative/path references (like OpenAI Codex), never as raw content dumped into the composer; the agent reads the file with read_document (converted to Markdown on demand). Codex-style @ mentions — type @ in the composer to pick any uploaded file by its relative path; the reference inserts as a mention. Document → Markdown, fully bundled — the MarkItDown engine ships inside the plugin (Microsoft MarkItDown TypeScript port, markitdown-node): PDF / DOCX / PPTX / XLSX / HTML / CSV / JSON / XML / RSS / Atom / ZIP / Jupyter / image OCR / audio transcription. No Python, no downloads,
Usage
1. Click the paperclip in the composer toolbar, or drag files anywhere over the window; 2. Files appear as attachment cards and their @relative/path reference is inserted into the composer — the raw content is never dumped into the chat; the agent reads the file with read_document when it needs the content; 3. The agent reads documents with read_document — converted to Markdown on demand, pageable with offset/limit. MarkItDown (fully bundled — no downloads, no setup)
The MarkItDown capability ships inside the plugin. Works out of the box: no Python, no pip, no downloads, no build-script approval. Bundled engine — the Microsoft MarkItDown TypeScript port (markitdown-node) is a regular dependency covering 20+ formats: PDF, DOCX, PPTX, XLSX, HTML, CSV, JSON, XML, RSS, Atom, ZIP, Jupyter notebooks, images (OCR via Tesseract, 110+ languages), and audio transcription (via LLM, needs model credentials). Images — OCR to text by default through the bundled engine. Offline — all parsing runs locally, no network calls. Optional upgrade: if an official MarkItDown CLI already exists on your machine (or is set via markitdownBin), the plugin prefers it (adds EPUB and more); without one the bundled engine is always available.
Startup log (bundled mode):
How images are handled (Codex-style reference + auto-explained)
Every uploaded file — images included — lands in the composer as a clean Codex-style @relative/path reference (the raw content and absolute host paths never appear in the chat). Images additionally get content support based on what you