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
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
Links
More in this category
Tencent/WeKnora#dsh-weknora★ 31789
Four read-only tools over a WeKnora knowledge base: list knowledge bases, hybrid passage search, reassemble one document's chunks in order, and WeKnora's own cited RAG or ReAct-agent answer with a resumable session id.
superdesigndev/treg★ 4052
Tool catalog for agents: search ~2,600 external endpoints (SEO and SERP, backlinks, social, people and company enrichment, ad libraries, scraping) by the task you want done, read each one's parameters and per-call price, then call it with the credential injected server-side. Ships the skill plus an MCP row that stays disabled until TREG_TOKEN is set.
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1130
Tencent CloudBase backend for DeepSeek Harness — scaffold and deploy full-stack apps from chat, render query results as table cards with paging, sorting and CSV export, preview a deployment on its domain, and call the CloudBase MCP toolset (`mcp__cloudbase__*`) with device-code login.
gitroomhq/postiz-agent#dsh-postiz★ 499
Connects DeepSeek Harness to Postiz over MCP: list connected social media channels, fetch per-platform posting rules, and schedule, draft, or publish posts to X, LinkedIn, Instagram, Facebook, Threads, TikTok, YouTube, Reddit, Bluesky, Mastodon, Discord, Slack, Telegram and more; adds a postiz workflow skill.
EthanYoQ/Invoice-Downloader#dsh-invoice-downloader★ 482
Local IMAP invoice download, OCR, archive, and Excel reimbursement summaries for DeepSeek Harness.
anysearch-team/anysearch-dsh★ 445
AnySearch-powered real-time web and vertical search provider for DeepSeek Harness.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.