Preface¶
When doing long-form creative writing in DeepSeek Harness (DSH), the difficulty often isn’t “can we generate a piece of text,” but whether the context can keep up: character consistency, whether foreshadowing gets dropped, and repeatedly flipping through files to recall what was written in earlier chapters. The community plugin dsh-novel-workbench (Novel Workbench) consolidates chapter progress, material organization, candidate draft workflows, and plot inspection into a single-page interface, using plain files in convention-based directories to hold data, making it easy to manage with Git. Below we introduce what it does, how to install it, and how to use it typically.
What Is This¶
dsh-novel-workbench is a workflow category plugin for DSH, released by maintainer ShanJun-pro-max. It can be found in the SkillHub catalog and the GitHub repository. Its positioning is “a one-page novel creation workbench for DeepSeek Harness”: it doesn’t write the entire book for the author, but assembles the writing pack needed when writing a specific chapter—previous text, outlines, character cards, and checklists—and supports extracting writing techniques from approved finished books, writing them into preference profiles, and using them when generating candidate drafts.
Old workflows often involved opening multiple files—outlines, character cards, previous chapter texts, and foreshadowing lists—every time a new chapter began, easily scattering context. This plugin, at “start new chapter” time, selects materials according to rules (e.g., full-text plot summaries of the last 10 chapters, one-line summaries of earlier chapters, outlines of the current and adjacent chapters, about 1400 characters of the previous chapter’s ending text, only loading character cards that appear in the current chapter, etc.), and explains what materials were read and how much was saved, avoiding black-box behavior.
Core Features¶
Starting New Chapters & Candidate Drafts¶
In the sidebar “Novel Workbench,” the Candidate Drafts workflow is roughly:
- Edit the chapter settings (targets, what must not happen, characters appearing, requirements).
- Have the model propose multiple writing direction options; check the ones to write.
- Generate candidate drafts one by one, with progress visible and ability to stop anytime.
- Mark paragraphs in candidate drafts with 👍/👎, then merge drafts to finalize.
The right side of the dialog has a “Chapter Opening Checkup” (expanded by default): tension curve, structural issues related to the chapter, chapter precautions, outstanding foreshadowing debt, and other information blocks; some blocks are computed by local rules, and only operations that call the model (like generating directions) consume LLM.
Writing Packs & Chapter Management¶
The Chapters page shows overall book progress, allows editing titles, and uses “Summarize” to generate plot summaries. The writing pack assembly strategy has a complete list in the README (recent chapter summaries, exception escalation to full text, outline pruning, character cards loaded only when names and aliases appear, etc.).
Plot Summaries with Index Headers¶
Generated plot summaries can carry YAML indexes in the Markdown header (such as chapter, characters, location, planted, paid), facilitating machine queries like “which chapter did a certain character exit”; the body text is still written according to author habits. Fields like characters are extracted by rules from the body text and known character names, without additional model calls.
Alias Recognition¶
Scans appellations like “Brother Li” and “Mr. Xiao” in the text, providing speculation basis based on co-occurrence windows (about 50 characters around the occurrence position); same surnames are not forcefully excluded. After author confirmation, they are written to the character card’s 别称 field, and indexes, consistency checks, and writing pack character selection will all recognize them.
Plot Health Check¶
Includes tension curve (scoring based on text conflict signals), foreshadowing debt (pairing outline “planted/paid”), and consistency (e.g., summaries missing people, character cards with no appearances, missing index headers, etc.; the README marks some checks as pure rules with no model cost).
Preference Profiles & Cross-Book Inheritance by Genre¶
Annotated paragraphs can be compressed into reusable writing rules, stored in preference profiles under the work; after binding by “genre,” the genre library is located at ~/.dsh/novel-studio-types/, and new books of the same genre can inherit these rules.
Finished Book Library (Work Analysis)¶
The “Work Analysis” in the preference profile page can import finished books in .txt, .md, .docx, .epub formats, and through steps like coarse scan, close reading, summarization, and cross-book fusion, obtain executable writing standards; can be “written into preference profiles.” Writing packs will carry benchmarking writing conclusions (without feeding the full original text of finished books, avoiding context bloat and plagiarism risks). Finished book related data lands under ~/.dsh/novel-learn/.
Settings, Recycle Bin & Security¶
You can browse and edit files in the settings directory; deletions go to the recycle bin first. Automatic backups to .dsh-novel-studio/备份/ before modifying body text, summaries, or settings; the interface only accepts local loopback requests, with read/write limited to agreed extensions within the work directory. The plugin accesses local files with the current DSH process permissions; before installing, it’s recommended to read the source code and MIT license on GitHub to confirm it meets your usage environment.
Installation & Activation¶
Installation has two steps: install the package and mount into the profile bundle layer; only doing the first step may mean the entry doesn’t appear in the interface. --profile must be written before add (newer dsh requires this), for example use web for the web side, desktop for the desktop client, and when unsure you can check directory names under ~/.dsh/profiles/.
1. Install Package¶
Recommended npm (README says mirrors can be configured in China):
dsh plugin --profile web add dsh-novel-workbench
If using the GitHub source (same package as npm):
dsh plugin --profile web add github:ShanJun-pro-max/dsh-novel-workbench
If written as dsh plugin add --profile web …, it may error with error: required option '--profile <name>' not specified, because --profile belongs to the plugin subcommand, and writing it after add will pass it to pnpm.
2. Mount into Bundle¶
node ./node_modules/dsh-novel-workbench/install.mjs web
The script will write dsh-novel-workbench into dsh.profile.bundles in ~/.dsh/profiles/web/package.json; you can also manually add a line dsh-novel-workbench to the bundles array in that JSON. The README emphasizes: dsh plugin add only installs to node_modules, cordis.patch.yml takes effect only through bundles. Don’t manually copy files into the plugin directory under node_modules, to avoid inconsistency with the pnpm ledger causing the host to fail to start.
3. Restart & Update¶
After restarting DSH Web, the “Novel Workbench” should appear at the bottom of the sidebar; you can check the current version number at the bottom of the left navigation in the interface.
When updating, use update instead of repeating add:
dsh plugin --profile web update dsh-novel-workbench
Then restart DSH Web. The bundles only need to be configured once.
Runtime environment: package.json requires Node >=20; starting new chapters, summarizing, alias recognition, etc. depend on the LLM configured in DSH, you can specify the model in plugin settings or use the dsh default model.
Typical Usage¶
Work Directory Convention¶
Minimal structure example (missing items will be highlighted in red in the interface, not all are mandatory):
YourNovel/
├─ 大纲.md
├─ 正文/
│ ├─ 第001章-标题.txt
│ └─ 第002章-标题.txt
└─ 剧情/
├─ 第1章 剧情总结.md
└─ 第2章 剧情总结.md
It’s recommended to add 设定/ (project setup, worldview, character settings, _口径.md, etc.) and 人物/*.json character cards.
In-Plugin Settings¶
Sidebar → Novel Workbench → Settings:
| Field | Description |
|---|---|
| Candidate Directory | Candidate draft directory, e.g. …/作品/.dsh-novel-studio/候选稿/第12章 |
| Work Root | Leave empty to auto-detect upward from candidate directory |
| Model | Leave empty to use dsh’s current default model |
Daily Workflow¶
- Maintain body text and plot summaries in “Chapters”.
- Use “Start New Chapter” to generate directions and multiple candidates, merge and finalize, then write to the body text directory.
- Check tension, debt, and aliases in “Plot”.
- Accumulate rules in “Preference Profiles”; when benchmarking writing style, use “Work Analysis” to import finished books and write into profiles.
- Accidentally deleted content can be restored from “Recycle Bin”.
Candidate drafts and annotations etc. land under <作品>/.dsh-novel-studio/; body text, plots, and character cards remain in the work directory, all as plain files.
Use Cases & Notes¶
Suitable for authors writing Chinese web novels and long-running serials in DSH Web, and willing to manage outlines, body text, summaries, and character cards with a fixed directory structure. Not suitable for scenarios expecting “zero files, fully automatic ghostwriting”: the plugin’s core is organizing context and workflows, and model calls are still triggered and paid for by you.
The DeepSeek Harness ecosystem emphasizes “everything is a plugin”; SkillHub etc. are community catalogs, with no official affiliation with DeepSeek/幻方. This plugin’s stars and issue entry are visible on GitHub; specific activity levels are subject to the repository.
If there’s no entry in the sidebar, first complete both installation steps and restart; if still invalid, hard refresh the browser cache. If installing from GitHub produces ERR_PNPM_GIT_RESOLVE_FAILED, it’s mostly due to network being unable to access github.com, requiring a proxy or switching to npm source, unrelated to plugin logic.
Conclusion¶
dsh-novel-workbench consolidates chapter-opening material selection, candidate draft drawing, plot indexing, alias and plot health checks, preference profiles, and finished book writing techniques into DSH’s one-page interface, with data remaining in local files. To learn about categories and descriptions, open the SkillHub plugin page; installation commands, directory conventions, and troubleshooting are subject to the GitHub README.