In the DeepSeek Harness (DSH) environment, recording sessions is relatively easy, but organizing a day’s work trajectory and generating a summary lacks standard tools. dayreel addresses this issue by turning a day’s conversation records flowing through DSH into a visually designed daily report, and further rendering them into a narrated summary video.
Plugin Overview¶
dayreel is a community plugin maintained by peikuo and licensed under the MIT License. It is built end-to-end on TypeScript/Node.js and has no Python dependencies. Its core value is automating the generation of work content documents and video summaries, helping users intuitively review their daily work.
Core Capabilities¶
dayreel implements the above features through two runtime skills and a set of tools:
- Two runtime skills:
dayreel-content: Responsible for collecting facts, writing content documents (including the main workline IR and daily metadata), and deterministically rendering the daily report in HTML/Markdown format.dayreel-render: Projects the content document into typed scenes, renders them into an MP4 video, and continuously reports progress.
- Core tools:
fetch_today_recap: Retrieves the cross-session summary for the current day, including cost estimates based on the actual model used in each session.fetch_session_detail: Drills into detailed logs of a single session on demand.dayreel_report: Generates the daily report (HTML/MD), with aforceparameter to force revised regeneration.dayreel_render: Asynchronously starts video rendering.dayreel_status: Polls rendering progress and returns a playable URL when complete.
- Embedded player: The client pane registers a
<video>player card. After rendering is complete, the video can appear directly in the tool-call line without copying the URL.
Installation¶
Use the official installation command to add the plugin:
dsh plugin add github:peikuo/dayreel
Usage Flow¶
In the DSH Web UI, just tell the model “Generate today’s summary video,” and the process starts automatically:
- Content generation: The model loads the
dayreel-contentskill, callsfetch_today_recapto get the cross-session summary for the current day (automatically excluding the current conversation), callsfetch_session_detailif needed to obtain details, and finally outputs the daily report throughdayreel_report. - Video rendering: The model loads the
dayreel-renderskill and callsdayreel_renderto start video rendering. - Progress monitoring: The model repeatedly calls
dayreel_status, reporting progress through narration (i/n -> Remotion %), until completion. - Retrieving results: When finished, the model returns a playable URL (
http://127.0.0.1:<port>/dayreel/<date>/<seq>/recap.mp4) and the local path.
Cost Optimization and Model Routing¶
Writing the daily report and rendering the video do not require a flagship model. The plugin routes models through the dayreel_author tool and does not rely on the model’s self-directed choice.
- Routing logic: The menu is the LLM registry configured in the environment. If the user explicitly names a model (via the
agentparameter), route directly; if there is a remembered preference, use it directly; if the registry contains only one entry, use it directly; otherwise, display a prompt to ask. - Configuration options:
fork: Optional. When set totrue, the sub-agent inherits the full history of the current conversation (up to the last complete turn); defaults tospawn.defaultModel: Optional. Fallback model ID used when there is no interaction.
- Memory mechanism: Preferences are saved in
preferences.jsonin the plugin output directory. - Limitation: External CLI sub-agents (such as codex) cannot call these tools.
Dependencies and Limitations¶
- Dependencies:
msedge-tts: Used for narration (pure Node, using Microsoft Edge speech).Remotion + ffmpeg: Used for video rendering (ffmpeg must be configured in PATH).
- Data scope: Conversation summaries only cover today and yesterday. Earlier dates are Tier 2 features (not implemented), and requests for earlier dates are rejected by the tools.
- Asset copyright: The background music is AI-generated (Gemini), and the project holds the rights to use and distribute it.
Configuration Options¶
In the plugin configuration, developers can adjust the following options:
- id: dayreel
name: dayreel
config:
fork: true # 是否继承当前对话上下文
defaultModel: deepseek-v4-flash # 默认模型,无交互时兜底
Conclusion¶
dayreel uses a standardized workflow to turn DSH work records into readable daily reports and watchable videos, lowering the barrier to reviewing work. For more details and source code, visit the GitHub repository.