Preface

A common approach for writing long-form novels in DSH Desktop is to have the model continue writing directly in chat. Settings, characters, and foreshadowing end up scattered across multiple messages; revising outlines and editing prose are often mixed together, making it hard for authors to pace themselves between “finalizing the outline” and “writing the body.” The dsh-novel-companion (repo ling-long-ling/dsh-novel-writer, categorized as a workflow) released by community maintainer ling-long-ling breaks the process into stages: first complete worldbuilding, characters, and plot through questions; for each chapter, produce an outline first for the author to revise and finalize, then write the body; the panel and chat share a single JSON project file. This article introduces its positioning, capabilities, and how to install and enable it in DSH Desktop. Note: this is a third-party plugin, not an official DSH component; the community catalog SkillHub plugin page is not officially affiliated with DeepSeek/High-Flyer.

What is this

Novel-writing companion (package name dsh-novel-companion, current version 1.2.1, MIT license) is a third‑party plugin for the DSH Desktop Web GUI. It prompts authors stage by stage, like an editor (world → characters → plot), asking only one question at a time. Each chapter maintains three states: outline → writing → final. The outline must be revised and finalized by the author before the model writes the body. All projects are stored in the projects table under the novel_companion storage domain (a single JSON). The sidebar novel panel and the novel tool in chat read and write the same data, not two separate copies.

Core features

Novel panel and auto-save

The book icon in the left sidebar opens the main area. Authors can freely edit settings, outlines, and prose; auto-save occurs with about a 1.2-second debounce. The sidebar shows the word count for each book. Buttons at the bottom of the panel place composed questions or instructions into the chat draft bar (without impersonating the author or sending messages); after confirming, you can send them.

The novel tool and creative stages

In chat, the model operates the same project via the novel tool: list / create / switch stage / write settings / save outline / save prose / search.

The seven creative stages proceed in order: Learn about the author → Worldview → Characters → Plot → Chapter outlines → Write body → Closing. Switching stages is refused unless prerequisites are met (use force to skip).

Six setting modules: Core, Worldview, Characters, Plot, Setting rules, Style; each module has a draft / final status and a list of pending questions.

The model’s get can retrieve the full text of all six modules, all outlines, and body text within a budget; each chapter title is followed by a chapterId which must be copied when writing back to outline or prose (or use chapterIndex). By default, it expands the full text of the previous chapter plus excerpts from the beginning and end of the most recent 8 chapters, so writing chapter N can see the prior prose style; context can be none / recent / all.

Search example: novel action=search query=… searches for props, foreshadowing, and character names in settings, outlines, and prose, returning the chapterId and snippets for matching chapters.

Conflict protection and example project

Panel saves include a version number rev, so old snapshots will not overwrite content the model just wrote; half-completed documents (missing title / blocks / chapters / stage) are rejected outright.

A built-in example project “Fog Harbor Clock Tower” is included; click “Load example” in the panel to view the complete project structure.

Environment requirements

  • DSH Desktop (Web GUI; the README notes development and validation on DSH Desktop as of 2026-10)
  • Node.js ≥ 20 (used to run self-check scripts; the plugin itself does not depend on Node)

peerDependencies requires @deepseek-ai/dsh version >=0.2.0-rc.2 <0.3.

Installation and activation

It is recommended to have the DSH agent install it for you (by using install_bundle in the plugin manager). Tell the agent:

Install and enable the plugin package dsh-novel-companion

The manual installation steps are equivalent:

  1. Place the repository at a fixed path (the path must not contain spaces), for example on Windows: %USERPROFILE%\deepseek\dsh-novel-companion.
  2. Edit the current profile’s package.json (DSH Desktop default: %USERPROFILE%\.dsh\profiles\desktop\package.json) to add the dependency and bundle:
"dependencies": {
  "dsh-novel-companion": "link:C:/Users/<you>/deepseek/dsh-novel-companion"
},
"dsh": {
  "profile": {
    "bundles": [
      // …existing bundles…
      "dsh-novel-companion"
    ]
  }
}
  1. In that profile directory, run pnpm install so the link package is placed into node_modules.
  2. Completely exit DSH Desktop (including the tray and any residual processes), then reopen it—the Host half is loaded only once at startup.
  3. A book icon appears in the left sidebar; clicking it opens the novel panel.

Notes (excerpted from the README):

  • The plugin is installed into the profile via link (junction). The Host half can only import node:*, relative paths, or built-in @deepseek-ai/* packages; do not introduce private profile dependencies (otherwise you’ll get ERR_MODULE_NOT_FOUND).
  • Do not use PowerShell to directly rewrite source files containing Chinese (the encoding may corrupt Chinese text).
  • Modifying lib/index.js (Host half) requires fully restarting DSH Desktop; modifying the Client half only requires refreshing the page.

Default data location: %DSH_HOME%\storages\novel_companion.json (DSH_HOME defaults to ~/.dsh). You can back up this file directly.

Typical usage

  1. After installing and restarting, open the novel panel from the sidebar, create a new project, or load the “Fog Harbor Clock Tower” example.
  2. In chat, have the model use the novel tool to proceed through the seven stages; converge the setting modules between draft and final, then proceed to chapter outlines.
  3. For each chapter, first write/revise and finalize the outline in the panel or via the tool, then enter the body stage; use action=search when you need to look up foreshadowing.
  4. When you need to send fixed instructions to the model, use the buttons at the bottom of the panel to place them into the draft bar, confirm, and send.

The maintainer provides node scripts/verify.mjs (17 checks) and per-item scripts in the repo; to modify the Client you must edit lib/client.js.tpl then run node scripts/build-client.mjs. For more detailed panel usage and data formats, see 使用说明.md in the repo.

Use cases and cautions

Suitable for authors writing long-form novels in DSH Desktop who want a layered “settings—outline—prose” workflow and are willing to switch between chat and the panel. Not suitable for scenarios where you only want one-off improvisational continuation and do not need a structured project.

The plugin runs under the permissions of the current DSH process. Before installing, read the GitHub source and the MIT license, and judge for yourself whether to trust the maintainer ling-long-ling. The repository README states it is a third-party plugin; DSH and DeepSeek are trademarks of DeepSeek.

Closing

dsh-novel-writer (package name dsh-novel-companion) turns long-form novel creation into a staged workflow: asking questions to complete settings, letting the author finalize chapter outlines before writing the body, with the panel and the novel tool sharing a single JSON. Catalog page: https://www.skillhub.cn/plugins/ling-long-ling/dsh-novel-writer; source code and installation instructions: https://github.com/ling-long-ling/dsh-novel-writer.