deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
English | 中文
Share a selected range of chat messages as Markdown, HTML, TXT, or PNG — a community plugin for
DeepSeek Harness (tagged
dsh-plugin and listed in the
awesome-dsh-plugin market registry).
This repository is the standalone distribution of the plugin: it ships both halves prebuilt
(lib/), installable with dsh plugin add and from the Plugin Market. The reference
implementation lives in the harness repository as packages/session-query/session-chat-share,
where both halves are built and tested.
Compatibility: DeepSeek Harness 0.1.6-alpha.2 or later. The plugin reads session data through
the host's session-query service and one payload route, and contributes to the Session Header's
utilities slot. Harness 0.1.0-rc.x needs the previous dsh-chat-share package instead (its last compatible release is dsh-chat-share@1.3.0).
/share slash command — plain /share opens the dialog, /share txt saves
the whole chat as one .txt, /share last <n> saves only the newest n messages (combine:
/share txt last 10).sessionRowMenu contribution registry, Share and Save TXT rows to each session's sidebar ... menu. The dialog lists the
session's shareable messages (append-origin user/message and assistant/message text), lets
you pick an inclusive range via From/To selects or by clicking message rows — or switch to
multi-select mode to export the union of chosen rows — choose Markdown, HTML, TXT, or PNG,
preview the rendered artifact (GFM), then copy it to the clipboard or download the file
(.md / .html / .txt / .png). Nothing is uploaded: the recipient opens the artifact
directly.autoSaveDir configured on the plugin row, one TXT per
session is written after every completed turn.npm (preferred — the Plugin Market prefers npm sources):
dsh plugin --profile demo add dsh-session-chat-share
GitHub (alternative; ships the same prebuilt artifacts):
dsh plugin --profile demo add github:chrisx9z/dsh-session-chat-share#v1.4.4
The package ships prebuilt artifacts (lib/ — host and browser halves), so neither install
needs a build step. Releases are tagged v1.x.y; pin a tag or commit for reproducible installs.
Then use it in any session of that profile:
/share
The plugin is listed in the awesome-dsh-plugin registry, so it appears in Settings → Plugin Market — browse, one-click install, and updates once the catalog refreshes (usually within a day of a registry change). The npm source above makes market installs resolve to the published package.
The installed package's browser half is picked up by the host's dsh.client scan, so the Header
button and its dialog work on hosts whose composition includes it. Its imports are limited to
platform modules every web build provides (@deepseek-ai/dsh-client-store,
@deepseek-ai/dsh-client-ui-primitives, React), plus a bundled copy of html-to-image used for
PNG export.
For the official distribution path (the harness repository's own web bundle), integrate the
package as packages/session-query/session-chat-share and compose the chat-share row in
packages/bundle/web-app/cordis.patch.yml.
src/index.ts): registers /share on the human-command plane and serves
GET /api/session.share?sessionId=<id>&includeSubagents=<bool>. The route observes the session
through sessionQuery (live or cold), folds durable events into shareable messages
(user/message, assistant/message, append-origin tool/call), appends direct subagent
children when asked, and inlines referenced images as base64. With autoSaveDir configured it
also writes one TXT per session after each completed turn.src/client/): a controller fetches that payload once per session, keeps
per-session dialog state, filters rows by the dialog options, and renders the chosen range with
pure renderers (render.ts) into Markdown (verbatim text under role headers), a self-contained
HTML page (GFM-lite), plain text, or a PNG rasterization./share txt)
always export the whole chat.The package's test suite (command and payload-route behaviour, controller state, renderers,
dialog, header action, and a real Loader composition) runs inside a deepseek-harness checkout
where the @deepseek-ai/* workspace dependencies resolve:
pnpm exec vitest run packages/session-query/session-chat-share
... menu rows need a harness whose ui-workspace carries the sessionRowMenu
contribution registry. On a stock harness the plugin still mounts and the Header action plus /share
remain the entry points.MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。