Introduction

When running agents in DeepSeek Harness (DSH), pure text models cannot directly “see” user-uploaded images; even when switching to a vision-enabled model, image descriptions in the conversation flow are often scattered across message history, making them inconvenient to review and copy. Video scenarios are even more problematic: they require transcoding, frame extraction, and then model interpretation segment by segment, which is often cumbersome with DSH’s native interface alone.

dsh-visual-plugin is a visual media plugin for the DSH Web interface, developed by community maintainer jyh20030112. It does not configure or call private visual endpoints separately; instead, it leverages DSH’s native attachment and model pathways, and centrally displays image thumbnails, copyable model responses, and normalized video and keyframe analysis results in the right-side Web UI panel.

What is This

dsh-visual-plugin (npm package name: dsh-visual-plugin, current version 0.3.0) is a Web platform plugin for DeepSeek Harness, licensed under MIT, with zero additional npm dependencies at runtime. The plugin is categorized as a “Network Tool” in the SkillHub community directory.

In one sentence: It enables the currently selected image-capable model in DSH to natively understand user images, perform scene-aware keyframe extraction and analysis for videos, and present all results uniformly in the right-side panel.

Core Features

Native Image Understanding

User-uploaded images are processed through DSH’s native attachment channel, with direct responses generated by the currently selected model that has image capabilities. The plugin does not rewrite model messages or call separate visual APIs; model providers, endpoints, and credentials are all managed uniformly by DSH.

Copyable Image History

The right-side panel records thumbnails and the current model’s final response for each image, supporting history expansion and one-click copying, making it easy to paste descriptions elsewhere for use.

Video Upload and Validation

The plugin handles video uploads independently, only proceeding if the extension, file signature, and FFprobe detection results are consistent. Supported formats include MP4, M4V, MOV, AVI, MPG/MPEG, MKV, and WebM.

Scene-Aware Video Analysis

Videos are normalized to H.264/yuv420p MP4, then PySceneDetect is used to extract ordered, timestamped keyframes, which are sent as DSH native image attachments to the current vision model for frame-by-frame understanding.

Right-Side Panel and Advanced Settings

The panel can switch between image/video views, play normalized videos directly, and use “Ask in chat” to temporarily store the selected video in a chat draft (without automatic submission). In the Settings → Plugins → Plugin configuration under the Visual Media card, you can control sidebar visibility and adjust video processing parameters such as upload size, storage quota, duration, output dimensions, FPS, CRF, and keyframe count.

How It Works

image → DSH native attachment → current image-capable model → final answer
  → /vision-bridge/recent → panel thumbnail + copyable description

video → container validation → H.264/yuv420p normalization → PySceneDetect
  → timestamped keyframes → DSH native image attachments → current model answers

Before use, you must first select an image-capable model in DSH; the plugin itself does not provide separate vision model configuration options.

Installation and Activation

Video Dependencies (Optional)

Image functionality does not depend on the following tools; video functionality requires FFmpeg/FFprobe (>= 6.1, same major version, and including libx264) and PySceneDetect (>= 0.7.1 < 0.8) to be pre-installed on the host machine. The plugin does not automatically download or install them, and missing dependencies will be reported in the settings card.

ffmpeg -version
ffprobe -version
python -m pip install 'scenedetect[opencv]>=0.7.1,<0.8'
scenedetect version

Installing the Plugin

dsh plugin --profile web add dsh-visual-plugin

You can also specify the GitHub source:

dsh plugin --profile web add github:jyh20030112/dsh-visual-plugin

After installation, restart dsh web.

Uninstalling

dsh plugin --profile web remove dsh-visual-plugin

Restart dsh web to take effect.

Typical Usage

After the installation steps above, proceed as follows:

  1. Open Settings → Plugins → Plugin configuration and expand the Visual Media card. Use Sidebar to control the right-side panel’s visibility and adjust advanced video parameters as needed.
  2. In the DSH model selector, choose a model with image capabilities.
  3. Send an image. Once the model responds natively, the right-side panel will display the thumbnail and copyable final response.
  4. Click Upload video next to the input box to upload a video. After processing, switch to the Videos view in the right-side panel to play it; clicking Ask in chat will write the video context to a chat draft for you to send manually.

When developing the plugin source code locally, you can first run npm run bootstrap, then install via link:

cd /absolute/path/to/dsh-visual-plugin
npm run bootstrap
dsh plugin --profile web add link:/absolute/path/to/dsh-visual-plugin

bootstrap will automatically search for Harness source code in the same or parent directory; if the directory layout differs, you can specify it explicitly:

HARNESS=/absolute/path/to/deepseek-harness npm run bootstrap

Applicable Scenarios and Considerations

Who is it for?

  • Users already using vision-enabled models on the DSH Web interface who want to centrally manage image description history.
  • Scenarios requiring normalization of local videos, keyframe extraction, and analysis by the current DSH vision model.
  • Workflows that involve directly previewing videos in the right-side panel and then writing analysis requests to a chat draft.

Usage Notes

  • Image and keyframe understanding relies entirely on the model currently selected in DSH; confirm that the model has image capabilities before switching.
  • When FFmpeg or PySceneDetect is not installed, image functionality remains available, but video-related capabilities will be limited and indicated on the settings page.
  • The plugin runs on the host machine with the permissions of the current dsh process; video transcoding and file read/write occur locally. Before installation, read the source code and the MIT license to confirm compliance with your security and regulatory requirements.
  • The SkillHub community directory is an independent site with no official affiliation with DeepSeek / High-Flyer; the plugin list is maintained by the community, so verify it yourself before installation.

Conclusion

dsh-visual-plugin integrates DSH’s native image understanding capabilities with scene-aware video keyframe analysis into a unified Web right-side panel, reducing the steps of searching for descriptions in conversation history and manually processing videos. If you have already configured a vision model on the DSH Web interface, you can install and try it using the commands in this article.