All plugins

DSH / BUNDLE / CLIENT-UI

dsh-attachment-formats

v0.6.4genusamblyrhynchusbrunooftoul602 / dsh-attachment-formatsf92dc1ef2a

InstallableBundlesUI & client pluginsCommunity · Topic auto-analysisWeb UI

Overview

dsh-attachment-formats

Codex-style attachment format expansion for the DeepSeek Harness Web GUI: PDF text-layer extraction (pymupdf4llm / pdfjs), Office text extraction, long-document spill + index cards, scanned-PDF OCR (tesseract.js), and browser-decodable images to PNG.

README / EN

Package documentation

Registry summary

Codex-style attachment format expansion for the DeepSeek Harness Web GUI: PDF text-layer extraction (pymupdf4llm / pdfjs), Office text extraction, long-document spill + index cards, scanned-PDF OCR (tesseract.js), and browser-decodable images to PNG.

dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.

Read the full README on GitHub

LIMITATIONS

Known limitations

- OCR (tesseract.js) quality is limited on low-resolution scans and complex tables; insufficient confidence falls back to page images with an explicit note — garbled text is never injected. Higher-quality OCR (RapidOCR/MinerU/PaddleOCR) can be added as pluggable backends later (see `docs/upgrade-v6.md`). - The pymupdf4llm high-fidelity engine handles ≤40-page PDFs only (larger documents use the fast pdfjs engine); table/formula reconstruction is good but not typesetting-grade — layout details can be cross-checked against page images. - Scanned PDFs without a text layer can only go the page-image route when OCR is unavailable or fails (vision models can read them). - Legacy `.doc/.xls/.ppt` require LibreOffice (`soffice`); `rtf` requires pandoc; `epub/odt` work out of the box but pandoc (if installed) gives better fidelity. Missing binaries produce clear, actionable errors — nothing is silently dropped. - DOCX formulas and embedded images are not extracted (tables, headings and text are). - XLSX outputs displayed text/results only; charts and comments are not extracted. - Outlines prefer bookmark TOCs; PDFs without bookmarks fall back to font-size heuristics (weak on documents without strong heading styling) — the index card still carries line/page counts and reading pointers. - iWork and archives are not converted yet. - Attachments are attributed to the shell's **current conversation** (the one being viewed). Text/document cards therefore land in the dialog you are looking at. Converted page images go through the harness's native drop pipeline: if the current conversation is mid-reply it temporarily refuses drops, so the plugin waits for it to become idle before feeding the images. With several conversations open at once, other *idle* conversations may also accept that same synthetic drop — a harness-level behavior the plugin cannot scope; prefer attaching images with a single conversation open (text/code files are unaffected: they always stay in the current dialog). - The "merge on send" for document cards bridges into the React controlled input over DOM events — an adaptation to an unpublished harness API; if a core upgrade breaks it, the symptom is "card content didn't enter the message", and the card's **send** button is the fallback (synthetic Enter path). The image path is never affected.