DSH PDF Reader
English | 中文
Read PDFs alongside your DeepSeek Harness conversation. Let the model find relevant passages, annotate them, navigate to the source, and return to your previous reading position.
I read papers and books in PDF form. The readers I tried lacked multi-step back navigation, while AI explanation and translation often required another subscription. I built this plugin for my own DSH workspace.
Features
- Read and navigate: continuous scrolling, zoom, thumbnails, text search, and multi-step back history with selectable destinations.
- Annotate and bookmark: highlights, underlines, strikeouts, comments, draggable and resizable notes, and editing of the PDF's built-in bookmark tree.
- Translate and explain: word meanings, pronunciation and examples; phrase and sentence translations; questions attached to multiple text passages or image regions, sent together to the current conversation.
- Agent control: read, search, annotate, edit bookmarks and fill existing AcroForm fields in the same draft as the user.
- Save and recover: undo/redo, draft recovery, save/save as, and source-file conflict detection.
- OCR and retrieval: region capture, text recognition and experimental semantic search with your own embedding service. Disk-backed indexes include scanned-page text and image descriptions, resume interrupted work, and survive restarts and annotation-only saves.
Screenshots
Click a screenshot to open it at full resolution.
Find passages by meaning
If you only remember the gist or aren't sure the book covers a topic, enable semantic search and ask in your own words. The model can find related passages, mark them, and take you there.Ask about multiple passages
When several passages or figures leave you with questions, add a question to each text selection or cropped screenshot in Explanation mode and send them together to the current chat.Jump back through your history
Lost your place after several jumps? Pick an earlier reading position from the back menu and go straight there.Create bookmarks from a scanned table of contents
When a scanned book has no bookmarks, the model reads its table of contents, matches the page numbers, and creates a clickable bookmark tree.Translate scanned text
Can't select text on a scanned page? Draw a box around the passage. The reader recognizes the text first, then shows the translation in the sidebar. You can also ask the model to translate directly in chat, and it will use the appropriate tools.
Install
Validated with DSH 0.2.2-rc.1. See package.json for supported versions.
Use the npm package name below, not a GitHub URL. The source repository does not include dist/; installing it directly leaves the entry files missing and prevents the plugin from loading.
GUI: open Plugins → Add plugin, enter
@dylanl1/dsh-plugin-pdf, install, then click Enable now.CLI: replace
<profile>with your profile:dsh plugin --profile <profile> add @dylanl1/dsh-plugin-pdfFor Desktop, install its bundled CLI through Manage dsh Command… in the app menu. Launch Desktop once, fully quit it, install with
--profile desktop, then reopen it. A separately npm-installed CLI cannot manage Desktop's plugins.
The plugin includes a small OCR model supporting Chinese and English. Select Local Tesseract OCR in PDF settings to use it (the default option).
Agent tools
- Documents:
pdf_current,pdf_open,pdf_close,pdf_info,pdf_status. - Reading:
pdf_page_read,pdf_page_render. - Search and evidence:
pdf_keyword_search,pdf_semantic_search,pdf_evidence_read. - Annotations:
pdf_annotation_list,pdf_annotation_create,pdf_annotation_update,pdf_annotation_delete. - Bookmarks:
pdf_bookmark_list,pdf_bookmark_edit. - Forms:
pdf_form_inspect,pdf_form_fill. - Navigation and saving:
pdf_page_jump,pdf_save. - Images:
ocr_recognize,image_understand.
pdf_open opens documents in the background; navigation requires a visible Reader. Agent edits go straight into the draft; overwriting the source still requires user approval. See the tool documentation for parameters and examples.
Extend engines
OCR, image understanding, translation and embedding support third-party implementations. Build an independent DSH Host plugin, declare this package as a peer dependency, register your backend with the corresponding service through the public SDK, and install it in the same Host profile. It then appears in PDF settings.
Start with http-engines in examples/, an independent plugin providing HTTP OCR and image-understanding backends. See engine extensions for API and lifecycle contracts.
Architecture
flowchart TB
Reader["Client · PDF Reader"] <--> RPC
Model["DSH conversation model"] -- "Tool calls" --> Features
subgraph Host
RPC["Authenticated RPC"] --> Features["PDF domain capabilities"]
Features --> Copy["Shared working copy · Drafts and undo"]
Features --> Search["Retrieval and evidence"]
Features --> Engines["Extensible AI engines"]
Search --> Copy
Search --> Engines
Search --> Index[("Disk index and checkpoints")]
Copy --> PDF["PDFium · pdf-lib"]
Copy --> Storage["Files and draft storage"]
end
The Reader and agent tools share Host business logic and a working copy within the same resource session; edits synchronize both ways. A native PDFium worker handles rendering and text extraction. See the architecture.
Development
npm ci
npm run native:build
npm run build
Checks and tests: npm run check, npm run test:web, npm run test:coverage:project. See also retrieval configuration and benchmarks and packaging and releases.
License
MIT. Published packages include the third-party licenses for their native components and dependencies.





No comments yet. Be the first to write one.