DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

peikuo /

peikuo/dayreel

Verified

Dayreel — a DeepSeek Harness (dsh) community plugin: turn your day of work sessions into a designed daily report + a narrated summary video.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@22bb1ad6

dayreel

DeepSeek Harness (dsh) 社区插件:把你一天流经 dsh 的工作轨迹,做成一份设计感日报 + 一段带旁白的总结视频。全 TypeScript/Node 栈,无 Python 依赖。

dsh plugin add github:peikuo/dayreel

装好后在 Web UI 里说「生成今天的日报」即可,详细步骤见安装。按 Harness 的组合包(bundle)规范分发(dsh plugin add github:peikuo/dayreel# 可锁定版本)。

组成

  • 两个 runtime skill:
    • dayreel-content:调工具收集跨会话事实,写内容文档(工作主线 IR + 当日元数据),并从中确定性渲染出 HTML/Markdown 日报
    • dayreel-render:把内容文档确定性投影成 typed 场景,渲染成 mp4,并持续播报进度
  • 模型工具:
    • 读日志:fetch_today_recap(跨 workspace 当日会话摘要,含按各会话实际模型的费用估算)、fetch_session_detail(单会话按日钻取)
    • 产出:dayreel_report(日报 HTML+MD,支持 force 修订重生成)、dayreel_render(异步启动视频渲染)、dayreel_status(轮询进度,完成后返回可播放 URL)

数据来源分两层:默认读折叠表层(compaction 后的会话摘要,便宜);当摘要缺细节时按需钻取单会话。会话摘要方案只覆盖今天与昨天——更早的日期属于日志深挖(Tier 2:时间切片→子代理生成 IR→汇总),数据量和成本都很大,未实现;请求更早的日期会被工具直接拒绝。渲染产物通过同一 webServer 以 /dayreel/* 路由提供(Range 支持,可拖动进度条)。

GUI 内嵌播放器:客户端半区(随本 bundle 一起加载)为 dayreel_status 工具注册了内嵌 <video> 播放器卡片,渲染完成后视频直接出现在工具调用行里,无需复制 URL。

安装(bundle 方式)

# 本地路径安装(add 时 pnpm 会运行 prepare,构建 lib/)
dsh plugin --profile demo add ./dayreel

# 从 GitHub 安装(需要构建授权,见下)
dsh plugin --profile demo add github:peikuo/dayreel

首次使用会初始化 profile(@deepseek-ai/dsh-base 作为第一个组合包)。验证层再启动:

dsh --profile demo --dump-config   # 应看到 "# == dayreel" 层
dsh --profile demo

从 GitHub 安装的构建授权

git 安装拉取的是源码,pnpm ≥10 默认拒绝运行 prepare。第一次 add 失败时,把 pnpm 打印的包键加进该 profile 的 pnpm-workspace.yaml:

allowBuilds:
  dayreel: true

然后重新 add。只对源码可信的包授权,并锁定 commit(github:peikuo/dayreel#<sha>)。

省成本:生成模型选路与记忆

日报的撰写/渲染不需要旗舰模型。dayreel_author 工具由插件执行选路(不依赖模型自觉),菜单就是你环境里配置的 LLM 目录——运行时经 ctx.llm 枚举(listProviders × listModels,与 Web 模型选择器同源),dayreel 不维护任何路由副本,你增删模型无需改插件配置。插件侧只有两个引用型可选项:

- id: dayreel
  name: dayreel
  config:
    fork: true                       # 可选:用 fork 后端(继承当前对话上下文);默认 spawn
    defaultModel: deepseek-v4-flash  # 可选:model id 或 provider/model,排菜单首位+无交互时兜底

选路规则:用户口头点名 → agent 参数(模型 id 或 provider/model,支持唯一前缀)直接路由;有记住的偏好 → 直接用,零打断;目录里只有一个模型 → 直接用,零打断;否则弹窗两问(选哪个模型 + 是否记住)。选"记住"后偏好写在插件输出目录的 preferences.json(存 {provider, model} 对;删掉该文件即遗忘)。headless/无交互服务时不弹窗,直接用 defaultModel(缺省用目录第一项)并在结果里注明。目录里已不存在的过期偏好会被忽略并重新询问。

fork: true 时子代理继承当前对话的完整历史(截至上一个完整 turn);spawn 则靠任务内嵌指引 + 自己调 fetch_today_recap 收集。两种 in-process 子代理共享本进程组合,都能调用 dayreel 的读取工具。注意:跨模型前缀缓存不会命中,fork 重放历史按目标模型空闲价计费;外部 CLI 子代理(codex 等)调不了这些工具,不做生成后端。GLM 等 OpenAI 兼容路由按 llm-pi-ai 的接法配好后会自动出现在菜单里。

使用

在 GUI 里对模型说:「生成今天的总结视频」。预期流程:

  1. 模型加载 dayreel-content skill → 调 fetch_today_recap 拿跨会话当日摘要(当前对话自动排除)→ 需要细节时按需 fetch_session_detail → 写内容文档 → dayreel_report 出日报(修订/换风格传 force: true)
  2. 用户要看视频 → 模型加载 dayreel-render skill → dayreel_render(插件把内容文档确定性投影成场景)
  3. 模型循环调用 dayreel_status 播报进度(旁白 i/n → Remotion %),直到完成
  4. 完成后模型给出可播放 URL(http://127.0.0.1:<port>/dayreel/<日期>/<序号>/recap.mp4)和本地路径
  5. 用户看完后的反馈(对话中回复)会被插件被动记录到 output/feedback/<jobId>.jsonl,并据此进入修订模式(force: true 重生成)

依赖

依赖 用途 说明
msedge-tts 旁白 TTS(纯 Node,微软 Edge 语音,免费免 key) 包自带依赖,pnpm install
Remotion + ffmpeg 渲染视频 cd remotion && pnpm install(ffmpeg 需在 PATH)

assets/bgm/ 的背景音乐由 AI(Gemini)生成,项目持有使用与分发权利,随 bundle 一并提供。

remotion/ 渲染子项目的依赖不会随 bundle 安装;在已安装的 checkout 里首次渲染前,需手动 cd remotion && pnpm install。

开发

pnpm install        # 安装构建依赖(esbuild)
pnpm run build      # esbuild 打包 src/ → lib/index.js(prepare 也会做)

快速迭代可直接用 --patch 加载 TS 入口(harness 源码环境支持):

pnpm dsh web --patch /abs/path/to/dayreel/src/index.ts

演示(占位数据)

不读任何真实会话,用一份**显式标注「演示占位」**的示例内容文档走完渲染链路(铁律 1/1.5:演示数据必须标注,不得冒充真实日报):

pnpm run build
pnpm demo                 # 三套版式日报各出一份,打印路径
pnpm demo report newspaper # 单出指定版式
pnpm demo video            # 渲染演示视频(需 cd remotion && pnpm install,ffmpeg 在 PATH;TTS 走网络)

示例文档在 src/demo-doc.ts:标题与摘要带【演示占位】标注,日期固定 2000-01-01(产物与真实日报天然分目录),test/demo-doc.spec.ts 守卫标注不被移除。

输出示例

产物根目录:已安装进 DSH profile 时为 $DSH_HOME/dayreel/(dsh 启动时设置该环境变量);源码 checkout / 演示运行为包内 output/(gitignored,已设 DSH_HOME 时除外):

output/
  2026-08-17/
    01/
      progress.json         ← dayreel_status 轮询的进度文件
      audio/scene-0.mp3     ← 每段旁白的 TTS 音频
      props.json            ← Remotion 渲染参数
      recap.mp4             ← 成品视频(经 /dayreel/* 提供)
—/ 5

No ratings yet

Verified DSH bundle

Commit 22bb1ad6a3af

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout