Introduction

When using DeepSeek Harness (DSH) for conversations, you often encounter references to local file paths or remote media links. The usual approach is to copy these links, open them in a browser, and then take screenshots or paste the content back, which increases interaction cost. The dsh-inline-media-viewer plugin solves this problem by allowing images, videos, and audio to be rendered directly in the conversation flow without copying files into the chat history.

Plugin Overview

dsh-inline-media-viewer is a DSH client plugin maintained by Wisdoverse. Its core purpose is to convert media paths and URLs mentioned in text into safe inline previews within the DeepSeek Harness Web interface. This includes local files (workspace-safe), direct web media, and optional ComfyUI proxy support.

Core Features

  • Inline rendering: Displays image, video, and audio elements directly below the conversation turn.
  • Workspace-safe reads: Uses realpath to resolve local paths and rejects traversal attacks, paths outside the workspace, and symlink escapes.
  • Optional ComfyUI proxy: Fetches detected media URLs server-side from the configured ComfyUI source.
  • Bounded transfer: Limits file or response size to 48 MiB, with a 20-second timeout for remote requests.
  • User control: Provides an auto-render toggle, a maximum items per turn limit, media height settings, and ComfyUI origin configuration.

Installation and Enablement

The plugin supports DSH v0.1.7-rc.2 and v0.2.0-rc.2. To install it, run the following command in the Web profile:

dsh plugin --profile web add @wisdoverse/dsh-inline-media-viewer@1.0.12

After installation, restart the Web profile to activate the plugin.

Configuration

Go to Settings → Media preview to configure it. All settings are stored in the active DSH configuration file.

Setting Default Allowed Values
Auto-render detected media On On / off
Maximum items per turn 12 1 - 30
Maximum media height 380 px 160 - 1200 px
ComfyUI origin (optional) Empty http(s)://host[:port]

ComfyUI origin configuration notes:
* Leave it empty if you are not using ComfyUI.
* If left empty, http://127.0.0.1:8188 is used by default.
* Accepts http(s)://host[:port] or a bare host[:port] (HTTP by default).
* Default ports: 8188 for HTTP and 443 for HTTPS.
* Credentials, paths, query strings, and fragments are not accepted.
* The origin must be reachable from the DSH host process. For containerized environments, use an address visible inside the container.
* Write permissions are limited to loopback connections; remote browsers can only read these settings through the plugin’s authenticated RPC channel.

Security and Limitations

The plugin is designed as a local trust helper, not a general file or network proxy:

  • Local reads: Limited to the active session’s workspace and known media file extensions.
  • Remote reads: Can target only the configured ComfyUI origin and rejects redirects.
  • Transfer limits: Both local files and remote responses are limited to 48 MiB.
  • Settings writes: Limited to loopback connections.
  • Data format: The browser receives media as data: URLs.

Development and Maintenance

  • Repository: https://github.com/Wisdoverse/dsh-inline-media-viewer-plugin
  • License: MIT
  • Development environment: The project depends on @deepseek-ai/cordis and @deepseek-ai/schemastery.
  • Directory link: https://www.skillhub.cn/plugins/Wisdoverse/dsh-inline-media-viewer-plugin

Summary

dsh-inline-media-viewer simplifies viewing media references by rendering media directly in the conversation flow. Combined with safe handling of local file paths and optional ComfyUI proxy support, it provides practical media preview capabilities while remaining lightweight.