鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

dsh-inline-media-viewer-plugin

在 DSH 对话中内联显示图像、视频和音频路径及 URL,并提供工作区受限的本地读取与可选的 ComfyUI 代理。

会话消息
访问 GitHub
文档README

dsh-inline-media-viewer

Inline image, video, and audio previews for DeepSeek Harness Web

English · 简体中文

Turn media paths and URLs mentioned in a DSH conversation into secure inline previews—without copying them out of the chat log.

▼
text
复制代码
https://…/view?filename=frame.png → <img> exports/demo.mp4 → <video controls> audio/sound.mp3 → <audio controls>

Contents

  • Features
  • Supported media
  • Installation
  • Configuration
  • Security
  • Development
  • License

Features

FeatureDescription
Inline renderingDisplays images, videos, and audio directly below the chat turn that mentions them.
Workspace-safe readsResolves local paths with realpath and rejects traversal, out-of-workspace paths, and symlink escapes.
Optional ComfyUI proxyFetches recognized ComfyUI media URLs server-side from the configured origin, including for remote users and HTTPS pages.
Bounded transfersLimits each file or response to 48 MiB and remote requests to 20 seconds.
User controlsProvides auto-render, per-turn item limit, media height, and optional ComfyUI origin settings.

[!NOTE] ComfyUI is not required. Workspace files and regular HTTP(S) media URLs work when ComfyUI is not installed or running; its proxy is activated only for recognized ComfyUI URLs.

Supported media

TypeExtensions
Imagespng, jpg, jpeg, webp, gif, avif, bmp, svg
Videomp4, webm, mov, m4v, mkv, avi, ogv
Audiomp3, wav, m4a, aac, ogg, oga, flac, opus

Installation

Targets DSH v0.1.3-alpha.1 APIs. Host startup was also verified on v0.1.2-rc.1. Browser media playback and the final DSH v0.1.3 release have not been verified.

From npm

Install and activate the bundle in your Web profile:

▼
bash
复制代码
dsh plugin --profile web add @wisdoverse/dsh-inline-media-viewer@1.0.10

Restart the Web profile after installation.

From source

  1. Clone the plugin into a location available to your Web profile:

    ▼
    bash
    复制代码
    git clone https://github.com/Wisdoverse/dsh-inline-media-viewer-plugin.git \ /path/to/local-plugins/dsh-inline-media-viewer
  2. Add the bundle to profiles/web/package.json:

    ▼
    jsonc
    复制代码
    { "dependencies": { "@wisdoverse/dsh-inline-media-viewer": "link:/path/to/local-plugins/dsh-inline-media-viewer" }, "dsh": { "profile": { "bundles": ["…", "@wisdoverse/dsh-inline-media-viewer"] } } }
  3. Rebuild or restart the Web profile.

The plugin mounts its host RPC channel, client projection, and settings section through cordis.patch.yml.

Configuration

Open Settings → 媒体预览 / Media preview.

The navigation label and all setting copy follow DSH's active UI language and switch live between English and Chinese.

SettingDefaultAllowed values
Auto-render detected mediaOnOn / off
Maximum items per turn121–30
Maximum media height380 px160–1200 px
ComfyUI origin (optional)Emptyhttp(s)://host[:port]

Settings are stored in the DSH settings document. Writes are available only on loopback connections; remote browsers can read settings but cannot persist changes.

ComfyUI origin

  • Skip this setting entirely if you do not use ComfyUI.
  • Leave the field empty to use http://127.0.0.1:8188.
  • Accepted forms are http://host[:port], https://host[:port], and bare host[:port] (http is assumed).
  • The default port is 8188 for HTTP and 443 for HTTPS.
  • Credentials, paths, query strings, and fragments are rejected.
  • The origin must be reachable from the DSH host process. For a containerized host, use the address visible from inside the container.

Local aliases (127.0.0.1:8188 and localhost:8188) and the configured origin are recognized as ComfyUI sources. A non-empty invalid address fails explicitly instead of silently falling back to another target.

Security

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

  • Local reads are confined to the active session's workspace and known media extensions.
  • Remote reads can target only the configured ComfyUI origin; redirects are refused.
  • Local files and remote responses are capped at 48 MiB.
  • Settings writes are restricted to loopback connections.
  • The browser receives media as data: URLs rather than filesystem paths.

See SECURITY.md for the complete trust model and known limitations.

Development

Commands

CommandPurpose
node test.mjsRun the dependency-free unit tests directly.
npm testRun the same unit test suite through npm.
npm run lintSyntax-check the host modules and test file.

Project structure

PathResponsibility
index.jsHost RPC channel, ComfyUI proxy, and settings registration.
lib.jsPure, dependency-free helpers.
client/client.jsTurn projection, media renderer, and settings UI.
cordis.patch.ymlBundle mounting and integration points.
test.mjsUnit tests for the pure helpers.

The running Web profile serves a bundled copy. Rebuild or restart it after changing the source files.

License

Released under the MIT License.

会话消息

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:Wisdoverse/dsh-inline-media-viewer-plugin

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
dsh 插件推荐
dsh-btw
提供 /btw 一次性上下文旁问,不执行工具;回答显示在可复制、折叠或关闭的独立气泡中,不写入主对话。
billion-context
billion-context官方版:上下文压缩插件,兼顾小窗口(100k上下文足矣)省token(省5倍token)和超长会话(数月级别几十亿token单会话)。
dsh-conversation-archive
在 Windows 上管理 DSH 已归档会话,支持搜索、批量取消归档与删除、AI 辅助文件保留,以及经过校验的本地或网络目录备份。
dsh-auto-continue
回答因达到单次输出 token 上限被截断时自动发送"继续"续写,无需手动操作;面向自部署 Ollama 等小输出上限场景。
dsh-branchmark#dsh-branchmark
Vibe Coding 时,如果突然想到另一个问题,或者看到一段以后还会用到的回答,可以先保存下来、在 Side Chat 里快速问清楚,或另开一个相关会话继续研究,不打断当前任务的开发思路和注意力。
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题