DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Wrapped — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
W

dsh-wrapped

Wrapped

DeepSeek Harness (dsh) 插件:/wrapped 为当前会话生成可分享的 SVG 摘要卡片。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:rand0wn/dsh-wrapped#aa4a3d1de500827b96373f653452d39c101e565a
README兼容性版本

兼容性与来源证明

Wrapped 以 dsh-wrapped 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

0.1.0stable
2026/8/20

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 2
周下载
0
最近提交
2026/8/20
查看源码 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Client Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包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 包。Usage@linxin666/dsh-usage用于 dsh Web GUI 的使用统计插件:检测各提供商的余额和编码计划配额,并提供实时令牌使用记录,同时在侧边栏条目中显示当前会话提供商今日的使用量Whale Widgetdsh-whale-widgetDSH Web 界面右下角的 DeepSeek 余额小鲸鱼挂件:余额/今日已用/峰谷定价、自定义泡泡点击序列(文本/余额/今日/峰谷/图片/随机语句与并列加权选择)、逐行样式与字体、悬浮快捷编辑、音效与每轮消耗、自定义角色/动图/音效、吸附与翻转自定义

README

dsh-wrapped

A DeepSeek Harness (dsh) plugin that turns a session into a shareable summary card — Spotify Wrapped, for your agent session.

Why

Every session already has real, interesting numbers behind it — how much time went to reasoning versus tool calls, how fast the model streamed, how many turns it took — but they only ever show up as a small stats strip you glance at and forget. dsh-wrapped turns those numbers into a dark, screenshot-shaped card built for actually posting somewhere.

Install

dsh plugin --profile <name> add dsh-wrapped

Add the package name to that profile's dsh.profile.bundles list (see dsh-minimal-anchor's README for why this second step is required — being a listed dependency alone doesn't activate a plugin's dsh.bundle patch):

{
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "dsh-wrapped"
      ]
    }
  }
}

Confirm it composed with dsh --profile <name> --dump-config — look for a wrapped entry.

Usage

Type /wrapped in any session. It writes an SVG card to .dsh-wrapped/wrapped-<sessionId>-<timestamp>.svg under the current working directory and prints a plain-text summary alongside the file path. Open the SVG in a browser and screenshot it, or convert it to PNG with any SVG tool.

Needs @deepseek-ai/dsh-session-stats mounted in the profile (it ships in the dsh-web-app bundle by default) — without it, /wrapped returns a clear error instead of a blank or wrong card.

What's on the card

  • Turn and step counts
  • Tool time vs. thinking (LLM) time
  • Average time to first token
  • Decode speed (tokens/sec), omitted below a 1-second sample floor to avoid a noisy/misleading rate from too few tokens
  • A one-line "type" verdict derived from the tool-time/thinking-time ratio: The Explorer, The Deep Thinker, or The Balanced Operator

Configuration

# profiles/<name>/cordis.patch.yml
- insert:
    - id: wrapped
      name: 'dsh-wrapped'
      config:
        minDecodeSampleMs: 1000
        verdictRatioThreshold: 1.5
FieldDefaultDescription
minDecodeSampleMs1000Below this much decode time, tokens/sec is shown as — instead of a number — too small a sample is noise, not a rate.
verdictRatioThreshold1.5How far tool-time and thinking-time must diverge (as a ratio) before the verdict picks Explorer/Deep Thinker rather than Balanced Operator.

All of it comes from the session's own sessionStats projection — no separate tracking, no extra token cost, nothing persisted beyond the SVG file itself.

How it works

Registers a /wrapped command via @deepseek-ai/dsh-commands. The handler reads ctx.sessionProjections.snapshot(invocation.agent.session) for the sessionStats key (turns, steps, llmMs, toolMs, ttftMs/ttftSteps, decodeMs/decodeTokens), transforms it through a pure buildCard() function into display rows and a verdict, then renders that to a self-contained SVG string and writes it with plain node:fs. Commands never enter model history and cost no tokens — this doesn't touch a single request.

buildCard and renderSvg are pure functions with no dependency on a booted Context, so the interesting logic (verdict thresholds, decode-speed sample floor, XML escaping) is unit tested directly — see Development.

Verified against a real local dsh web boot, not just types: installed into a scratch profile, drove a real browser session with Playwright, ran /wrapped after a real multi-tool-call turn, and confirmed the written SVG file's numbers matched the session's own stats strip.

Troubleshooting

/wrapped returns "sessionStats projection is not available". Your profile doesn't have @deepseek-ai/dsh-session-stats mounted. It ships by default in the dsh-web-app bundle; a custom or headless profile may need it added explicitly. Check with dsh --profile <name> --dump-config.

"This session has no completed steps yet." /wrapped needs at least one closed step (step/end) to have something to summarize — it can't report on a session where nothing has happened.

Can't find the SVG file. It's written relative to the harness process's current working directory, not your project directory or the harness checkout — check the exact path in the command's success text, or look under .dsh-wrapped/ from wherever you launched dsh.

Development

npm install
npm run typecheck
npm test

buildCard/renderSvg are plain functions with no dsh runtime dependency — examples/render-standalone.ts renders a card from hand-written stats, useful for iterating on the design without a live session:

npx tsx examples/render-standalone.ts > card.svg

License

MIT