Zenjibad/dsh-any-attachment ↗★ 0
dsh-any-attachment
dsh bundle: attach any file type in dsh web — text-likes inline, binaries as workspace path references, rasters via the built-in pipeline
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Zenjibad/dsh-any-attachment说明文档
阅读完整 README ↗dsh-any-attachment
A DeepSeek Harness (dsh) plugin bundle that lets the Web UI attach files of any type: text-like files are extracted and inlined into the prompt, everything else becomes a workspace path the agent can read with its existing tools. Raster images keep flowing through the built-in image pipeline. No changes to the harness repo.
What it does
| Attached file | Result |
|---|---|
note.md, code.py, data.json, ... (valid UTF-8) | stored in the session's workspace; first 50 KB inlined into the prompt as text, with the path line |
report.pdf, archive.zip, song.mp3, ... (binary) | stored in the session's workspace; prompt gets only the path line — the agent reads it itself |
photo.png / .jpg / .webp / .gif | routed to the built-in image pipeline unchanged (visible to vision-capable models) |
Attach via the + button in the composer or by dragging a file onto the window. Pending files show as rows with name/size, download, a collapsible extracted-text preview, and removal; sending goes through the rail's Send with files button, which composes the path + extracted text into the message.
Files land in the session's workspace directory (/, deduped with a -2 suffix on collisions), so the agent can read, edit, or reference them with its normal fs tools and the sandbox policy applies as usual.
Install
dsh plugin --profile web add https://github.com/Zenjibad/dsh-any-attachment
Restart dsh web (or rely on the profile patch hot-reload), then hard-refresh the page.
Limits
| Guard | Value |
|---|---|
| Max bytes per file | 25 MB |
| Max files per message | 8 |
| Inlined text per file / per message | 50 KB / 100 KB |
| Name | basename only; traversal, separators, drive letters rejected |
| Upload target | the session's own cwd, resolved server-side |