Model or dataset
zenstory-ai/oh-story-dsh avatar
zenstory-ai/oh-story-dsh

oh-story-dsh: Four Writing Workbenches Inside DeepSeek Harness

DeepSeek 写网文/小说的工作流插件:DeepSeek Harness 社区插件,内置小说、短剧、游戏、视频解说四个工作台 | Community DeepSeek Harness plugin with novel, short-drama, game and video-recap workbenches.

370 stars60 forksPythonMIT

At a glance

What is it?
A community DSH plugin that turns the harness into a novel, short-drama, game and video-recap workspace. It installs through a single npx command, and its media pipeline depends on host-side Python, ffmpeg and several vendor API keys.
Who is it for?
Adopt oh-story-dsh if you already run DeepSeek Harness and want a file-tree, editor and Chat layout around long-form fiction or short-drama scripts, and you accept that media production needs Python 3.10+, ffmpeg with the libass subtitles filter, and vendor keys for images, video and music. Do not adopt it if you only need prose generation and no workbench UI, or if you are unwilling to keep a terminal running for the local web server.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 18, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What oh-story-dsh adds to DeepSeek Harness

DeepSeek Harness handles the agent, sessions, models, permissions and Chat. oh-story-dsh is a community plugin that layers four production pipelines on top: novel, short-drama, interactive game and video recap. The README is explicit that the plugin has no affiliation with DeepSeek. The workbenches are the point of the project. Instead of chatting into a void, you get a file tree, an editor and a Chat column for novels; a shot board and asset board for short drama; a live playtest column for games; and a source/cut/output switcher for video recaps. The plugin ships 13 Oh Story Skills and 7 professional Roles at a pinned upstream version, so the creative vocabulary is fixed rather than assembled by the user. If you write long fiction or episodic scripts and you already live inside DSH, this is the shortest path from a chat window to a structured project directory. If you do not run DSH, none of this is reachable.

How the workbenches bind to a workspace directory

The plugin does not create a separate application. It takes over the session layout only when the current workspace contains a novel, short-drama, game or video project, and it can be collapsed back to the native DSH session at any time. The selection is remembered per workspace. Each workbench maps to a folder convention. Short drama keeps up to five Markdown files per episode: 剧本.md, 视觉设定.md, 分镜.md, 图片提示词.md and 视频提示词.md. The production view projects those documents into a shot board, asset board, task and version list, and a relationship canvas, and it flags duplicate IDs, dangling references and format errors in place. Game adaptations land in game-adaptations/<project>/, and once build/app/index.html exists the project appears in the list. Video recaps live in video-recaps/<project>/ with sources/, work/ and outputs/ as the three stages. That directory-as-interface design is the strongest part of the plugin: the artefacts stay readable Markdown and JSONL, and the UI is a projection over them rather than a database you cannot inspect.

Installing the plugin and running the first command

Node.js 24 or newer is required. The install command temporarily provides pnpm through npx, so a machine with only Node.js can run it. The README gives this exact pair of commands, and the second one starts the local web server.

bash
npx -y --package pnpm@11.7.0 --package @deepseek-ai/dsh@0.1.5-rc.1 dsh plugin --profile web add @oh-story/dsh@0.1.9 &&
npx -y @deepseek-ai/dsh@0.1.5-rc.1 web

Keep the terminal running. The browser normally opens by itself; if it does not, copy the full http://127.0.0.1:3080/?token=... link that the terminal prints. First-time authentication needs the token in that link, and closing the terminal stops the service. Before any AI writing, add a Provider and API key under Settings, Models, or set the environment variable before launch.

bash
export DEEPSEEK_API_KEY=...
npx -y @deepseek-ai/dsh@0.1.5-rc.1 web

An empty directory keeps the native DSH Chat. After the model is configured, typing one of the four slash commands starts a pipeline, and the workbench appears once the agent has written its first creative file. Browsing existing work does not require an API key. The README also documents a GitHub Release install path that pulls the same prebuilt tarball, oh-story-dsh-0.1.9.tgz, through the same plugin add command.

The media pipeline is where the host requirements bite

Short-drama production is split deliberately. DeepSeek writes the script, storyboard and prompts; image, video and music generation is delegated to the short-drama-produce Skill, which calls vendor APIs. That means the plugin is not self-contained. Image generation uses GPT Image 2 and needs OPENAI_API_KEY, with OPENAI_BASE_URL optional. Video has two providers: Seedance on Volcengine Ark needs ARK_API_KEY and SEEDANCE_MODEL, while MiniMax H3 needs MINIMAX_API_KEY, MINIMAX_VIDEO_MODEL and MINIMAX_VIDEO_RESOLUTIONS. Music uses MiniMax Music and needs MINIMAX_API_KEY. The keys must be exported before DSH starts.

bash
export OPENAI_API_KEY=...            # image
export ARK_API_KEY=... SEEDANCE_MODEL=...   # video
export MINIMAX_API_KEY=...          # music

The production view shows at the top whether each provider is configured and which variable is missing, but the README states the plugin only checks that the variable exists. A stale or wrong key passes that check and fails later at the API call. The video workbench has its own host dependencies: Python 3.10+ and ffmpeg/ffprobe built with the libass subtitles filter, installed via brew on macOS or apt on Debian and Ubuntu. Video recap also uses MIMO_API_KEY, and Fish Audio TTS additionally needs FISH_API_KEY. Configuring only the providers you need is supported: without a video key you can still write storyboards and generate keyframe images.

Where the plugin stops being the right tool

The clearest boundary is scope. This is a DSH plugin, not a standalone editor, so anyone who does not run DeepSeek Harness gets nothing from it. The second boundary is the media path. If your work is text-only, the vendor key table, the ffmpeg requirement and the Python 3.10+ requirement are all dead weight you carry for features you will not use. A third constraint is operational: the web interface is served from a terminal process, and the README notes that closing the terminal stops the service. There is no documented service mode, no documented rollback procedure for a plugin upgrade, and the README does not describe what happens to in-flight production jobs if the process exits. The adapter registry adds another sharp edge. On startup the plugin registers four built-in adapters into a credential-free config file under a temp directory named oh-story-dsh-<uid>/, readable and writable only by the current user, and the production view prints the full path. If you write your own adapter or change timeouts, you point OH_STORY_DRAMA_ADAPTER_CONFIG at your file. That is flexible, but it also means the effective provider configuration lives outside your project directory and can be lost with the temp directory.

How it differs from running a writing skill set directly

The obvious alternative is to use DSH on its own and load creative-writing skills or prompts by hand. The difference in approach is structural. A hand-assembled setup gives you a chat session and whatever files you ask the agent to write; the directory layout, the file naming and the review surface are your problem. oh-story-dsh fixes those conventions in advance: five named Markdown documents per drama episode, a fixed game-adaptations/<project>/ path, a fixed sources, work and outputs split for video. In exchange you accept the plugin's opinions. A second alternative is a dedicated screenwriting or novel-writing application outside DSH. Those tend to own the document format and the export path, which makes them easier to hand to a non-technical collaborator but harder to script against, because the project files are not plain Markdown and JSONL sitting in a folder you control. The plugin sits between the two: less structure than a dedicated application, more structure than a bare agent session, and every artefact remains inspectable on disk.

Licence, versions and the cost of keeping up

The repository is MIT licensed and the package.json for the plugin workspace carries the same MIT identifier, so the code can be reused and modified under those terms. That is a statement about the licence, not legal advice; if you redistribute a modified build, read the LICENSE file and the upstream terms of the skills the plugin bundles, since the README says the 13 Oh Story Skills and 7 professional Roles ship at a pinned upstream version. Upgrade cost is visible in the release cadence: v0.1.7 on 2026-09-04, v0.1.8 on 2026-09-07, v0.1.9 on 2026-09-10, with the last push to the repository on 2026-09-16. Three releases in a week is a fast-moving surface, and the install command pins both the plugin version and the DSH version, so an upgrade means editing two version strings rather than one. The repository includes parity check scripts for each upstream asset set and a DSH boundary check, which suggests upstream drift is a known maintenance concern rather than a hypothetical one.

Editorial conclusion

Adopt oh-story-dsh if you already run DeepSeek Harness and want a file-tree, editor and Chat layout around long-form fiction or short-drama scripts, and you accept that media production needs Python 3.10+, ffmpeg with the libass subtitles filter, and vendor keys for images, video and music. Do not adopt it if you only need prose generation and no workbench UI, or if you are unwilling to keep a terminal running for the local web server. Before committing, verify three things: that your Node.js is 24 or newer, that the profile you install into also has @deepseek-ai/dsh-web-app, and that the four built-in adapters registered in the oh-story-dsh-<uid> temp config match the providers your account actually has enabled.

Frequently asked questions

What is oh-story-dsh and who is it for?

It is a community plugin for DeepSeek Harness that installs novel, short-drama, interactive game and video-recap workbenches into the harness. It is aimed at writers and producers who already use DSH and want a file tree, editor and Chat layout over structured project folders. The README states the plugin has no affiliation with DeepSeek.

How do I install oh-story-dsh?

The README requires Node.js 24 or newer and gives a single npx command that temporarily provides pnpm, adds @oh-story/dsh@0.1.9 to the web profile, then starts the DSH web server. Keep the terminal running and open the printed link containing the token if the browser does not open automatically.

Does oh-story-dsh need API keys beyond DeepSeek?

Only for media production. Image generation uses OPENAI_API_KEY, video uses ARK_API_KEY with SEEDANCE_MODEL or the MiniMax video variables, and music uses MINIMAX_API_KEY; video recap also uses MIMO_API_KEY. The README notes you can configure just the providers you need, and that without a video key you can still write storyboards and generate keyframe images.

Official sources

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. zenstory-ai/oh-story-dsh on GitHub
Community notes

Community notes