ZenStory AI

Start writing with AI

Write a novel with DeepSeek: pick a workspace, keep drafting

Oh Story DSH · Updated 2026-10-15

To write a novel with DeepSeek, choose by where the writing lives: ordinary DeepSeek chat for one-off tasks, a local DSH workspace for a whole manuscript. Use an ordinary DeepSeek model chat for a disposable brainstorm, outline critique or scene rewrite that you will copy into your own manuscript. Use DeepSeek Harness (DSH) plus the community Oh Story DSH plugin when you want a local writing folder, persistent sessions, creation skills and a file/editor/Chat workbench. Use the separate ZenStory Workbench at app.zenstory.ai when you want an account-based browser project with nothing to run locally. These sit on different layers: DeepSeek is the model/provider choice, DSH is the agent host, @oh-story/dsh is a community plugin for that host, and ZenStory Workbench is a separate application. The plugin runs inside DSH; an ordinary DeepSeek chat does not load it. For the broader difference between chat, skills and agents, see AI agent skills for writers; for a field-by-field comparison of the three ZenStory AI writing environments, see the workflow comparison. Already have a draft? Start by naming the latest accepted manuscript, the last complete chapter and any unfinished section, then ask for the next step. The worked archive mystery below shows how to turn those materials into a next-scene choice before importing or changing files, and the last step gives a paste-ready prompt that makes the agent continue from the project's state files.

Method fromstory-import2 method files

Part of Oh Story DSHSource on GitHub

Before you start

  • For ordinary chat, bring only the excerpt and constraints needed for that one task. Keep your own manuscript as the durable source, and copy any chat answer you want to keep back into the writing project yourself.
  • For the local DSH route, use Node.js 24+ and a folder you are comfortable granting to the DSH workspace. The pinned installation below uses DSH 0.2.0-rc.2 and the community plugin @oh-story/dsh@0.1.15.
  • Configure a model/provider in DSH before asking it to generate text. The source supports adding a provider and API key under Settings → Models, or setting DEEPSEEK_API_KEY before launch. DSH owns model configuration, model credentials, permissions and sessions; the plugin adds creation skills and workbench views.
  • For ZenStory Workbench, use https://app.zenstory.ai as a separate account-based workflow. A local DSH workspace, the DSH plugin installation and ordinary DeepSeek chat history each stay in their own environment.
  • For an existing draft, keep a separate backup and name the manuscript files, any unfinished chapter, and the relevant settings or old plan. A discarded outline stays a proposal; nothing in it has happened in the story. State whether this turn may only discuss options, create planning files, or change prose.

Steps

  1. Pick the smallest environment that matches the job For one question (three premise variants, feedback on a synopsis, or a rewrite of one supplied scene), ordinary chat keeps setup low. For an 80,000-word draft or a serial whose settings, chapter plans, prose and continuity must survive later sessions, use DSH plus the plugin. If the manuscript should live in an account-based browser project and you do not want to run a local DSH process, use ZenStory Workbench. If you already use another supported coding-agent host, follow the separate agent-skills guide; the DSH plugin installs into DSH only.
  2. Install the community plugin in DSH Web Run the versioned command in the example. It temporarily supplies pnpm because DSH's plugin add needs it, installs @oh-story/dsh into the web profile, and then starts DSH Web. Keep the terminal running. If a browser does not open, use the complete local URL printed by DSH and keep its first-auth token to yourself.
  3. Configure the model at the host layer In DSH, add the provider and model under Settings → Models, or start DSH with DEEPSEEK_API_KEY present when that is the provider you intend to use. This configuration belongs to DSH; the Oh Story plugin leaves models alone. You can read existing files before configuring a model, but generating new prose requires a configured model.
  4. Open the writing folder before prompting Use the plus button beside Workspaces, add the folder that should own the novel, choose that workspace and open a session. An empty folder initially stays in native DSH Chat. The novel workbench appears after recognized story files are created; a visible tab is a view of the same DSH workspace, run by the same DSH agent and unrelated to any ZenStory account.
  5. New book: start with a bounded brief Use /story-long-write 帮我开书 (or the English intent in the example) and state genre, reader promise, protagonist, central pressure, length target, viewpoint, tone, hard exclusions and the desired stopping point. The bundled opening workflow asks you to confirm the direction, core settings, volume outline and first batch of ten chapter blueprints in turn. It advances after each confirmation and stops before prose.
  6. New chapter: name the chapter and its ending After approving the setup, explicitly request /story-long-write 写第1章. Check the actual file under 正文/, its matching file under 大纲/, and the relevant settings; the files are the record, and the chat summary only points to them. Give corrections as concrete constraints (which fact, voice, reveal boundary or ending beat must change), then request a revision of the named chapter.
  7. Existing draft: discuss the next scene before importing In the same workspace, name only the manuscript and setting files needed for the question. Ask for accepted facts, what the viewpoint character knows, unresolved hypotheses and two possible next scenes. Mark the unfinished tail separately. A plain Chat-only request can prohibit file creation, moves, prose generation and media calls; this discussion stays in Chat and leaves the project files and workbench as they were. In the example, recognizing a handwriting habit raises a question; who wrote the entry stays unknown.
  8. Choose discussion, full import or an existing project Keep a one-scene discussion in Chat if that is all you need. For a standalone manuscript that you want to turn into a writing project, the bundled /story-import accepts text files, a directory or pasted text, confirms scope and whether the last chapter is complete, then runs the full analysis pipeline before migration, a much heavier operation than loading a fragment. Choose whether to continue from the unfinished chapter or finish it before importing. If the book already has current-format 追踪/_tracking-state.json, confirm the active book and skip the re-import. DSH supplies the bundled roles, so leave other hosts' agent directories out of this route.
  9. Choose a consequence, then request the right kind of writing Choose between next scenes by what the protagonist must risk or give up. Separate approval of a new chapter plan from permission to write prose. A genuinely new chapter can use /story-long-write 写第N章; an existing partial chapter needs an explicit revision/completion request that protects its opening and works on the existing file. The bundle defaults to one named chapter, while daily continuation defaults to two or three; say which chapter and where to stop. Reopen the same workspace on later visits and back up manuscript files separately from DSH profile configuration.
  10. Later sessions: have the agent read the state files first When settings and foreshadowing live only in the chat history, the transcript keeps growing and the facts this chapter needs get diluted by everything else. The bundled long-form workflow therefore manages the project in files: 追踪/_tracking-state.json is the single structured source of truth, 追踪/上下文.md is the continuation state card read in full for each chapter, and core characters' current snapshots sit in 追踪/角色状态/. Before drafting, it keeps only what the chapter would get wrong without: character state, the causes behind foreshadowing, and world rules. If the chapter outline is missing or contains fewer than 30 characters after removing # and whitespace, DSH's tools/pre-execute hook blocks the prose write; run /story-long-write 补纲 first. In a new session, paste this and replace the brackets: “/story-long-write 写第[N]章. Treat the project files as canon and the chat history as background. Before drafting, read 追踪/上下文.md and the chapter [N] outline in 大纲/; list the current state of every character in this chapter, the foreshadowing to advance or pay off, and the rules in play. If the files disagree with each other or with this message, report the conflict and wait for me. Write only chapter [N] into 正文/, stop at the outline's closing beat, and leave the next chapter alone.” For how the state files divide the work, see the long-novel continuity guide.

Example

Example

Suggested input (original example):

Terminal — install the pinned plugin and start DSH Web: npx -y --package pnpm@11.7.0 --package @deepseek-ai/dsh@0.2.0-rc.2 dsh plugin --profile web add @oh-story/dsh@0.1.15 && npx -y @deepseek-ai/dsh@0.2.0-rc.2 web

In the DSH session for your chosen empty workspace: /story-long-write 帮我开书 Create a 240,000-word near-future mystery serial for adult readers. Premise: a municipal archivist discovers that one ordinary resident disappears from every public record at 02:17 each night, but her handwritten corrections return by morning. Reader promise: procedural investigation plus the cost of deciding which version of a person deserves to survive. Protagonist: meticulous, conflict-averse, and personally implicated by a missing sibling. Use close third person, restrained prose, and no omniscient explanation of the system in the opening volume. For this turn, create the project settings, volume outline and first ten chapter blueprints only. Stop before prose and list the files created.

After reviewing the plan: /story-long-write 写第1章 Use the approved chapter blueprint. Write only chapter 1, preserve the reveal boundary, and end when the protagonist sees correction handwriting with the same missing-stroke habit as her own in a file she has never opened; do not yet establish who wrote it. Save the prose in the project; do not continue to chapter 2.

EXISTING-DRAFT EXERCISE: original editorial fiction The archivist is named Ji Ning for this worked example. The following are excerpts with illustrative paths. Replace them with your own files and give the agent the full relevant manuscript.

Materials supplied by the author: - 原稿/第001章.md: accepted, complete chapter 1; the ending below is its final beat. - 原稿/第002章_未完.md: the unfinished opening of chapter 2. - 参考/旧续写设想.md: an unaccepted proposal, kept for reference only. - 参考/本书设定.md: the approved brief, including the missing sibling and limited viewpoint.

Accepted chapter 1 ending: Ji Ning opened file 417 for the first time. At the foot of the page, the handwritten Chinese word 更正, “correction,” caught her eye: the final stroke of 更 was missing, exactly the habit she had never managed to change.

Unfinished chapter 2 opening: She pushed the request card toward the desk. The duty clerk held it down. “To request the original register, you have to leave your employee number.” Ji Ning held her pen just above the signature box. [The author stopped here. No signature, submitted request or register access yet.]

Old, unaccepted chapter 2 proposal: “Steal the original register from storage and confirm that her missing sibling forged the handwriting.” This is only a plot proposal, nothing established yet; adopting it would change the proposed investigation and reveal timing.

First request — natural-language Chat only, no writing skill needed: Read only the four named files. Chapter 1 is complete; chapter 2 is unfinished. Separate accepted events, the partial chapter’s proposed situation, and old planning. What does Ji Ning actually know? What is she merely suspecting? Give two ways to pursue the original register without confirming the writer’s identity. For each, name her action, the resistance and the visible change by the scene’s end. Keep close third person; no omniscient explanation, automatic access or off-page signature. Reply only in Chat. Do not create, move or edit files, generate prose or call media services.

Editorial reading of these materials: - Chapter 1 establishes a recognizable handwriting habit in a file she had not opened. Whether she wrote it, whether her sibling forged it and whether time travel occurred all remain open. - The partial opening places a pen above a box. Even within that fragment she has not signed. The clerk states a requirement for this scene; whether it is archive-wide is still unwritten. - If the author retains that opening, chapter 2 starts with an unresolved decision. Until completed, its events must not be treated as a completed chapter in tracking. - The investigation can advance without identifying the writer: obtain a traceable request, or make another person confront the question. Both stop short of receiving the register.

Two NEW candidate scene plans (fictional choices, not yet in the project): A. Accept personal exposure. Ji Ning signs her own employee number and states that she wants to check the correction handwriting. The clerk accepts the request and gives a receipt number while the register stays in storage. She gains a way to follow up, but the signed request now connects her to the investigation. End on the handover itself; do not imply that access has been granted or that anyone has identified the writer. B. Seek a witness without signing. Ji Ning asks the clerk to look at the disputed page with her. He refuses to assess it on his own and reaches for the phone to call a supervisor. End before a call connects: she has not obtained access, and keeping the inquiry quiet now requires her to respond to another person’s initiative. The clerk need not recognize her handwriting, know the secret, or be a villain for this resistance to work.

Choose A if this chapter should make a conflict-averse investigator take responsibility in her own name. Choose B if it should put her attempt at secrecy under immediate social pressure. Pick one; do not silently combine them into one sequence.

An editorial candidate ending for A (a short prose illustration): “Reason for the request?” Ji Ning lowered the pen and wrote her employee number in the signature box. Below it she added: Check the correction handwriting. She pushed the signed card across. The clerk tore off the receipt. An application number; no access decision. She folded the slip. The signed request stayed on his side of the desk. This resolves whether she puts her name to the inquiry; who wrote the correction stays open.

Before writing — choose the material state: If these are still standalone files, either keep discussing them or explicitly choose full import. For import, confirm the scope, target book and unfinished-tail strategy first; choose “continue from the partial chapter” if retaining it. Notes under 参考/ are separate from the manuscript source directory. Do not describe a Chat discussion as completed import. For an already initialized, current-format project, do not import the book again.

After the project is ready, a planning-only request: /story-long-write 补纲 I choose A and retain the unfinished opening. Plan only chapter 2; stop before prose. Do not adopt the unaccepted theft/forgery proposal. I authorize setting the chapter 2 plan to the signed-request scene. Do not change other chapters, the accepted chapter 1, or established tracking facts. The receipt records a submitted request; access is still pending. Keep the writer’s identity unknown.

After reviewing that plan, when a chapter 2 partial file already exists: /story-long-write 修改第2章 This is an unfinished chapter: complete it in place, without skipping ahead or treating it as a blank new chapter. First identify and back up its actual file; show the opening you will preserve and the proposed completion boundary. Wait for my confirmation before changing prose. Then complete only chapter 2 using the approved A plan. Preserve the existing opening; end with the signed request handed over and a receipt, without access or identity confirmation. Do not rewrite chapter 1, count the old fragment as a finished chapter, or continue to chapter 3. If the actual files or tracking disagree with this description, report the conflict first.

If no chapter 2 prose file exists at all, use the named-new-chapter route instead. Decide from the actual files; the last Chat message is only a pointer.

FAQ

Do I need a plugin to write a novel with DeepSeek?

Ordinary DeepSeek chat is enough for a one-off synopsis discussion or a revision of text you supply; copy the result back into your manuscript yourself. Install DSH plus the Oh Story DSH plugin when the work continues around a local writing folder you want to see in a workbench. For an account-based browser project, use the ZenStory Workbench. Inside DSH you choose the model under Settings → Models, or set DEEPSEEK_API_KEY before launch.

How do I stop DeepSeek chapters from getting shorter?

With the bundled long-form workflow in DSH, give every chapter outline a 字数目标 (chapter length target): the workflow measures each chapter with the visible_chars_v1 count and stops when a target is missing. When a chapter comes out short, it first checks that every approved plot point in the outline landed, then hands the decision to you: accept the length, change the target, or extend the outline.

Can DeepSeek generate video for a short drama?

No. DeepSeek writes the screenplay, storyboard and prompts; images, video and music come from short-drama-produce calling GPT Image 2, Seedance, MiniMax H3 or MiniMax Music, with keys set as host environment variables before DSH starts, and every call is previewed and runs only after you confirm it. Without a video key you can still prepare the core creative documents each episode needs, and with an image key you can generate keyframe images; for episodes and storyboards, see novel to short drama.

Expected files

  • After confirming the book-opening stages, expect creator-readable files for positioning and relationships under 设定/, a book and volume outline plus per-chapter blueprints under 大纲/, with tracking under 追踪/ initialized only when you explicitly enter first-chapter drafting. The opening workflow advances through confirmation points and stops by the first ten chapter blueprints.
  • After an explicit chapter request, prose is written by chapter under 正文/ (for example 正文/第001章_章名.md) and the continuity views are updated through the writing workflow. Review the manuscript file itself; the chat message only points to it.
  • The DSH novel workbench presents the same project as a file tree, editor and Chat. ZenStory Workbench is a separate account-based web app, and its projects live apart from the local DSH workspace.
  • For full import, manuscript text is migrated as written. A partial chapter can be present in the prose files while last_chapter and current-state snapshots still end at the last complete chapter; the unfinished-tail strategy belongs in continuity risks. Judge chapter completion by last_chapter and the state snapshots.

Check the result

  • Before continuing, open the files named in the completion message and confirm that the premise, viewpoint, exclusions, reveal boundary and chapter stopping point are actually present. Those files are the record of whether the project changed.
  • For the archive exercise, look for the actual decision: if A was chosen, the signature and submitted request must happen on the page. The receipt stays a receipt with access still pending, and the handwriting’s writer stays unknown. Check whether chapter 2 is complete against the manuscript and the resulting project state; a chapter 2 file on its own is only a lead.
  • Reopen the same workspace in a later session and ask for a project-state diagnosis before generation. Confirm the last completed chapter and next blueprint, then request only the scope you want.
  • Treat model output as a draft: review continuity, copied or unsupported material, factual claims and publication rights yourself.

Sources

All guides