DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

dsh-paste-preview

Paste Preview

DeepSeek Harness (dsh) web plugin: paste images into the composer with thumbnail previews, route them as file attachments for text-only models, and show zoomable thumbnails in sent messages

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add dsh-paste-preview@0.1.0
READMECompatibilityVersions

Compatibility and provenance

Paste Preview is published as dsh-paste-preview and currently resolves to version 0.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
9/17/2026

Versions

0.1.0stable
9/17/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
35.9 kB
Files
7
Surface
web
License
MIT
Source
npm
GitHub
★ 1
Weekly downloads
0
Last push
9/17/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
Paste Preview — DSH Plugin for DeepSeek Harness

Related plugins

More verified plugins in productivity-workflow.

Acp App@deepseek-ai/dsh-acp-appThe dsh ACP profile bundle: automation-only JSON-RPC stdio and process lifecycle over dsh-baseClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / git-graph / pet / remote-web-ui / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Agent Teams@nanmicoder/dsh-agent-teamsAgentTeams for DeepSeek Harness: multi-agent team collaboration (captain, members, tasks with dependencies, messaging) driven by natural language, with a tree monitor in the web GUI

README

dsh-paste-preview

简体中文

A DeepSeek Harness (dsh) web plugin that makes pasted images usable with text-only models, without losing the visual preview.

What it does

  • Paste → thumbnail. Pasting an image into the composer shows a thumbnail in the attachment rail (click to zoom) instead of inserting a file path.
  • Text-only models still get the image. When the selected model does not accept image input, the image is re-wrapped as a plain file attachment. dsh stores it and hands the model a read-only path, so tools such as modlens_read_image can read it. Vision-capable models keep dsh's native image path.
  • Thumbnails in sent messages. Images that went through the file path render as zoomable thumbnails in the conversation history, including after a reload.
  • Drag-and-drop and images added from the file picker are rerouted the same way.

Install

dsh plugin add dsh-paste-preview

Restart dsh afterwards.

Using it together with @liustack/modlens

modlens has its own paste-to-path feature that intercepts pastes first. Turn it off in your profile's cordis.patch.yml:

- id: modlens
  config:
    pasteToPath: false

This is not shipped in the plugin's own patch on purpose: a patch that targets a missing entry id makes dsh fail at startup for anyone without modlens.

How it decides

The browser asks GET /dsh-paste-preview/verdict?model=<selector label>. The host answers takeover: true only when every model whose name or id appears in the label declares text-only input. modlens' own "(modlens vision)" wrappers are ignored so they cannot veto the model they wrap. Unknown or unresolvable models answer false, which keeps the native behaviour.

HTTP routes

RoutePurpose
GET /dsh-paste-preview/verdictWhether pastes for the current model should be rerouted
GET /dsh-paste-preview/fileReads back a stored image attachment for thumbnails (sha256 id, png/jpg/webp/gif only, ≤ 32 MB)
GET /dsh-paste-preview/debugLists providers, models and their input modalities

All routes go through dsh's connection.requestRejection check and answer 401 to unauthenticated requests. Stored files are read through the dsh attachment store, which re-verifies the name, size and digest.

Limitations

  • Sent-message thumbnails are attached to dsh's built-in file cards, which expose no public slot. The attachment reference is read from the rendered component's props. If a future dsh release changes that structure, the plain file card is shown instead; nothing breaks.
  • Right after sending, before the message is persisted, the plain card may show briefly.

Development

pnpm install
pnpm test

License

MIT