DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Md Preview — DeepSeek Harness 插件(DSH Plugin)
← Plugins

@benz-ai-x/dsh-md-preview

Md Preview

DSH Markdown 预览:点击对话中的 Markdown 文档,会在聊天右侧打开停靠的渲染预览面板。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:benz-ai-x/dsh-md-preview#71b4375c38601c01cdc8f09cbd794031847ee17d
README兼容性版本

兼容性与来源证明

Md Preview 以 @benz-ai-x/dsh-md-preview 发布,当前版本为 0.10.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/20

版本

0.10.0stable
2026/9/8
0.9.0stable
2026/9/7
0.8.0stable
2026/9/7
查看其余 15 个版本收起版本
0.7.2stable
2026/9/6
0.7.1stable
2026/9/6
0.6.0stable
2026/9/6
0.4.0stable
2026/9/1
0.3.0stable
2026/9/1
0.2.7stable
2026/9/1
0.2.6stable
2026/9/1
0.2.5stable
2026/9/1
0.2.4stable
2026/9/1
0.2.3stable
2026/9/1
0.2.2stable
2026/9/1
0.2.1stable
2026/9/1
0.2.0stable
2026/9/1
0.1.1stable
2026/9/1
0.1.0stable
2026/9/1

相关插件

正在加载相关插件…

最新版
0.10.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
221
最近提交
2026/9/9
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

README

English | 中文

@benz-ai-x/dsh-md-preview

DSH (DeepSeek Harness) Web GUI plugin — markdown preview, editing & workspace file browser beside the chat. Preview rendered markdown and plain-text files, edit with conflict-guarded saves, and browse the session workspace tree without leaving the conversation.

Features

  • Markdown chips in the produced-files row of a turn open a right-docked preview panel rendering GFM, syntax-highlighted code, and TeX.
  • A per-message "Preview documents" action lists that turn's markdown documents.
  • Non-markdown deliverables keep the shipped open-on-desktop behavior.
  • The document sidebar reserves its own space beside the conversation on wide screens; below 1056 px and when maximized it opens as an overlay. The paperclip right of Session-log download toggles workspace browsing; the X in the panel header closes it, with an unsaved-draft guard. Its width defaults to half the viewport up to 720 px, supports a remembered 360–1200 px drag preference, and clamps to the available space. Native navigation and tool details retain their own controls. Esc closes the panel and returns focus to the header entry.
  • The panel renders nothing while no preview target is set.
  • Harness typography and themes — navigation uses 14px/20px text with 12px/18px parent paths, consistent icons and larger controls. Search stays at the top while entries scroll; the initial rail is 220px and manual widths are preserved. The panel docks from the top of the frame and keeps its own workspace/back and close controls reachable. Full paths and the version are available by focusing the document identity. The editor follows the platform's light/dark palette and code font; rendered Markdown keeps the platform's paragraph rhythm at every width.
  • Editing — the panel's Edit action enters a CodeMirror editor (line numbers, GFM highlighting, Cmd/Ctrl-S save); Save writes back to the workspace, flashes a "Saved" toast, and returns to the rendered view; Cancel discards the draft. Only existing files edit. Non-conflict save failures show the failure code with a Retry action.
  • Conflict guard — saving over a file that changed elsewhere (another session, the agent, an external editor) prompts "the file changed elsewhere": Reload or Overwrite; closing with unsaved edits asks first.
  • Workspace browser — the panel header's Workspace action enters a directory tree of the session workspace (lazy expansion, loading/empty/failed states); single-click renders .md rich, .txt and other text monospace, other types a clear unsupported notice; the current document highlights and auto-reveals in the tree; full keyboard traversal (arrows/Enter); the header shows the path breadcrumb. Expanded directories silently revalidate on every re-entry (and from the tree's refresh button) — the agent keeps producing files mid-conversation, and a failed refresh never blanks what's on screen.
  • Outline — the header's outline popover lists the document's ATX headings (fenced code never counts); clicking scrolls the rendered heading in the view face and jumps the cursor to the source line in the edit face.
  • Side rail (from 640px) — the file tree and outline live in a collapsible left rail (文件|大纲 tabs, selection remembered); browsing never swaps the document away. Below 640px the face-swap/popover fallback holds; Mod-Shift-O/E jump, Esc dismisses.
  • Segmented mode + edit feedback — a persistent 预览|编辑 control (dirty drafts raise the guard on switch); a status bar with live Ln/Col, size, and the resident saved-at stamp; undo/redo buttons; Mod-B/I/K markup keys (? lists them); documents with inline HTML warn once per edit session.
  • Workspace search — the browse area's search box finds documents by name across the whole session workspace — unexpanded directories included — through a cancellable host traversal that never reads file bodies. Case-insensitive substring match on names; each result shows name plus workspace-relative path (same-name documents stay apart); opening a result re-runs the full read and guard. States stay honest: searching…, "no results" only from a complete search, "incomplete results" with its reason (unreadable directories / traversal or result cap), failure with retry. A new query cancels the old one's work; clearing restores the exact tree you left. (Distinct from the editor's in-document find.)
  • Quick entries — two compact rows above the tree: 「Produced this turn」 lists the previewable documents the session's newest turn produced (owning-service facts, closing-seq fenced, live while the turn streams), and 「Recently read」 lists this session's recently read documents recency-first. Both show name plus path and open through the same guarded path with a fresh read; empty sources simply hide; the continue-reading entry keeps its own explicit seat beside them.
  • Reading position — the outline popover highlights the entry owning your position (scroll in the view face, cursor line in the edit face) and keeps it in view; the header shows a dirty dot for unsaved drafts, folds the version into the crumbs tooltip, and annotates the find/save shortcuts; the find panel is localized and shows a match count (n/m).
  • Editor find — the edit face carries a CodeMirror search panel (header button and Mod/Ctrl-F).
  • Mermaid diagrams — fenced ```mermaid blocks render as diagrams after the document settles; the block banner stays (copy still reads the source), and any failure falls back to the plain code block. Mermaid is inlined into the client bundle but evaluated lazily (first diagram pays the parse cost; bundle ~3.9 MB minified / ~1.1 MB gzip).

Install

Requires DSH baseline 0.1.2-rc.1 (see peerDependencies) and a web profile.

dsh plugin --profile <name> add @benz-ai-x/dsh-md-preview
dsh --profile <name> --dump-config   # expect the id: md-preview row
dsh --profile <name>                 # open the Web GUI; click a chip after a turn produces .md
dsh plugin --profile <name> remove @benz-ai-x/dsh-md-preview

Three install forms (per the DSH publish spec)

FormCommandStatus
npm (recommended)dsh plugin --profile <name> add @benz-ai-x/dsh-md-preview✅ prebuilt, works out of the box
tarballdsh plugin --profile <name> add ./benz-ai-x-dsh-md-preview-<ver>.tgz (from pnpm pack:publishable)✅ prebuilt, no build approval needed
Gitdsh plugin --profile <name> add github:benz-ai-x/dsh-md-preview#<sha>✅ builds from source via the package's self-contained prepare (transpile-only; no type declarations ship on this form) — see below

Git installs fetch source, and pnpm refuses to run a git dependency's prepare until the package is explicitly allowed. After the first add fails, copy the package key pnpm printed into the profile's pnpm-workspace.yaml:

allowBuilds:
  '@benz-ai-x/dsh-md-preview': true

then re-run add. Allowing a build executes the package's code on your machine at install time — allow only sources you trust, and pin a commit (#<sha>) so a later push cannot silently change what runs.

Configuration

- id: md-preview
  name: '@benz-ai-x/dsh-md-preview'
  config:
    maxBytes: 1048576        # per-file read/write cap in bytes
    allowedExtensions: ['.md', '.markdown']
FieldTypeDefaultNotes
maxBytesnumber1048576per-file read/write cap; exceeded returns too-large
allowedExtensionsstring[][".md", ".markdown"]extensions eligible for editing
previewExtensionsstring[][".md", ".markdown", ".txt"]extensions eligible for preview (a superset of the editable set; plain-text members render read-only)

Failure codes

The panel shows md-preview/<reason> on failure. All codes:

CodeMeaning
md-preview/bad-requestpath empty or unusable; or a save with neither fingerprint nor force
md-preview/unknown-sessionsession does not exist
md-preview/no-workspacesession has no working directory
md-preview/unsupported-extensionextension outside the allowlist
md-preview/forbiddenpath escapes the session workspace
md-preview/not-foundfile does not exist (editing targets existing files only)
md-preview/too-largefile (read) or content (write) exceeds maxBytes
md-preview/conflictfile changed since the read backing the save (no force)
md-preview/unavailableIO error during read/write

Known limits

  • Inline prose mentions of .md files still open on the desktop (owned by ui-deliverables, not this plugin).
  • The panel is contributed through shell.overlay; its reversible layout adapter reserves space beside the native frame on wide screens without replacing the host details column. Narrow screens and maximize use an overlay. The adapter depends on the pinned frame DOM and must be checked when upgrading Harness; see ADR-0004.
  • Uploaded document attachments are not previewable (no transcript surface today).
  • The outline lists ATX headings only (setext forms render but stay out of the popover).
  • Mermaid renders with its default theme; documents mixing indented code blocks with fenced ones skip the diagram pass entirely (order-parity safety check).

Development (source-linked)

pnpm install
pnpm verify                 # context:check:strict + typecheck + test + build + built:check
pnpm context:link           # source-linked development: rewrite link: at the harness checkout (registry by default)
pnpm watch:client           # client bundle watch build

Structure

PartLocationNotes
Host Remotesrc/remote.tsmdPreview/read(sessionId, path, signal); workspace scoping, extension allowlists, byte caps
Remote contributionsrc/typert/remote-client.tshand-maintained browser-side descriptors (generator-equivalent)
Browser entrysrc/client/index.tsmounts the Remote + registers three Slot contributions
Preview panelsrc/client/PreviewOverlay.tsxshell.overlay (list, additive); rendering + geometry only
Session machinesrc/client/preview-session.tspure reducer for read/edit/save/prompts
Editorsrc/client/editor.tsxCodeMirror 6 (curated extensions incl. the search panel, inlined at build)
Workspace treesrc/client/WorkspaceBrowser.tsxlazy tree with highlight/auto-reveal/keyboard and silent revalidation
Outlinesrc/client/outline.tsATX heading scan + rendered-heading resolution
Diagram passsrc/client/diagrams.tspost-render mermaid enhancement, fail-soft to the code block
Chip rowsrc/client/MdChips.tsxconversation.chat.turnTail (chain; claims markdown-bearing turns)
Message actionsrc/client/PreviewAction.tsxconversation.chat.assistant-actions (list, additive)

Real-profile verification (local checkout)

pnpm build
dsh plugin --profile <name> add ./dsh-md-preview
dsh --profile <name> --dump-config
dsh --profile <name>        # open the Web GUI, produce a README.md and click the chip
dsh plugin --profile <name> remove @benz-ai-x/dsh-md-preview

Pack & publish

pnpm pack:publishable       # registry-clean tarball + self-check (no devDeps, no link:/workspace:)
pnpm publish:registry       # publish via the same cleaned-manifest flow

Source-linked verification proves compatibility with the pinned harness checkout (see dsh-reference.lock.json); the publish form is proven by the packed-tarball profile smoke.

License

MIT

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Remote Web Ui@linxin666/dsh-remote-web-ui通过扫码配对访问 dsh Web GUI,共享一个官方界面:设置按钮旁的二维码可将手机和 PC 配对到同一个 Web GUI(手机采用竖屏触控适配层,PC 使用完整桌面界面),通过一次性令牌和 rClient Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。