Install
Inside DeepSeek Harness, with dsh-market
dsh plugin --profile web add dshmarket
Or from the command line
dsh plugin --profile web add github:PiedPiper911/dsh-video-tools
Installing runs third-party code with your own permissions — it can read your files, use your credentials and reach the network. Review the source first, and pin a commit (github:owner/repo#sha) when you can.
README
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
| Tool | What it does |
|---|---|
video_info |
Probe a video's duration, resolution, and codecs without transcoding. |
video_frames |
Extract evenly-spaced frames as JPEGs, or a single frame at a timestamp. |
image_compress |
Recompress an image to JPEG at a target width to shrink it for vision models. |
video_to_gif |
Convert 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
FFmpeginstance 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
Comments
Comments live in GitHub Discussions. Sign in with GitHub to post or react.