小说、短剧、互动游戏与视频解说创作工作台,装进 DeepSeek Harness。
数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
dsh plugin --profile web add zenstory-ai/oh-story-dsh状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
安装兼容性检查需源码安装缺少 main/exports/bin 入口声明;engines.node 要求 >=24.0.0,不满足 Node 22.19.0;仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 01:39:04
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
查看扫描证据(共 24 处,展示前 21 条)
- 写入本地文件packages/dsh-plugin/src/drama-adapters.ts:123
await mkdir(path, { recursive: true, mode: 0o700 }); - 读取本地文件packages/dsh-plugin/src/drama-adapters.ts:124
const info = await lstat(path); - 读取本地文件packages/dsh-plugin/src/drama-adapters.ts:152
return { ...location, ok: await access(location.path).then(() => true, () => false) }; - 读取本地文件packages/dsh-plugin/src/drama-adapters.ts:156
const existing = await lstat(location.path).catch(() => undefined); - 写入本地文件packages/dsh-plugin/src/drama-adapters.ts:160
await writeFile(staging, `${JSON.stringify(dramaAdapterConfigDocument(skillRoot, options.python ?? "python3"), null, 2)}\n`, { encoding: "utf8", mode: - 写入本地文件packages/dsh-plugin/src/drama-adapters.ts:161
await rename(staging, location.path); - 读取本地文件packages/dsh-plugin/src/reference-tool.ts:14
const entries = await readdir(directory, { withFileTypes: true }); - 读取本地文件packages/dsh-plugin/src/reference-tool.ts:24
const root = await realpath(resolve(storySetupRoot)); - 读取本地文件packages/dsh-plugin/src/reference-tool.ts:25
const referenceRoot = await realpath(join(root, "references", "agent-references")); - 读取本地文件packages/dsh-plugin/src/reference-tool.ts:31
const canonicalPath = await realpath(path); - 读取本地文件packages/dsh-plugin/src/reference-tool.ts:80
return { reference: args.reference, content: await readFile(path, "utf8") }; - 读取本地文件packages/dsh-plugin/src/role-provider.ts:35
const body = roleBody(await readFile(join(resolve(roleRoot), `${name}.md`), "utf8")); - 读取本地文件packages/dsh-plugin/src/skill-provider.ts:327
const directories = (await readdir(root, { withFileTypes: true })) - 读取本地文件packages/dsh-plugin/src/skill-provider.ts:333
const parsed = parseBundledSkill(await readFile(path, "utf8")); - 读取本地文件packages/dsh-plugin/src/skill-provider.ts:355
const parsed = parseBundledSkill(await readFile(path, "utf8")); - 读取本地文件packages/dsh-plugin/src/workspace-route.ts:231
nodeRealpath(realm.fs.processPath(realm.root)), - 读取本地文件packages/dsh-plugin/src/workspace-route.ts:232
nodeRealpath(realm.fs.processPath(target)) - 读取本地文件packages/dsh-plugin/src/workspace-route.ts:236
const local = await nodeStat(path); - 读取本地文件packages/dsh-plugin/src/workspace-route.ts:255
const stream = createReadStream(processPath, range === undefined ? undefined : { start: range.start, end: range.end }); - 读取本地文件packages/dsh-plugin/src/workspace-route.ts:595
readNodeFile(resolve(root, "example.json"), "utf8"), - 读取本地文件packages/dsh-plugin/src/workspace-route.ts:596
readNodeFile(resolve(root, "qa/verification.json"), "utf8"),
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
界面预览
4 张 · 点击查看大图功能亮点
- 小说创作工作台
- 短剧创作工作台
- 游戏与视频解说工作台
DeepSeek 写网文/小说的工作流插件:DeepSeek Harness 社区插件,内置小说、短剧、游戏、视频解说四个工作台 | DeepSeek Harness 社区插件,带小说、短剧、游戏、视频解说四个工作台。
README
由 DeepSeek 最新模型翻译生成展开完整文档(README 剩余 1 节)
Oh Story DSH
小说、短剧、互动游戏与视频解说创作工作台,装进 DeepSeek Harness。
项目主页 · 安装 · 看看它的输出 ·
这是什么
oh-story-dsh 是 DeepSeek Harness(DSH)的社区插件,与 DeepSeek 无隶属关系。装上它,DSH Web 里多出四个创作工作台:小说、短剧、游戏、视频解说。智能体、会话、模型、权限审批和 Chat 仍然全是 DSH 原生的,插件只添加创作技能、专业角色、项目文件协议和工作台界面,不带第二套智能体运行时或项目数据库。
以下清单对应当前源码;已发布安装包的上游提交固定在该版本的 manifest 中,未发布更新见 Unreleased。
| 工作台 | 上游能力(固定版本,随插件打包) | 主要入口 |
| 小说 | Oh Story 0.9.2 · 14 个技能 · 7 个角色 | /story、/story-long-write、/story-review、/story-publish |
| 短剧 | Drama Skills 0.10.0 · 11 个技能 | /short-drama、/short-drama-write、/short-drama-storyboard、/short-drama-edit |
| 游戏 | NovelToGame 0.6.1 · 7 个技能 · 《金瓶梅》ADV 可玩示例(18+) | /novel-to-game quick、/game-build、/game-qa |
| 视频 | video-recap-skills 0.6.2 · 7 个技能(3 个用户入口) | /video-recap、/video-script、/video-reference |
最新版本 v0.1.21(2026-10-30)。默认安装固定使用 DeepSeek Harness 0.2.1-rc.5(npm latest 与 next);更早的 0.2.0-rc.2 与 npm alpha 的 0.2.2-alpha.2 也受支持。变更见 CHANGELOG.md 与 Releases;升级步骤见常见问题「升级到新版本后要做什么」。
四个工作台
下面四段动图都是打包后的插件装进官方 DSH Web 的真实画面,取自原生集成测试的录制;右侧 Chat、模型、用量和耗时都是 DSH 自己的。
小说
小说工作台文件树、编辑器、Chat 三栏。智能体写文件时编辑器跟着它走,点 Chat 里的文件名就能在编辑器打开。覆盖长篇、短篇、选题、扫榜、拆文、导入、审稿、去 AI 味与封面。
短剧
短剧工作台
每集按需维护最多五份核心创作 Markdown:剧本.md、视觉设定.md、分镜.md、图片提示词.md、视频提示词.md。「生产」视图把它们投影成镜头板、素材板、任务/版本、成片顺序和可平移缩放的无限关系画布,并就地指出重复 ID、悬空引用与格式错误。生图、生视频、配音、生音乐的任务先预览、你确认后才调用服务商 API;成片由 /short-drama-edit 按《剪辑单.md》渲染到 剧集/<EP>/制作成果/成片/。
游戏
游戏工作台
左侧实时试玩、右侧 Chat。/novel-to-game quick 的产物写进 game-adaptations/<project>/,build/app/index.html 就绪后自动进入项目列表,可刷新、全屏、切换项目。游戏在独立 origin 与 iframe sandbox 里运行。随包的《金瓶梅 · 风月总账》ADV 示例不用 API Key 也能玩:还没有作品时点欢迎卡上的「先玩内置示例」,之后在「游戏项目」下拉的「内置示例」里选择。示例改编自古典小说,含成人内容(18+),进入前会确认年龄。
视频解说
视频工作台
左侧预览、右侧 Chat。项目放在 video-recaps/<project>/:原片在 sources/,工作产物在 work/,交付在 outputs/。可在原片、剪后片、成片之间切换,查看阶段提示、运行清单与质检产物;视频经 HTTP Range 流式预览。还没有视频项目时,空状态先列出运行环境:Python 3.10+、ffmpeg/ffprobe 与 MIMO_API_KEY 是否就绪。
四个工作台共同的规矩
- 文件就是创作事实:工作台只投影项目里的文件,不写并行数据库;改哪份文件就是改哪一层决定。人工未保存的内容不会被并发的智能体写入覆盖。
- 媒体生产先确认:短剧媒体任务先在 Chat 展示准确内容与预检结果,你确认同一任务后才执行。媒体 Key 放在宿主机环境变量里,插件只报告是否已配置。
- 不占别的场景:只有当前 workspace 里真的有创作项目时才接管布局,随时可收起,收起后会话回到 DSH 原生形态,选择按 workspace 记住。
各工作台的边界与协议见架构说明。
安装
需要 Node.js 24+。安装命令会临时提供 pnpm,只装了 Node.js 的机器也能执行:
npx -y --package pnpm@11.7.0 --package @deepseek-ai/dsh@0.2.1-rc.5 dsh plugin --profile web add @oh-story/dsh@0.1.21 &&
npx -y @deepseek-ai/dsh@0.2.1-rc.5 web
保持终端运行,浏览器默认自动打开;没有自动打开就复制终端打印的完整 http://127.0.0.1:3080/?token=... 链接访问,首次认证需要链接里的 token。关闭终端会停止服务。安装与启动请使用同一个 dsh 版本。本页默认命令固定使用 npm latest 与 next 的 0.2.1-rc.5;本插件接受 >=0.2.0-rc.2 <0.2.1-0、>=0.2.1-alpha.1 <0.2.2-0 与 >=0.2.2-alpha.2 <0.2.3-0。仍在用 0.2.0-rc.2,或想试 0.2.2-alpha.2(需要 Node.js 24.9+)时,安装与启动两条命令都要换成同一个版本;不要把两个宿主版本混用。DSH 会在安装与加载时检查版本,不匹配时给出明确提示(dsh plugin allow-version 可自担风险放行)。
开始 AI 创作前,在 DSH 的「设置 → 模型」中添加服务商并填入 API Key,或在启动前设置环境变量 DEEPSEEK_API_KEY。只查看已有作品可在首次引导中选择「稍后配置 / Configure later」。
从 GitHub Release 安装预构建包
GitHub Release 中的预构建包经过同一套测试:
npx -y --package pnpm@11.7.0 --package @deepseek-ai/dsh@0.2.1-rc.5 dsh plugin --profile web add https://github.com/zenstory-ai/oh-story-dsh/releases/download/v0.1.21/oh-story-dsh-0.1.21.tgz &&
npx -y @deepseek-ai/dsh@0.2.1-rc.5 web
视频工作台的宿主机依赖
视频流水线还需要宿主机安装 Python 3.10+ 与 ffmpeg/ffprobe(Debian/Ubuntu sudo apt install ffmpeg)。带 libass subtitles 滤镜时会烧录字幕;未提供该滤镜的构建交付外部 SRT,也可另装带 libass 的构建。视频解说另用 MIMO_API_KEY(Fish Audio TTS 另需 FISH_API_KEY)。Key 与 PATH 在启动 DSH 的终端里设置,重启 DSH 后生效。
配置媒体生成 API(短剧生产需要)
DeepSeek 负责写剧本、分镜和提示词;生图、生视频、配音、生音乐由短剧「生产」交给 short-drama-produce 技能,再调用下面的服务商 API 完成。生产与检查脚本需要宿主机上的 Python 3.9+。Key 在启动 DSH 之前写入宿主机环境变量:
| 能力 | 服务商 | 必需环境变量 | 可选 |
| 图片 | GPT Image 2 | OPENAI_API_KEY | OPENAI_BASE_URL |
| 视频 | Seedance(火山方舟) | ARK_API_KEY、SEEDANCE_MODEL | SEEDANCE_BASE_URL、SEEDANCE_ALLOWED_RATIOS、SEEDANCE_MIN_DURATION/SEEDANCE_MAX_DURATION |
| 视频 | MiniMax H3 | MINIMAX_API_KEY、MINIMAX_VIDEO_MODEL、MINIMAX_VIDEO_RESOLUTIONS、MINIMAX_VIDEO_MIN_DURATION/MINIMAX_VIDEO_MAX_DURATION | MINIMAX_VIDEO_BASE_URL、MINIMAX_VIDEO_RATIOS |
| 语音 | MiniMax Speech | MINIMAX_API_KEY | MINIMAX_BASE_URL |
| 音乐 | MiniMax Music | MINIMAX_API_KEY | MINIMAX_BASE_URL |
export OPENAI_API_KEY=... # 图片
export ARK_API_KEY=... SEEDANCE_MODEL=... # 视频,模型/Endpoint ID 以账号开通的为准
npx -y @deepseek-ai/dsh@0.2.1-rc.5 web
只配置用得到的那几个即可:没有视频 Key 仍然可以写分镜、生成关键帧图片。「生产」视图顶部会显示每个服务商是否已配置、缺哪个变量。插件启动时会把五个内置 adapter 登记到一份不含凭据的配置文件(默认在系统临时目录下仅当前用户可读写的 oh-story-dsh-<uid>/ 里,「生成环境」条会显示完整路径),智能体运行 production_tool.py run 时直接引用它;自己写 adapter 或改超时,就把文件路径写进 OH_STORY_DRAMA_ADAPTER_CONFIG。每个服务商的参数、分辨率与时长约束见随包的 short-drama-produce/references/providers/。小说封面使用当前 Preset 里可见的图片生成工具。
声音参考需要额外显式配置:自动生成的通用配置档不声明 reference_audio,因为环境变量里的具体模型未必支持声音输入;只有确认所选模型支持后,才在项目外的自定义 adapter 配置里为该配置档声明 reference_roles(包含 reference_audio),并用 OH_STORY_DRAMA_ADAPTER_CONFIG 指向它。未声明时会在付费提交前拒绝,不会静默丢掉声音。
装进独立配置档,按需启动
插件装进哪个配置档,那个配置档的每个会话就都会加载创作技能。想让原版 web 保持干净,就把插件装进独立配置档:
npx -y --package pnpm@11.7.0 --package @deepseek-ai/dsh@0.2.1-rc.5 dsh plugin --profile story add @oh-story/dsh@0.1.21
新配置档默认没有界面。编辑 ~/.dsh/profiles/story/package.json,把 dsh.profile.bundles 改成:
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"@oh-story/dsh"
]
@deepseek-ai/dsh-web-app 是 DSH 自带的 Web 界面包,需要在创作插件之前加载。之后两个配置档用不同端口可以同时运行,模型、凭据、workspace 与历史会话由 DSH 统一保存:
npx -y @deepseek-ai/dsh@0.2.1-rc.5 web # 原版 DSH
npx -y @deepseek-ai/dsh@0.2.1-rc.5 --profile story --port 3081 # 创作工作台
开始创作
首次启动时,DSH 会在「文稿」目录下自动建一个 默认工作区 / Default workspace(deepseek-harness/default-workspace),并直接打开其中的空白会话,Oh Story 的使用引导显示在会话首页。要在自己的作品目录里创作,点击左侧 Workspaces 旁的 添加工作区 / Add workspace,选择存放作品的文件夹,再在下方 选择工作区 / Choose workspace 中选中该目录;创作文件会写进当前会话所属的工作区。目录里已有创作项目时,会显示「小说 / 短剧 / 游戏 / 视频」四个工作台标签;空目录保留 DSH 原生 Chat,输入 /story、/short-drama、/novel-to-game quick 或 /video-recap 开始,智能体写出第一个创作文件后工作台自动出现。
下面的请求复制改一改就能用,替换方括号内容后发送。
开一本新书:
我想开一部 [类型/题材] 新书。先从我提供的材料中分开已确定事实与待决问题;只规划一个有边界的开篇,交付核心冲突、视角限制、前三章变化和待决项。不要自动写正文;题材取舍、角色动机和长期方向留给我确认。
已有稿件,第一轮只讨论续写方案:
我想规划这部自有或已获授权小说的下一场戏。只阅读当前 workspace 中我点名的 [章节文件] 和 [设定文件];[末尾片段] 尚未写完,不要把它算成完整章节。先列出与下一场戏有关的已知事实、视角人物目前知道的事,以及尚缺或冲突的信息。再给两个续写方向,分别说明人物要什么、阻力是什么、行动造成什么可见变化;不要提前揭示 [秘密],停在 [场景边界]。本轮只在 Chat 回复,不创建、移动或改写任何文件。
短剧、游戏、视频解说,直接说目标:
用 /short-drama 初始化一个都市打脸题材的短剧项目,竖屏 9:16,只写第 1 集,先不生成任何媒体。
用 /novel-to-game quick 把 [小说文件] 改编成可玩游戏,平台、类型和引擎由你推荐,首个构建控制在 15 分钟以内。
给 /path/to/video.mp4 做一个 3 分钟中文解说成片,保留关键原声,字幕烧进画面。
看看它的输出
节选自随包示例工程(同步自 oh-story-claudecode 的 demo 与 drama-skills 的公开样例),省略处以「……」标出。
用追踪文件定位续写
写第 21 章之前,追踪/上下文.md 记录了当前位置与风险;继续前先用它定位,再按写作流程读取本章细纲、相关设定与必要原文:
当前位置
- 当前章:第20章
- 场景:火箭军文工团,钟嘉嘉送来老兵书法礼后……
活跃伏笔
- F016|钟嘉嘉并非普通军报实习生,她的军方家庭背景仍未完全公开|埋第7章|回收章未定|高……
连贯性风险
- 第21章尚无细纲,不能直接写正文。
最后一行是硬门禁。没有细纲就写正文,写入会被 DSH 的 tools/pre-execute 钩子拒绝:
Oh Story 阻止写入第 21 章:未找到对应的 大纲/细纲_第021章.md。先按 story-long-write 单章流程补建细纲再写正文。
一个镜头在短剧五份文档里各管一层
视觉设定.md 给跨镜不变的造型上锁,锁面能原样贴进提示词;分镜.md 只写起点、唯一动作、终点和依据;视频提示词.md 把两点之间的动作写成模型能执行的英文:
- 连续性锁:LOCK-JIANGCHEN-DRESS《江晨松枝绿常服》(镜头:SHOT-EP001-002、SHOT-EP001-003、SHOT-EP001-007……;图片提示词项:IMG-JIANGCHEN-SHEET)· 锁面:pine-green lapel service jacket
SHOT-EP001-002 · 四个号,四个粉
- 来源:EP001-SC001
- 时长:4s
- 起点:周薄森面对笔记本坐得笔直,右手搭在茶杯旁;江晨双手掌心朝下撑在玻璃桌沿,眼神涣散。
- 唯一动作:哄笑声滚过来,周薄森下颌收紧、腰背又挺直一分;江晨眨了一下眼,眼神猛地聚拢。
- 终点:画面停在周薄森绷紧的脸与屏幕冷光;江晨仍撑着桌沿,留在画右边缘。
- 视觉依据:《视觉设定.md》·人物「江晨」……;道具「玻璃泡茶杯」(控制:双层玻璃杯身、沉底茶叶)。
MOTION-EP001-002 · 四个号,四个粉…… The seated officer's jaw tightens and his back straightens a little more. The young man blinks once and his eyes snap into focus. ……
原文:剧本.md · 视觉设定.md · 分镜.md · 图片提示词.md · 视频提示词.md。
写错了会被指出来
把这集样例故意改坏三处(来源指向不存在的场景、视频提示词指向不存在的镜头、图片提示词 ID 重复),「生产」视图报的是原因和行号:
SHOT-EP001-002 的来源 EP001-SC009 在剧本中不存在。 分镜.md:25 MOTION-EP001-003 指向不存在的 SHOT-EP001-030。 视频提示词.md:33 IMG-JIANGCHEN-SHEET 在当前集内重复,后出现的条目会遮蔽前一条。 图片提示词.md:3
随包游戏的 QA 记录
《金瓶梅 · 风月总账》的完整结果见 qa/verification.json。下面保留六项状态与体验限制的简化示意,限制文字并非当前记录的逐字引用:
"checks": { "launch": "PASS", "render": "PASS", "input": "PASS", "coreLoop": "PASS", "outcome": "PASS", "restart": "PASS" },
"limitations": [ ……
{ "scope": "体验判断", "reason": "自动化只证明当前候选可启动、渲染、输入、走到结果并重开,不判断主观吸引力、长期平衡或其他浏览器。" } ]
常见问题
用 DeepSeek 写小说,一定要装插件吗?
只讨论一个梗概或修改一段自带文本,用普通模型聊天就够,自己把结果放回稿件即可;要围绕本地作品目录持续创作、在工作台里看文件,再装 DSH 加本插件。想用账户化的网页项目,可选 ZenStory 托管工作台,具体区别见写作环境对比。
我在用 Claude Code 或 Codex,也该装这个吗?
不用。四条流水线各自是独立的技能仓库,直接装进你在用的编程智能体:oh-story-claudecode、drama-skills、novel-to-game、video-recap-skills。本插件是这四套技能在 DeepSeek Harness 里的打包版,外加只有 DSH Web 才有的四个工作台。
查看已有作品需要 API Key 吗?
不需要。首次引导选择「稍后配置」,打开作品目录就能浏览文件;开始 AI 创作时再配置模型。
Token 消耗如何?
插件自己不调用模型,用量以 DSH 每条答复下方显示的数字为准。本轮读取的技能、参考资料、作品内容与 Role 调用都会影响用量;每个 Role 是一次独立的子代理调用。配置档中的各个会话都能发现创作技能,具体正文在使用时读取。想让普通编程会话不带这份技能目录,可以装进独立配置档。
DeepSeek 会自己生图、生视频吗?没有视频 Key 能做什么?
不会。DeepSeek 只写剧本、分镜和提示词,媒体由 short-drama-produce 调用 GPT Image 2、Seedance、MiniMax H3、MiniMax Speech 或 MiniMax Music 生成,Key 写在启动 DSH 之前的宿主机环境变量里,只配用得到的那几个。没有视频 Key 仍然可以写完五份文档、生成关键帧图片。
分镜或游戏设计写好了,成片和可玩构建从哪来?
短剧成片由 /short-drama-edit 按《剪辑单.md》渲染,需要先配置媒体生成 API 并生产出逐镜素材;游戏构建由 /game-build 生成,build/app/index.html 就绪后自动进入游戏工作台的项目列表。
装了插件之后,写代码的普通会话也变成三栏了?
只有当前 workspace 真的有创作项目时才接管布局,没有时插件在界面上完全不出现;工作台标题栏的「收起创作工作台」随时可以收起,选择按 workspace 记住。
右侧 Chat 里的长答复被下面的输入框遮住了?
先按安装步骤更新插件并重启 DSH。当前版本仍能复现时,请带插件版本、DSH 版本、窗口宽度和操作步骤开 Issue。相关历史记录见 #3 与 #26。
装好后工作台一片空白,面板和「创作工作台」按钮都不出现?
先核对插件与 DSH 版本,再按安装使用同一条受支持的宿主线:默认 0.2.1-rc.5,或更早的 0.2.0-rc.2、试用的 0.2.2-alpha.2。安装和启动两条命令都要一致。检查同一配置档中是否已加载插件;仍然空白时,附版本号和终端错误开 Issue。历史 Queue 接口故障见 #50。
我另外给 Codex 或 OpenCode 装过 Oh Story,DSH 里用的是哪一份?
DSH 也会读取 ~/.agents/skills,同名时优先用那里的副本,而不是本插件随包、为 DSH 适配过的版本;两份版本不同时,行为以 ~/.agents 里的为准。想让 DSH 只用插件自带的技能,启动前把 DSH_AGENTS_HOME 指向另一个目录(例如 DSH_AGENTS_HOME=~/.dsh-agents npx -y @deepseek-ai/dsh@0.2.1-rc.5 web),或移走 ~/.agents/skills 里的同名目录。
安装报 pnpm not found on PATH?
DSH 的 plugin add 内部需要 pnpm,单独运行 npx @deepseek-ai/dsh ... plugin add 不会自动补上它。重新执行上面带 --package pnpm@11.7.0 的完整安装命令,确认安装成功后再启动。
浏览器没打开,或者打开后要求认证?
打开终端打印的完整带 ?token=... 链接,首次认证需要链接里的 token;端口被占用时用 web --port 3081,并访问新打印的链接。
没有看到「小说 / 短剧 / 游戏 / 视频」四个标签?
先添加作品目录并打开会话。空目录需要先在 Chat 中运行创作命令,智能体生成第一个创作文件后工作台才会出现;已收起的工作台可用会话区的「创作工作台」按钮恢复。已有作品仍不显示时,检查安装与启动是否使用同一个配置档,重启 DSH 并刷新页面。装进独立 story 配置档却没有网页界面,是因为新配置档需要补上 @deepseek-ai/dsh-web-app,见安装一节的折叠说明。
Windows 能用吗?
能。类型、资产、单测与构建这道门在 CI 里每次都在 macOS 和 Windows 上跑;打包后装进官方 DSH Web 的集成测试在 Linux 上跑。视频流水线在任何平台都需要 Python 3.10+ 与 ffmpeg/ffprobe;有 libass 时烧录字幕,没有时交付外部 SRT;长篇拆文、导入与长篇追踪同样需要宿主机上的 Python 3,短剧的检查与生产脚本需要 Python 3.9+,短剧成片需要 ffmpeg/ffprobe,默认的烧录字幕还要求 ffmpeg 带 libass,剪辑单里有「画面文字」时还需要 Node.js(Remotion);长篇的章节检查需要 Node.js 18+。
升级到新版本后要做什么?
重新执行安装命令,把 @oh-story/dsh@ 后的版本号换成目标版本,再重启 DSH。安装与启动使用同一个宿主版本;当前支持范围见安装。技能与 Roles 随插件打包,无需在项目里重新部署。
0.1.21 带来 Oh Story 0.9.2 与 Drama Skills 0.10.0,默认宿主改为 DSH 0.2.1-rc.5,不用迁移,重装后重启即可。小说新增 /story-publish:从已有设定和大纲整理番茄小说的书名、简介、标签等建书资料,存成书目录下的 发布资料-番茄小说.md,只写你确认过的内容,不会替你登录后台或发布;/story-cover 可以只出封面提示词。短剧分镜新增打戏按回合拆镜,剪辑可以把反应压在台词上;项目里还没有参考图时,分镜写 PLAN-... 挂图计划、视频提示词照常交付,投产前仍要放入真实图片;英文台词按词估时。
0.1.20 让插件能装进 DSH 0.2.2 预发布线(已验证 0.2.2-alpha.2);默认宿主和上游 Skills 不变,不用迁移,重装后重启即可。
0.1.19 带来 Oh Story 0.9.1、Drama Skills 0.9.2 与 NovelToGame 0.6.1,默认宿主改为 DSH 0.2.1-rc.4,不用迁移,重装后重启即可。Oh Story 的续写状态卡最多列 20 个活跃角色(原来 6 个)。短剧每写完一份文档就能只核对已有文档,多镜容器可写 GROUP-... 条目,剪辑成片的切点不再掉音;旧 JSON 检查器不再随包,结构检查统一用 creator_markdown_check.py。
0.1.18 收尾 0.1.17 新用户审计里的界面问题(内置示例入口、视频环境检查、游戏预览状态、短剧 Python 3.9+),不用迁移,重装后重启即可。
0.1.17 带来 Oh Story 0.9.0:各 Skill 的参考资料按写书的步骤重新整理,书稿、设定、追踪和作者记忆不用迁移;DSH 里 Skills 与 Roles 随插件更新,不用重跑 /story-setup。之前导入的长篇,续写前先让 /story-long-write 把那一卷导入时的旧剧情单元改写成单元卡。短篇平台统一叫「知乎盐言」,旧名「盐选」「番茄短篇」照常认。NovelToGame 0.6.0 会在白盒试玩后和生产过半时按预算复盘范围,director 模式在视觉目标候选处停下请你挑选。默认宿主改为 DSH 0.2.1-rc.2。
按项目类型检查仍需处理的内容:
- 小说作者记忆:Oh Story 0.8.0 之前留在工作区的「本书:」条目,需要逐书执行 author_memory_commit.py migrate --workspace {工作区} --book-root {书目录};单书布局的两个参数均为工作区本身,也可让 Agent「整理作者记忆」。已经迁移的记忆无需重复操作。写手容纳不下的习惯会在汇报里点名,可再整理合并相近条目。
- 小说细纲:开始正文前补全本章细纲;只有标题、不计 # 与空白不足 30 字的细纲会被拦下。
- 短剧项目:v0.5 结构化项目不能原地迁为 creator-first 项目。新建项目根,只保留当前需要的创作文档。每镜保留真实场景来源和视觉依据,REF- 声明用途;剪辑单.md 在第一个 ## CUT- 之前列明未采用的 MOTION-*。画面文字需要 Remotion;从 Drama Skills 0.8 之前升级时,在 ~/.cache/short-drama-edit/remotion 重新 npm install。想关闭默认同场景接镜匹配,在交付规格写 - 接镜匹配:无。
- 角色参考音频:绑定具体角色,并声明和校验 reference_roles、人物身份与禁控条件;音频不进入图片选择器。
- 随包游戏:当前《金瓶梅》ADV 与旧账务版存档不互通,升级后重新开始示例。
- 视频项目:旧版中途工作目录可能需要从首阶段重建,不能把旧 PASS 当成新结果。dub 会复刻原说话人的声音,必须先确认音频使用权与说话人授权,再加 --confirm-voice-rights,旧续跑命令也遵守同一要求。缺少 libass 时交付外部 SRT。
逐版变化与既有验证证据见 CHANGELOG.md 和验证说明。
延伸阅读
- DeepSeek 写小说指南:选择作品目录、配置宿主模型,再给出题材、视角与本轮停靠点。
- 导入与续写:分清已完成章节、未完成片段、必须保留的设定和下一段范围。
- 短剧角色一致性:分清身份、造型与逐镜状态。
- 有后果的游戏选择:明确行动代价、可见变化和后续承接。
- 原声与旁白分工:先列出关键台词、画面依据和需要解说的空隙。
- 写作环境对比:普通聊天、DSH 插件与托管工作台各适合什么。
- 架构说明:DSH 与插件各自拥有什么,四个工作台的协议边界。
- 验证说明:每一层测试覆盖什么,哪些证据不进 Pull Request CI。
贡献与交流
- GitHub Issues:Bug、输出质量 Case、功能请求,请带上插件版本、DSH 版本和复现步骤。
- 改代码前先读 CONTRIBUTING.md:pnpm verify 是每个 Pull Request 的质量门,pnpm test:dsh 会打包并装进隔离的官方 DSH Web 跑一遍。
致谢
- DeepSeek Harness:提供原生插件运行时、Agent、会话、权限审批与 Web 工作台基础。
- LINUX DO:感谢社区的交流、反馈与开源支持。
更新日志 · 贡献指南 · 架构说明 · 安全策略
ZenStory AI 项目
Oh Story DSH 是 ZenStory AI 的一部分——一组开源工具,面向智能体的故事创作、改编与生产(GitHub 组织:zenstory-ai)。同组织项目:
| 项目 | 用途 |
| oh-story-claudecode | 网文写作技能包:扫榜、拆文、写作、去AI味、封面图 |
| drama-skills | AI 短剧 / 漫剧创作技能合集:剧本、资产、分镜、图片/视频提示词、独立审查 |
| novel-to-game | 面向原著改编、指定运行环境构建与运行证据 QA 的智能体技能 |
| video-recap-skills | 将支持的视频文件制作成中文解说,可选导出可编辑的剪映/CapCut 草稿 |
| oh-story-dsh | DeepSeek Harness 社区插件,提供小说、短剧、游戏和视频解说工作台(本仓库) |
| zenstory | 对话即创作的 AI 小说写作工作台(app.zenstory.ai) |预览分享卡片长什么样 ↓
小说、短剧、互动游戏与视频解说创作工作台,装进 DeepSeek Harness。