DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-wrapped

d

dsh-wrapped

Manifest valid

Registers /wrapped, which reads the session's own stats and renders a shareable dark SVG summary card — tool vs. thinking time, decode speed, and a tool/thinking-ratio verdict.

hasBundlePatch

dsh-wrapped

CI

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

| Field | Default | Description | | --- | --- | --- | | minDecodeSampleMs | 1000 | Below this much decode time, tokens/sec is shown as instead of a number — too small a sample is noise, not a rate. | | verdictRatioThreshold | 1.5 | How 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

Similar plugins

dsh-turn-fold

Folds streaming reasoning and tool calls into collapsed step bars and collapses each finished turn into a single summary bar; step bars show native tool icons, filenames, edited line counts, and failu

UI & ExperienceManifest valid

0

dsh plugin --profile web add dsh-turn-fold

by HongzhongL

GrayPrint — dsh web plugin for live reasoning-style fingerprints. Scores paragraph openers against grayscale/current references and independently tracks Let me ↔ We need. 94.2% holdout.

Manifest valid

3

MIT

JavaScript

Aug 21, 2026

dsh plugin --profile web add dsh-grayprint

Publishes a project plan the agent writes: ordered steps in a panel docked to the right of the frame, and the framework graph as an auto-laid-out diagram in its own centre tab, downloadable as SVG or

UI & ExperienceManifest valid

0

dsh plugin --profile web add dsh-planchart

by sunshaobei

A strip above the composer listing files modified in the current session (collapsed by default), with a Review button opening a per-session change panel showing before/after hunks from the session's o

Development & InfrastructureManifest valid

3

108/wk

JavaScript

Aug 16, 2026

dsh plugin --profile web add dsh-session-review

by dongwenxiu83-web

Folds Think and tool-call rows into a floating summary pill with red failure counts, for a cleaner writer-friendly chat view.

UI & ExperienceManifest valid

3

MIT

JavaScript

Sep 1, 2026

dsh plugin --profile web add dsh-friendly-steps

Adds a Reading tab to the DSH web client that shows process steps and live reasoning in source order, collapses successful turns to the final answer, and keeps the original tabs, composer, and tooling

UI & ExperienceManifest valid

0

dsh plugin --profile web add dsh-clearview