DeepSeek Harness Plugin

PiedPiper911/dsh-video-tools

Stars ★ 1 Category Tools & Capabilities Added 2026-08-19

Browser-local audio/video toolkit for DSH — extract frames, capture thumbnails, compress images, and convert clips to GIF with FFmpeg.wasm.

Install

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:PiedPiper911/dsh-video-tools

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

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 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

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.