Preface¶
The core idea of DeepSeek Harness (DSH) is “everything is a plugin.” For developers or agent builders, handling long documents (such as technical blogs and research reports) is a common need. Interacting directly with large models has issues such as context window limits, difficulty maintaining style consistency, and loss of state (for example, when a session is interrupted).
dsh-writing-studio is a DSH tool plugin intended to turn long-form writing into a resumable, reviewable, and assemblable pipeline. It does not call the model directly. Instead, it acts as a state machine and persistence layer, working with the model in the current session to complete writing, revision, and review.
Core Features¶
This plugin provides long-form workflows, style control, commonly used writing templates, and persistent storage.
- Long-form workflow: supports the full process from project creation, outlining, section drafting, section review, to final assembly.
- Style control: guides model output by configuring genre, tone, audience, language, perspective, word-count target, and custom constraints.
- Common templates: includes 8 templates (Official account articles, technical blogs, weekly reports, novel chapters, Xiaohongshu notes, speeches, research reports, usage tutorials), each with a default outline and writing prompt.
- Persistence: each project corresponds to one JSON file, storing the outline, drafts, review records, and history, and supporting continued writing across turns.
Installation and Enablement¶
The plugin is installed by local link and requires Node.js version 20 or higher.
- Clone the repository and enter the directory:
git clone https://github.com/tea-whale/dsh-writing-studio.git
cd dsh-writing-studio
- Run the installation command in the current directory:
dsh plugin --profile web add link:$(pwd)
In Windows PowerShell:
dsh plugin --profile web add link:D:\path\to\dsh-writing-studio
- Restart
dsh webto complete registration. - Verify that the installation took effect:
dsh --profile web --dump-config
Check whether the output contains `id: writing-studio`.
Uninstall command:
dsh plugin --profile web remove dsh-writing-studio
Typical Usage¶
After restarting a DSH Web session, you can issue instructions directly and let the model run the workflow automatically.
-
Automatic flow:
Enter in the conversation:
> Use the writing tool to help me write a technical blog post titled “Introduction to DeepSeek Harness Plugins,” targeting 3000 words, for developers who know how to code.The model will call in sequence:
writing_templates(select template) →writing_project_create(create project) →writing_section_save(draft sections) →writing_section_review(review) →writing_assemble(assemble final draft). -
Manual control:
Insert commands at key points:writing_status: view current project status and next-step suggestions.writing_section_read: retrieve a section draft and writing goal (for continuing).writing_section_save: save a section draft (save one section as it is written).writing_section_review: record review comments or a revised draft.writing_assemble: assemble the final draft.
Tool List¶
| Tool | Purpose |
|---|---|
writing_templates |
List the 8 templates with their default outlines, styles, and writing prompts |
writing_project_create |
Create a project using a title + template |
writing_project_open |
Open an existing project and restore full state |
writing_projects_list |
List all projects and progress under the working directory |
writing_status |
View current project status and next-step suggestions |
writing_style_set |
View / modify style parameters and word-count target |
writing_outline_set |
Replace the outline and main idea |
writing_section_save |
Save a section draft |
writing_section_read |
Retrieve a section draft and writing goal |
writing_section_review |
Record review comments / issue list / revised draft / final draft |
writing_assemble |
Assemble a complete Markdown manuscript with front matter |
Storage Layout¶
By default, a .writing-studio subdirectory is created under the DSH session’s working directory.
<working directory>/
└── .writing-studio/
├── projects/
│ └── <project name>.json # style, outline, section drafts, review records, and history
└── manuscripts/
└── <project name>.md # assembled final manuscript
- Project files are plain JSON and can be committed to Git or manually edited.
config.rootDircan change the default directory name (default.writing-studio).config.storageRootcan specify an absolute path as the storage root and takes precedence overrootDir.
Notes and Known Limitations¶
- Zero runtime dependencies: the plugin uses only Node.js built-in modules and does not depend on external libraries.
- Does not call the model: writing, modification, and review are completed by the model in the current session; the plugin only acts as a state machine and persistence layer and does not consume extra API calls.
- Style is a “prompt contract”: style fields are instructions to the model, not automatic style detection; final quality depends on model capability.
- Default overwrite:
writing_assembleoverwritesmanuscripts/<project name>.mdby default. If multiple versions are needed, specify a file name with theoutputparameter. - Global registration: the plugin is registered globally. If global tools are explicitly trimmed in an agent preset, the
writing_*tools will also be trimmed. - Multi-project handling: when multiple projects exist in the same working directory, omitting the
projectparameter raises an error; a project name must be explicitly specified. - Concurrency protection: the plugin uses in-process locks + exclusive creation to protect concurrent writes. It is safe within a single process, but overwrites can still occur when different processes write to the same file simultaneously.
Ecosystem and Resources¶
- Repository: https://github.com/tea-whale/dsh-writing-studio
- DSH Ecosystem: https://www.skillhub.cn/plugins/tea-whale/dsh-writing-studio
- DeepSeek Harness: https://github.com/deepseek-ai/deepseek-harness