dsh-plugin-prune
文件与数据 活跃维护

dsh-plugin-prune

Octo-o-o-o/dsh-plugin-prune

提供DeepSeek Harness各插件的真实使用遥测数据,涵盖调用次数、错误率、延迟、会话数统计,支持自定义价值评分,可精准识别冗余插件并安全移除,无需手动排查无效依赖。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
TypeScript
主要语言
MIT
开源协议
48 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:Octo-o-o-o/dsh-plugin-prune
git clone https://github.com/Octo-o-o-o/dsh-plugin-prune.git
git clone git@github.com:Octo-o-o-o/dsh-plugin-prune.git
README.md main

dsh-plugin-prune

Prune dead plugins in DeepSeek Harness — measures the real usage of every
plugin's tools and skills (calls, error rate, latency, cross-session use) plus
your value ratings, and flags the plugins you can safely remove.

中文说明

What it does

This is a pure observer plugin: it registers no model tools and modifies no
business state. It:

  • Listens to tools/execute + tools/result and aggregates, per tool and per
    skill, the number of calls, error count, total/average dispatch duration,
    rendered output size, distinct using sessions, and per-day call counts
    (rolling 90-day window).
  • Adds a 「插件体检 / Plugin Health」 tab inside Settings → Plugins with:
    • a plugin overview table joined with the shipped plugin inventory
      (pluginInventory Remote): status (ok/disabled/failed), contributed tool
      counts and real call statistics per installed plugin — flagging the
      never-used / failed / marked-useless ones, i.e. the direct answer to
      "which plugins can I remove";
    • a tool/skill detail table: calls, 7-day activity, error rate, average
      latency, last use, sessions, output size, machine suggestions
      (never called — likely a dead plugin, consider removing / high error
      rate / marked useless / active and reliable), and a one-click
      Useful / Neutral / Useless value rating per row.
  • Persists the statistics as JSON at $DSH_HOME/dsh-plugin-prune.json
    (falls back to ~/.dsh/dsh-plugin-prune.json), so counts accumulate across
    restarts.

Note: statistics are only collected while the plugin is installed and
running
; past usage cannot be reconstructed.

Installation

# from npm
dsh plugin --profile web add dsh-plugin-prune

# from a git checkout
dsh plugin --profile web add github:<your-org>/dsh-plugin-prune

Restart dsh web and open Settings → Plugins → Plugin Health.

Compatibility: dsh >= 0.1.0-rc.5, Node ^22.19 || >=24, web profile.
engines.dsh gates installation on older deployments.

Configuration (optional)

The patch row accepts optional config:

- id: plugin-prune
  name: 'dsh-plugin-prune'
  config:
    debounceMs: 2000   # persist debounce (>= 100)
    keepDays: 90       # per-day count window (>= 7)
    dataPath: ''       # absolute file override; empty = $DSH_HOME default

Honest limitations

  • DeepSeek Harness exposes no first-class tool → plugin provenance. The
    “source plugin” column is best-effort: a static catalog for shipped official
    tools, stack-frame attribution for tools registered while this plugin runs,
    and a small table for well-known third-party tools. Anything else shows
    「未知来源」 — the per-tool statistics themselves are always exact.
  • UI-only plugins (themes, skins, layout tweaks) emit no tool calls, so they
    cannot be measured automatically. The value of such plugins remains a manual
    judgement.
  • “Safe to remove” combines objective signals (frequency, error rate, latency,
    cross-session use) with your own rating; use both before uninstalling.

Privacy & security

  • Everything stays on your machine: the stats file contains tool names,
    counters, timestamps and your ratings. Nothing is sent anywhere.
  • Like every dsh plugin, this package is host code: review it before
    installing (it is small: ~800 lines total, no runtime dependencies beyond
    the dsh platform packages), and pin a version or commit.

Development

pnpm install
pnpm run check      # typecheck (host + client) and build

Layout: src/index.ts (host service) → lib/; src/client/ → the
__ModuleLoader__ factory bundle at client/client.js. cordis.patch.yml
inserts the host row; scripts/preflight.mjs guards the package-name wiring.

Publishing to other users

  1. npm

    npm publish --access public

    prepare builds on git installs; prepack runs the full check plus
    preflight. Publish a version only after pnpm run check passes.

  2. GitHub — push the repository and add the topic dsh-plugin so
    dsh-find-plugin and the community directories can discover it.

  3. awesome-dsh-plugin.com — submit the package to the community curated
    directory so the marketplace surfaces it.

  4. Changelog & tags — tag releases (v0.1.0); the marketplace and users
    alike prefer pinned versions over latest.

License

MIT