Introduction¶
When handling long documents in DSH, many people throw EPUBs into browsers or e-readers to read alone, while notes, excerpts, and AI analysis are scattered across other tools. The result is a disconnect between a book’s body text, the sentences you highlighted, and other book titles mentioned within it.
The plugin introduced below targets this fragmentation: BookWeave · 书脉 (adrianwang99/dsh-bookweave) is a DeepSeek Harness Web client plugin that transforms the sidebar into an EPUB reading workspace—a shelf, excerpts, a book list, and a chapter guide generated by AI that can link back to original text paragraphs.
The difference from “uploading a PDF and asking the model to summarize” is that it keeps the book, excerpts, and progress in the browser via a local-first approach. AI only calls the configured model when you explicitly click “Analyze chapter” or “Translate”.
What is BookWeave¶
BookWeave is a DSH Web client plugin maintained by adrianwang99. It transforms the DSH sidebar into an EPUB reading workspace: a categorized shelf on the left, a serif typeface reading area in the middle, and on the right, two tracks for the chapter guide and excerpts/notes.
It solves three isolated processes during reading: reading EPUB, recording highlights and thoughts, and tracking other books cited or mentioned in the book. The plugin puts the three together in one plugin window and allows AI chapter summaries to point back to the original text paragraphs.
The project License is MIT, version 0.19.1, engines.node requires >=20, and the declared platform is web.
Core Features¶
Here are the capabilities listed in the README, all verifiable.
Shelf and Import. The left sidebar allows creating/renaming/deleting categories; each book cover has a category selection. It supports one-click “Import folder” to recursively import all EPUBs in the selected directory (skipping duplicates), supporting both standard .epub files and decompressed .epub folders (containing META-INF/container.xml). You can also import .epub by clicking or dragging.
Reader. Serif body text with adjustable font size; the Table of Contents (TOC) is built from EPUB’s NCX/nav boundaries (Calibre split files are merged back into their chapters, parts are marked separately); supports chapter navigation and progress memory. There is no fixed header; the reading area and right track both start from the top of the window.
Book List. Extracts every book mentioned in the current book: including book titles enclosed in 《》, English titles with quotation marks, and a manually maintained vocabulary list, with noise filtering (self-references, TOC, chapter titles, journals). Each entry can jump back to the paragraph where it appears.
Excerpts and Notes. After selecting text, a red underline + excerpt card appears, which can have annotations. Excerpts and notes are rendered as the same type of card, with status markers, chapter/time, body text, and persistent Locate / Note (Excerpts only) / Edit (Notes only) / Delete buttons. When adding a new thought, its source paragraph is also listed; Locate is a real button.
Margin Notes. The reading column is narrower, saving the right column for handwritten font thoughts, anchored to their paragraph or selection. Each note can choose one of six ink colors; when displaying annotations, the quoted text is underlined with a dotted line of the same color. You can create them from the selected toolbar or the “+” on the margin. The floating toolbar uses animation to collapse/expand notes; when collapsed, each annotated paragraph has a colored vertical strip, clicking expands it again.
Chapter Guide. A tab in the right track, located to the left of excerpts, defaults to the current chapter and follows the TOC/next/prev page/Locate jumps. It contains a chapter selector, AI chapter summary, and cards sorted by text appearance position. Arguments are rendered as argumentation chains: the top is the conclusion, an upward arrow labeled “because”, below are reasons/examples/data, each marked with a relationship. Each node shows an “original” excerpt, hovering/clicking highlights and flashes the corresponding source paragraph.
AI Analysis. An explicit button per chapter. Fiction generates plot summary (using the book’s own tone) + plot beats; non-fiction generates arguments + evidence. Input is compressed to ≤6–8k characters, output ≤700 tokens, uses the lowest reasoning tier, cached by book/chapter; unless manually clicking “Analyze again”, no repeated billing.
Translation. Open the “Translate” panel, select target language from the dropdown, then click “Start” (no auto-translation). Translations are written back into the book and displayed as body text below each source paragraph, remaining after reopening. Clicking “Stop” stops further work and keeps completed paragraphs. A progress overlay appears after the body text during translation. Tasks run at the shelf level and continue in the background even after leaving the book, with progress shown at the top of the shelf. Batch processing, deduplication, and skipping already translated or target language paragraphs make it more efficient; if the model output format is wrong, it retries and splits.
Book List Search. From entries in the book list, you can open the plugin’s built-in browser panel, pre-filled with a configurable search URL (default Open Library). Edit the template in Book list → Search source, using {query} to represent the book title; any search provider works.
Export and Internationalization. Can export the book list as Markdown. The interface supports Chinese and English.
Installation and Enablement¶
First install via GitHub, which is also the path marked as “now” available in the README. The commands below are from the original README:
dsh plugin add github:adrianwang99/dsh-bookweave
Install from source (for development):
git clone https://github.com/adrianwang99/dsh-bookweave.git
cd dsh-bookweave
dsh plugin add .
If manually managing the profile, you can symlink the checkout directory into the profile and add a link: dependency:
ln -s "$(pwd)" ~/.dsh/profiles/desktop/node_modules/dsh-bookweave
# Then add "dsh-bookweave": "link:<absolute path>" to the profile's package.json
The author also listed an npm way:
dsh plugin add dsh-bookweave
But the README notes this is only available “after the first npm release”. Currently, the README still gives GitHub as the primary path.
After installing or updating the Host (index.js), you need to restart DSH (⌘Q on macOS); refreshing the page is enough if only changing the client. The manifest declared by the plugin is as follows, no need to fill it manually for a normal installation:
{
"dsh": {
"bundle": { "patch": "./cordis.patch.yml" },
"client": { "platform": "web", "immediately": true }
}
}
Typical Usage¶
The steps given in the Usage section of the README are as follows, you can follow them directly:
- Open “BookWeave · 书脉” from the DSH sidebar.
- Import EPUB (click the shelf, or drag the file to the window).
- Use the floating capsule buttons while reading (← Shelf, TOC, toggle right track, A−/A+, Export), they stay available while scrolling but don’t take up layout space.
- Open the right track → Guide (default). Select a chapter, optionally click “Analyze chapter”.
- Hovering over a guide card highlights the source paragraph in the body text; clicking scrolls and flashes that paragraph.
- Select text to create a new excerpt (Excerpts & notes tab) or a thought (handwritten margin note); the thought also appears in that tab with the source paragraph, persisted by book/chapter/paragraph.
- Translation: Floating Translate → Select target language → Start translation; there is a progress display, and completed paragraphs are written into the book. Stop translation stops further work, translated text stays below the source paragraph, and remains when reopened.
- Book list → Expand an entry, can locate that mention, or search for the book in the built-in browser. Search URL can be configured in Book list → Search source (default Open Library).
There is a version note about the TOC: Chapters are now built from EPUB’s NCX/nav TOC boundaries, not split by each spine file. Books imported before v0.17 retain the parsing structure of that time; delete and re-import once to get the corrected TOC.
Suitable Scenarios and Notes¶
Suitable for three types of people. First, those who want to immerse themselves in reading EPUBs in DSH and don’t want to leave the workspace. Second, those doing literature/references organization who need to list other books mentioned in a book centrally. Third, those who want to use AI at the chapter level to create outlines or translations with original source citations.
The prerequisite is: you need a DeepSeek Harness build with a Web UI. The AI part additionally requires the Host’s llm service (any provider DSH can call); without it, reading, excerpts, book list, and heuristic guide are still available.
A few points to note:
- The plugin runs with the permissions of the current DSH process; you should review the source code and license (MIT) before installing.
- Data is stored locally in the browser’s IndexedDB (EPUB, excerpts, reading progress, AI results); the only network call is the optional “Analyze chapter” request sent to your configured model provider.
- The book list relies on title extraction and vocabulary, which are heuristic results, so formal citations still require your own verification.
- Translation is explicitly triggered and written back paragraph by paragraph; note that unfinished parts will not be written after stopping.
Summary¶
BookWeave · 书脉 brings “reading EPUB, recording excerpts, organizing references, and having AI read along” into the same DSH client window, with the AI part explicitly triggered and with original sources. Directory page: https://www.skillhub.cn/plugins/adrianwang99/dsh-bookweave, Source code: https://github.com/adrianwang99/dsh-bookweave.