Open source · DeepSeek Harness · Field Note 02

A video-editing Agent needs a transaction boundary.

dsh-timeline-studio-plugin connects DeepSeek Harness to Timeline Studio without pretending that a language model should manipulate a project by intuition. It gives the Agent seven narrow tools, a real dry run, revision-safe writes and a render whose media properties are checked before success is reported.

Published August 18, 2026
By Martin Delophy
Open source · Agent architecture · Video editing
The dsh-timeline-studio-plugin GitHub repository connected to inspected video, audio, captions, timeline checks and a verified MP4 render

The open-source plugin makes the boundary visible: inspect the project, preview the semantic diff, apply a revision-checked batch, then verify the render.

THE SHORT VERSION

An editing Agent should not own the editor's rules. It should express intent through a small, testable contract while Timeline Studio remains responsible for project truth.

01

This is an action bridge, not another editor

The tempting way to integrate an Agent with a video editor is to build a second editing surface around the model: another panel, another representation of tracks, another set of partial rules. That is also how three versions of the same product logic begin to drift apart. The plugin takes a thinner position. DeepSeek Harness owns discovery, validation, cancellation and model-facing results. The plugin launches Timeline Studio's command runner. Timeline Studio owns project parsing, edit validation, transactional writes and rendering.

The plugin is mounted inside Harness and does not add a separate visual panel. It also bundles the edit-timeline-studio Agent Skill, so the model receives both the tools and the operating guidance required to use them responsibly. The browser editor remains the place for visual preview, WebGPU features and composition that still needs direct human judgment.

DeepSeek HarnessDSH pluginTimeline command layer.timeline + MP4
02

Seven tools are enough when their boundaries are honest

The model-facing API is deliberately small. Four read tools inspect a project, track, clip or transcript. One previews a semantic project diff. One applies a batch. One renders. That separation gives the Agent a predictable rhythm: understand before proposing, preview before writing and verify after changing.

project_inspectRead dimensions, revision, tracks and portable project structure.
track_inspectExamine one track without expanding the entire archive.
clip_inspectResolve stable clip identity, timing and source offsets.
transcript_inspectRead speech evidence needed for caption and editorial decisions.
project_diffRun the real command registry as a dry run without writing output.
project_apply / renderApply a validated batch, then produce and verify the supported MP4.

A dry run matters only if it exercises the same reducers and revision rules as the real write. Here, project_diff does exactly that. It is not a summary generated from a different interpretation of the plan.

03

The transaction begins with revision and identity

Editing is retry-heavy. An Agent call may time out after the command has already written a result. A user may change the project between inspection and apply. Without explicit identity, a retry can move the same clip twice; without a base revision, an apparently valid plan can overwrite a newer edit. The plugin uses both.

A successful non-empty operation batch increments the project revision once. Reusing an already-applied operation ID is an idempotent no-op. A stale base revision carrying new operations fails. If validation or any operation fails, the batch does not leave a half-edited archive behind. Source projects are not overwritten by default; a new editable project becomes the result.

dsh plugin --profile web add "github:MartinDelophy/dsh-timeline-studio-plugin#main"

TIMELINE_STUDIO_ROOT=/absolute/path/to/web_player
TIMELINE_PROJECTS_ROOT=/absolute/path/to/projects
dsh --profile web
04

The filesystem boundary is part of the product

A path argument is not permission. The plugin's allowedRoots setting is a real filesystem boundary for project, plan, output and asset paths. The integration resolves real paths, protects nested references and rejects symlink escapes. Output parents are resolved as well, so a path that looks local cannot quietly redirect a write outside the authorized workspace.

Cancellation crosses the same boundary. When Harness cancels a tool call, the signal is propagated to the Timeline Studio child process instead of leaving an orphaned render consuming resources in the background. Errors are converted into structured tool results rather than disguised as successful prose.

05

A render is not true until it is inspected

The initial command renderer targets a documented portable subset: Visuals, Voiceover and Music. It verifies the resulting H.264/AAC MP4 container, dimensions, duration and audio stream. If the project uses visible features the renderer cannot reproduce, it rejects the composition instead of returning a plausible but incomplete video. Rich browser-only composition stays in Timeline Studio.

7unit tests passed
1real Harness/Cordis E2E passed
180×320MP4 probed end to end

The end-to-end path creates a real .timeline project, inspects revision zero, previews an import and 9:16 conversion without writes, applies the batch at revision one, inspects tracks, clips and transcript data, renders a real vertical MP4 and verifies it with ffprobe. It also rejects an out-of-root project. The documented environment was last verified on August 15, 2026 with Node 24.11.1, Harness packages 0.1.0-rc.6, Cordis 4.0.1 and FFmpeg 8.0.1.

06

The durable outcome is an editable project

The most important design choice is not technical. The plugin does not reduce video editing to “prompt in, MP4 out.” The rendered video is a deliverable; the versioned .timeline archive remains the record a person can reopen, review and change. That is why inspection, diff and apply are first-class tools instead of hidden implementation steps.

The result is less magical and more useful: an Agent that can explain what it intends to change, prove that the plan fits the current revision, write a new editable project and return a render that has actually been checked.

Questions people ask

Is this another video editor?

No. It is an action bridge for DeepSeek Harness. Timeline Studio remains the editor and owns deterministic project operations and supported rendering.

Why does the Agent need both diff and apply?

The diff is a real semantic dry run over the current project. It gives the Agent and user a reviewable preview before the same command registry writes a new archive.

What happens if the project changes before apply?

A plan with a stale base revision and new operation IDs fails. Previously applied operation IDs are idempotent no-ops, which makes retries safer.

Inspect the bridge. Keep the project editable.

View the plugin on GitHubOpen Timeline Studio