deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
English | 中文
Renders chat Markdown image references () as a gallery under each closing assistant message in the DeepSeek Harness web GUI.
/dsh-chat-image): the path must resolve inside a registered workspace and be a regular file of at most 32 MiB; the file is served with an extension-derived content type.data: URLs render directly.As a standalone bundle, from a dsh installation:
# from npm
dsh plugin --profile web add dsh-chat-image
# from the git repository
dsh plugin --profile web add github:Niobium-41-nb/dsh-chat-image
# from a tarball
dsh plugin --profile web add ./dsh-chat-image-0.1.0.tgz
A git install fetches sources and runs the package's prepare build; pnpm ≥ 10 requires an explicit build allowance for that script (the add output prints the exact pnpm-workspace.yaml entry to add). The web profile's browser roster (clientModules) picks the browser half up automatically through the dsh.client manifest; the Loader mounts the host half through the bundle patch.
The model writes ordinary Markdown image references in its reply:

 <!-- paths with spaces need angle brackets -->

Relative paths resolve against the session working directory; absolute paths (drive-letter, /, or \\) pass through. Assistant closing turns only: the tail hole does not exist under user messages, and a turn with produced files keeps that row (the gallery shows only when it declines).
pnpm install
pnpm test # vitest: route status matrix + reference extraction
pnpm build # tsc types (lib/types) + tsdown bundles (lib/index.js, lib/client.js)
The browser bundle is CJS wrapped for the dsh loader (window.__ModuleLoader__.load) with only the frozen platform-module table external; the node half has no runtime imports. Both halves consume harness services structurally, so the package carries no runtime or type dependency on @deepseek-ai/* beyond the platform modules.
<my image.png>); an unquoted multi-word destination is parsed as path + title.403 for anything else, so it cannot read arbitrary host files.CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。