dsh-video-tools ๐ŸŽฌ

August 17, 2026 ยท View on GitHub

Browser-local audio/video tools for DeepSeek Harness (DSH), powered by FFmpeg.wasm.

No uploads, no servers โ€” every operation runs in your browser via WebAssembly.

Install

dsh plugin add @piedpiper911/dsh-video-tools

Tools

ToolWhat it does
video_infoProbe a video's duration, resolution, and codecs without transcoding.
video_framesExtract evenly-spaced frames as JPEGs, or a single frame at a timestamp.
image_compressRecompress an image to JPEG at a target width to shrink it for vision models.
video_to_gifConvert a video clip to an animated GIF (two-pass palette optimization).

Example: give a vision model frames from a local video

1. upload the video โ†’ workspace
2. video_frames { input: "demo.mp4", count: 4 }
3. describe what you see in each frame

How it works

  • One shared FFmpeg instance is lazily loaded on first use and reused for the whole session โ€” the ~30 MB core downloads exactly once.
  • All I/O happens in FFmpeg's in-memory virtual filesystem; nothing touches disk.
  • Tool arguments are validated with the DSH schema DSL (defineTool), so the model only ever sees well-formed inputs.

Development

npm ci
npm run build      # tsc โ†’ lib/
npm test           # vitest

License

MIT