Audio/video FileViewer for dsh-better-sidebar: native inline playback for mp4/webm/mkv/mov and mp3/flac/wav, served by a Range-capable streaming media route.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:tsonglew/dsh-media-preview
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
Audio and video preview for the DeepSeek Harness (dsh) web GUI, registered as
a FileViewer inside
dsh-better-sidebar. Open an
.mp4/.webm/.mkv/.mov/… or .mp3/.flac/.wav/… file in the sidebar
file tree and it plays inline with native controls.
| Video | Audio |
|---|---|
Why a dedicated route
better-sidebar's built-in /sidebar/file media route reads whole files into
memory, has no HTTP Range support, and caps at an image-oriented size
limit. This package serves media through its own streaming route
(/media-preview/file) with:
- HTTP Range (206) seeking — the browser can jump anywhere in a long video
- Streamed responses (
fs.createReadStream) — no whole-file buffering - Whole-filesystem scope behind the same browser trust fence the built-in
/apidocuments (loopback Host + same-origin markers), matching the official directory-picker browse backend — the sidebar explorer browses outside the session cwd (e.g. a music folder in~/Documents), and media files must play wherever the explorer can open them
Supported extensions
Video: mp4 webm mov m4v mkv avi ogv ts 3gp flv
Audio: mp3 wav ogg oga m4a aac flac opus weba wma
Extension-less media is still claimed via magic-byte sniffing (ftyp,
EBML, OggS, fLaC, RIFF/WAVE, RIFF/AVI, ID3, MP3 frames).
Install
dsh plugin --profile web add github:tsonglew/dsh-media-preview
(Requires dsh-better-sidebar ≥ 0.4.0, which exposes
ctx.betterSidebar.registerFileViewer.)
Configuration
All fields optional (profile patch layer):
- id: media-preview
config:
maxMediaBytes: 2147483648 # hard cap on one served file (default 2 GiB)
trustedHosts: [] # extra non-loopback authorities
License
MIT
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 8076
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 8076
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
omdsh-dev/DSH-better-sidebar★ 3828
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
ccch1mneyyy/dsh-TUI★ 3661
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 3277
A fixed-corner whale widget for the DSH web GUI — balance, today's usage and per-turn cost with peak/off-peak pricing, editable balance-alert and daily-budget bubbles, a module-based custom bubble queue with A/B weighted choices and random lines or images, 30+ vendor templates (OpenAI, OpenRouter, Kimi, SiliconFlow, Ark, Zhipu, MiniMax and more) with per-model balance and subscription quota, plus task-end sound, imported audio, custom roles and a resource manager. Local-only, no telemetry.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1628
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.