BookWeave is a [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/deepseek-harness) **Web client plugin**. It turns the sidebar into an EPUB reading workspace: a shelf, a distraction-free reader, excerpts, a network of every book mentioned in the text, and an AI-assisted **book guide** that summarises a chapter and turns its claims and evidence into clickable cards backed by the original paragraphs.
> Everything is local-first: EPUBs, excerpts, reading progress and AI results live in your browser's IndexedDB. The only network call is the optional "Analyze chapter" request to your configured model provider.
## Features
| | |
| --- | --- |
| **Shelf** | Import `.epub` by click or drag & drop; 2:3 portrait covers extracted from the EPUB; book title, author and reading percentage only. |
| **Reader** | Serif prose, adjustable font size, collapsible TOC, chapter navigation, remembered progress. No fixed header — the reading area and the right rail both start at the top of the window. |
| **Book list** | Extracts every book the current book mentions: 《》 titles, English “quoted title” cues and a curated lexicon, with noise filters (self-references, TOC, chapter headings, periodicals). Each entry links back to the paragraph where it appears. |
| **Excerpts** | Select text → red underline + excerpt card with an optional note; click an excerpt to jump back to the exact paragraph. |
| **Book guide** | A right-rail tab, left of Excerpts: it opens on the chapter you are currently reading and follows TOC / prev-next / locate jumps. Chapter picker, AI-generated chapter summary, and cards **ordered by where they appear in the text**. Claims render as an **argument chain**: the conclusion at the top, an up-arrow labelled “because”, then the reasons/examples/data beneath, each tagged with its relation. Every node shows an “original” excerpt and highlights/flashes the source paragraph on hover/click. |
| **AI analysis** | One explicit button per chapter. Fiction → plot summary in the book's own voice + plot beats; nonfiction → claims + evidence. Input is compressed to ≤6–8k characters, output ≤700 tokens, lowest reasoning effort, cached per book/chapter, never re-billed unless you press “Analyze again”. |
| **Book search** | From a book-list entry, open an in-plugin browser panel pre-filled with a **configurable search URL** (default: Open Library). Edit the template under Book list → **Search source**; use `{query}` for the title, and any search provider works. |
| **Export** | Export the whole book list as Markdown. |
| **i18n** | Chinese and English UI. |
## Install
**Requirements** — a DeepSeek Harness build with the Web UI. The AI half additionally needs the Host `llm` service (any provider that DSH can already call); without it, reading, excerpts, book lists and the heuristic guide still work.
### From GitHub (available now)
```sh
dsh plugin add github:adrianwang99/dsh-bookweave
```
### From npm (after the first npm release)
```sh
dsh plugin add dsh-bookweave
```
### From source (for development)
```sh
git clone https://github.com/adrianwang99/dsh-bookweave.git
cd dsh-bookweave
dsh plugin add .
```
Or, if you manage the profile manually, symlink the checkout into the profile and add a `link:` dependency:
```sh
ln -s "$(pwd)" ~/.dsh/profiles/desktop/node_modules/dsh-bookweave
# then add "dsh-bookweave": "link: