🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

封面工坊 siweimidu/dsh-cover-studio

DeepSeek 客户端
siweimidu7 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

在无限画布上拖拽编辑 AI 日报封面并渲染成视频

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/siweimidu/dsh-cover-studio.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 43 处,展示前 26 条)
  • 读取本地文件
    lib/index.js:65
    const src = await readFile(join(HERE, 'client.js'), 'utf8');
  • 读取本地文件
    lib/index.js:95
    try { return existsSync(join(dir, 'scripts', 'build_deck.cjs')); } catch { return false; }
  • 写入本地文件
    lib/index.js:107
    await mkdir(targetDir, { recursive: true });
  • 写入本地文件
    lib/index.js:111
    await copyFile(archive, zip);
  • 删除本地文件
    lib/index.js:117
    try { await unlink(zip); } catch { }
  • 读取本地文件
    lib/index.js:144
    const subs = readdirSync(c, { withFileTypes: true });
  • 读取本地文件
    lib/index.js:158
    if (!existsSync(a)) continue;
  • 执行外部命令来自配置/变量
    lib/index.js:172
    child = spawn(process.execPath || 'node', [script].concat(args), { cwd: cwd });
  • 执行外部命令来自配置/变量
    lib/index.js:190
    child = spawn(cmd, args, { cwd: cwd, windowsHide: true });
  • 读取本地文件
    lib/index.js:205
    try { names = await readdir(dir); } catch { return []; }
  • 读取本地文件
    lib/index.js:217
    const info = await stat(join(dir, file));
  • 写入本地文件
    lib/index.js:530
    await mkdir(wd, { recursive: true });
  • 写入本地文件
    lib/index.js:534
    await writeFile(dataPath, JSON.stringify(data, null, 2), 'utf8');
  • 写入本地文件
    lib/index.js:535
    if (appConfig) await writeFile(cfgPath, JSON.stringify(appConfig, null, 2), 'utf8');
  • 写入本地文件
    lib/index.js:552
    await mkdir(projectRoot, { recursive: true });
  • 发起网络请求
    lib/index.js:612
    var res = await fetch(baseUrl + '/audio/voices', {
  • 发起网络请求
    lib/index.js:686
    var res = await fetch(baseUrl + '/audio/speech', {
  • 读取本地文件
    lib/cli.js:41
    const raw = await readFile(p, 'utf8');
  • 写入本地文件
    lib/cli.js:46
    await mkdir(dirname(resolve(p)), { recursive: true });
  • 写入本地文件
    lib/cli.js:47
    await writeFile(p, data);
  • 读取本地文件
    lib/cli.js:98
    const src = await readFile(clientPath, 'utf8');
  • 读取本地文件
    lib/cli.js:131
    for (const c of cands) { try { if (existsSync(c)) return c; } catch {} }
  • 执行外部命令来自配置/变量
    lib/cli.js:146
    const p = spawn(chrome, args, { stdio: 'ignore' });
  • 读取本地文件
    lib/cli.js:159
    if (!existsSync(dir)) {
  • 读取本地文件
    lib/cli.js:168
    const st = await stat(join(dir, f));
  • 读取本地文件
    lib/cli.js:227
    const st = await stat(png);
扫描于 2026/10/31(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

AI 日报封面工作台 | DeepSeek Harness 全页插件:169 个 AI 模型图标、无限画布拖拽编辑、RSS 生成、TTS 配音、HyperFrames 视频渲染

README

由 DeepSeek 最新模型翻译生成
AI 日报封面工作台 · dsh-cover-studio DeepSeek Harness 全页插件 — 在无限画布上拖拽编辑 AI 日报封面,一键渲染成视频。 这是什么 AI 日报封面工作台 是 AI 日报 Skill 的前端编辑器: - 导入 Skill 生成的 deck.html → 在画布上拖拽调整 - 导出 deck-data.json → build_deck.cjs 渲染成最终 HTML - 或直接生成 HyperFrames composition → 渲染成 MP4 它同时也是一个独立的封面设计工具:169 个 AI 模型图标、16 个纸墨预设、多画板无限画布。 功能 画布 | 功能 | 说明 | | 无限画布 | 1920×1080 舞台,Ctrl+滚轮以光标为锚点缩放 | | 多画板 | 最多 20 个画板,自动框选全部可见,持久化到 localStorage | | 框选 | 拖拽框选批量选中,支持反向拖动、Shift 追加、Alt 强制框选 | | 吸附 | 画布中线/三分线、元素边缘、等距对齐,Alt 临时关闭 | | 网格排布 | 2–6 列或自动,间距 0–240px 实时重排 | | 整体缩放 | 以选区中心为锚点,×0.5 到 ×2,支持文字字号同步 | | 整体旋转 | −90° 到 +90°,整组像刚体一样转动 |
展开完整文档(README 剩余 1 节)
AI 日报封面工作台 · dsh-cover-studio

DeepSeek Harness 全页插件 — 在无限画布上拖拽编辑 AI 日报封面,一键渲染成视频。

这是什么

AI 日报封面工作台 是 AI 日报 Skill 的前端编辑器:

- 导入 Skill 生成的 deck.html → 在画布上拖拽调整
- 导出 deck-data.json → build_deck.cjs 渲染成最终 HTML
- 或直接生成 HyperFrames composition → 渲染成 MP4

它同时也是一个独立的封面设计工具:169 个 AI 模型图标、16 个纸墨预设、多画板无限画布。

功能

画布

| 功能 | 说明 |
| 无限画布 | 1920×1080 舞台,Ctrl+滚轮以光标为锚点缩放 |
| 多画板 | 最多 20 个画板,自动框选全部可见,持久化到 localStorage |
| 框选 | 拖拽框选批量选中,支持反向拖动、Shift 追加、Alt 强制框选 |
| 吸附 | 画布中线/三分线、元素边缘、等距对齐,Alt 临时关闭 |
| 网格排布 | 2–6 列或自动,间距 0–240px 实时重排 |
| 整体缩放 | 以选区中心为锚点,×0.5 到 ×2,支持文字字号同步 |
| 整体旋转 | −90° 到 +90°,整组像刚体一样转动 |
| 对齐分布 | 左中右/上中下、水平垂直居中、横向纵向分布 |

图标库

169 个 AI 产品 / 1403 个图标 / 109 个厂商卡片

- 按厂商分组:智谱 AI (11)、字节跳动 (8)、Google (8)、腾讯 (7)…
- 4 列平铺,角标显示图标总数
- 左键拖拽 拖到画布,右键 展开该厂商全部图标
- 右键图标可 设为卡片封面 / 删除 / 一键恢复全部
- 128px PNG,139 个有文字标识变体

纸墨

| 项 | 说明 |
| 16 个预设 | 8 accent × 2 tone(朱砂 / Claude / 赭石 / 靛青 / 苔绿 / 紫檀 / 绛红 / 石墨) |
| 纸纹 | 160px 瓦片,1px 噪点,7.5% 不透明度,参数与 Skill 的 deck-css.md 一致 |
| 暖色渐变 | 朱砂 6% 右上 + 墨色 3% 左下 |
| 画布比例 | 16:9 / 9:16 / 3:4 |

内容生成

信息源 — 每行一个 RSS/网页地址,默认内置 4 个:

https://aihot.news/aihot-skill/README.md
https://daily.juya.uk/rss.xml
https://siweimidu.github.io/ai-ribao/feed/zh.xml
https://hex2077.dev/rss-zh-CN.xml

文本生成 — 调用 DSH 已配置的模型,提示词内置 Skill 全部硬约束:

- 六大固定分类(要闻 / 模型发布 / 开发动态 / 产品应用 / 技术与洞察 / 行业动态)
- caption 不得以句号结尾,15–28 字
- metrics 1–3 块,value 用「万/亿」
- title 不重复,summary 不用省略号

配音

| 类型 | 服务商 | 音色 |
| 本地 | EdgeTTS | 晓晓 / 云希 / 云扬 / 晓伊 + 5 个 |
| 云端 | OpenAI | alloy / echo / fable / onyx / nova / shimmer |
| 云端 | MiniMax | 青涩青年 / 少女 / 播报男声 / 播报女声 |
| 云端 | Azure / 火山 / 自定义 | 填 Base URL + Key |

自定义项支持任意 OpenAI 兼容网关(vLLM、FastAPI、one-api 等)。

切换音

6 个 Web Audio 实时合成的音效,无版权素材:

| 预设 | 音色设计 |
| 清脆铃 | C6 → E6 → G6 三音上行 |
| 气泡 | 880 → 440Hz 下滑 |
| 玻璃 | 2093 + 3136 + 4186Hz 泛音 |
| 木琴 | 523Hz 三角波 + 二倍频 |
| 金币 | A5 → E6 方波 |
| 滑过 | 带通噪声 1800→3600Hz |

视频渲染

| 按钮 | 调用 |
| 生成 composition.html | Skill 的 build_hyperframes.cjs |
| 渲染成 MP4 | npx hyperframes render |
| 生成 Skill deck.html | Skill 的 build_deck.cjs |

实测:43 KB composition → 1.5 MB / 40 秒视频,渲染耗时 1 分 40 秒。

安装

方式一:从 GitHub 安装(推荐)

在 DSH 的 设置 → 插件 → 添加插件 里输入:

dsh-cover-studio@github:siweimidu/dsh-cover-studio

或命令行:

dsh plugin --profile desktop add github:siweimidu/dsh-cover-studio

方式二:从 git URL 安装

dsh plugin --profile desktop add git+https://github.com/siweimidu/dsh-cover-studio.git

方式三:从 npm 安装

dsh plugin --profile desktop add dsh-cover-studio

方式四:本地路径

git clone https://github.com/siweimidu/dsh-cover-studio.git
dsh plugin --profile desktop add file:./dsh-cover-studio

手动安装

把整个目录复制到:

C:\Users\<你>\.dsh\profiles\desktop\node_modules\dsh-cover-studio\

环境要求

| 项 | 要求 | 说明 |
| DeepSeek Harness | ≥ 最新版 | — |
| Node.js | ≥ 22 | — |
| AI 日报 Skill | 可选 | 缺少时「文本生成 / 渲染视频」不可用,其余功能正常 |
| edge-tts | 可选 | 本地配音需要,云端 TTS 不需要 |
| HyperFrames | 可选 | 视频渲染需要,npx hyperframes |

安装后重启 DSH,左侧栏出现「封面工作台」。

使用

1. 导入已有日报

工具栏「导入 HTML」→ 选 Skill 生成的 deck.html → 自动解析成画板。

2. 从 RSS 生成

左侧「信息源」填地址 → 「文本生成」点「生成日报」→ 自动生成封面 + 每页画板。

3. 手动设计

- 左侧调色板左键拖图标到画布
- 右键厂商卡片看全部图标
- 右侧「纸墨」选预设
- 画布空白处拖拽框选,按 Delete 删除

4. 导出

| 格式 | 位置 |
| PNG / JPG | 工具栏「导出 PNG」/「全部页」 |
| 单文件 HTML | 工具栏「HTML」 |
| deck-data.json | 工具栏「导出 JSON」 |

5. 渲染视频

右侧「渲染视频」→「生成 composition.html」→「渲染成 MP4」。

快捷键

| 键 | 功能 |
| Ctrl+Z / Ctrl+Shift+Z | 撤销 / 重做 |
| Ctrl+滚轮 | 以光标为锚点缩放 |
| Ctrl+0 | 适应窗口 |
| Ctrl+= / Ctrl+- | 放大 / 缩小 |
| 空格+拖拽 / 中键拖拽 | 平移画布 |
| Delete / Backspace | 删除选中 |
| Escape | 取消选择 |
| 方向键 | 微调 1px(Shift 10px) |
| Shift+点击 | 追加选中 |
| Alt+拖拽 | 强制框选 |

项目结构

dsh-cover-studio/
├── package.json # 插件元数据 + dsh 声明 ├── cordis.patch.yml # 插件注入配置 ├── lib/ │ ├── index.js # 宿主侧:LLM / TTS / Skill 桥接 / HTTP 路由(30 KB) │ └── client.js # 浏览器侧:整个编辑器(9.9 MB,含内联图标) ├── src/ │ └── client/ │ ├── engine.js # 纯逻辑:吸附、对齐、历史、几何 │ ├── skill-bridge.js # deck-data ↔ scene 转换 │ └── icons.json # 图标源数据 ├── assets/logos/ # 早期 SVG 素材 ├── templates/ # HTML 模板 └── README.md

通信架构

前端与宿主通过一条 POST 路由:

POST api/cover-studio
{ "endpoint": "generate", "payload": {...} }
→ { "ok": true, "value": {...} }

八个端点:

| 端点 | 功能 |
| status | Skill 路径 / 分类 |
| models | 可用模型列表 |
| generate | 生成 deck-data |
| build-deck | deck.html |
| build-hyperframes | composition.html |
| render-video | MP4 |
| tts-presets | 音色 + 本地可用性 |
| tts-voices | 云端音色列表 |
| speak | 合成音频 |

开发

语法检查
node --check lib/index.js
node --check lib/client.js

本地验证(无 DSH 环境)
node -e "import('./lib/index.js').then(m => console.log(m.name))"

修改后同步到 profile:

robocopy . C:\Users\<你>\.dsh\profiles\desktop\node_modules\@local\dsh-cover-studio /MIR

兼容性

- 依赖 apply(ctx, config) 和可选的 ctx.reflect
- 其他 DSH 服务(ctx.llm / ctx.connection)运行时探测,缺失时降级而非崩溃
- 所有 UI 令牌读 --dsw-,自动跟随亮/暗主题

已知限制

| 项 | 说明 |
| 画板上限 | 20 个(防卡顿) |
| 图标体积 | 9.9 MB 内联,首次加载需 1–2 秒 |
| EdgeTTS 403 | 打包版 7.2.x 已被微软拒绝,需系统 python 装 7.3.x |
| HyperFrames | 需要 npx.cmd(PowerShell 禁止 .ps1) |
| 锁定元素 | locked 元素不参与框选,设计如此 |

致谢

图标来自:
- @lobehub/icons-static-svg 1.98.0 (MIT)
- App Store 官方 artwork
- 各厂商官网 / 官方 GitHub

纸纹、版式、数据 Schema 遵循 AI 日报 Skill 的硬约束。

许可

MIT © 2026 dsh-cover-studio contributors

商标归各自权利方所有,图标仅用于识别目的。

视口持久化

问题

每次打开工作台,画板都贴在左上角,不记得上次看到哪里。
js
var _pan = useState({ x: 0, y: 0 }); // ← 永远从原点开始 var _zoom = useState(0); // ← 永远 fit 模式

修复

新增存储键,记录 pan / zoom / activeBoard:

dsh.cover-studio.view.v1
js
function loadView() {
var v = JSON.parse(localStorage.getItem(VIEW_KEY));
if (!v || typeof v.panX !== "number") return null;
return v;
}

var _pan = useState(savedView
? { x: savedView.panX, y: savedView.panY }
: { x: 0, y: 0 });

防抖写入

平移时 pointermove 每帧触发,localStorage 是同步 API,直接写会卡。400ms 防抖: js
viewTimer.current = setTimeout(function () {
saveView({ panX: pan.x, panY: pan.y, zoom: zoom, activeBoard: activeBoard });
}, 400);

首次打开自动居中

没有存档时(第一次用),画板自动居中,不再贴左上角: js var fit = Math.min((vw - 80) / spec.w, (vh - 80) / spec.h);
setZoom(fit);
setPan({
x: (vw - spec.w fit) / 2 - bx * fit,
y: (vh - spec.h * fit) / 2 - by * fit
});

存档校验

| 情况 | 结果 |
| JSON 损坏 | 返回 null,走首次居中 |
| 缺 panX/panY | 返回 null |
| 正常 | 精确恢复 |
预览分享卡片长什么样 ↓siweimidu/dsh-cover-studio
分享 · DeepSeek Harness Hub
siweimidu/dsh-cover-studio

在无限画布上拖拽编辑 AI 日报封面并渲染成视频

回到顶部