dsh-plugin-runcat-inventory
DSH 插件总览(逃咪):以表格视图管理已安装插件,支持状态过滤、HMR 热生效的启停开关、配置查看/复制、卸载与 npm 更新提醒。
安装
dsh plugin --profile web add dsh-plugin-runcat-inventory
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✓ |
| 2 列装 | ✓ |
| 3 挂载 | ✓ |
| 4 启动 | — |
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
dsh-plugin-runcat-inventory (Runcat Plugin Overview / 逃咪-插件总览)
[中文](README.md) | English
Version: v1.3.2 · Changelog: [CHANGELOG.en.md](CHANGELOG.en.md) ([中文](CHANGELOG.md))
A better DSH plugin list: table view, status filters, enable/disable switches (hot-applied), uninstall, update reminders, config viewer and copy, automatic zh/en UI switching.
Entry point: Settings → Runcat Plugin Overview (in the Settings left navigation; shown as 逃咪-插件总览 in Chinese).
Screenshot
Features
Capability · Description
Table view · 4 columns with fixed ratios: Name 36% / Status 15% / Source 21% / Actions 28% (name takes the largest share)
Entry point · Registered directly in Settings → Runcat Plugin Overview (left navigation, right after "Plugins")
Languages · Built-in Simplified Chinese / English; the UI follows the DSH environment (Settings → General → Language, or the browser language); the plugin's own description switches too
Runtime status · Enabled/Disabled + Cordis status (Mounted / Waiting for deps / Loading / Mount failed / Not mounted / Unloading)
Description / Version · Read from each package's package.json; the full description is shown in the expanded row (click "Details")
Source · Only this plugin shows its repository home page (https://github.com/runcat-tommy/dsh-plugin-runcat-inventory); others show the install method (local link / local path / GitHub / npm / built-in)
Details expansion · The "Details" button appears when a plugin has a description or a config; the expanded row shows the full description + config JSON, with one-click copy
Enable / Disable · Edits the profile's cordis.patch.yml (user override layer), hot-applied via HMR — no restart needed
Uninstall · "Uninstall" button in the Actions column with a confirm dialog; removes the dependency and bundle layer from the profile, effective after restarting the Web UI; cannot uninstall itself or built-in packages; uninstalled rows are marked "Uninstalled" in the list (dimmed, actions disabled) to avoid repeat operations
Update reminders · Checks the npm registry for the latest version (batched scan: 4 per batch, 200ms gap, 1h cache); when the plugin itself has a new version, a prominent card appears at the top of the panel; other plugins show vX → vY highlighting in the version column + an inline "Update" button + a top banner; the update pins the target version into the command (add <name>@<latest>) and re-checks the installed version afterwards
Update results · Progress and results render inside the row (the confirm dialog closes on confirm and never blocks the UI): success → "applied" or "restart DSH to use it"; failure → "Update failed" plus Reason (error code / command / exit code / stderr); after a successful update the plugin asks DSH's own HMR to hot-apply, so no restart is needed when it can be applied
Batch & restart · Two buttons in the top banner: Update all (sequential, per-row progress, summary) and Restart DSH (CLI hosts restart directly and the page waits for it; on Desktop the shell owns the host, so it explains that a manual reopen is required)
Update boundaries · Local link dependencies (link: / file: / workspace:) are not updatable (clicking Update refuses explicitly: installing the npm release would drop the development link); a local version already ≥ npm latest reports "already up to date" instead of failing; VERSION_MISMATCH now means only "genuinely older than the target" (npm source not synced yet — retry later)
Search & filter · Keyword (combined search over name / id / description / source / version) + status filter
Sorting · Config order (default) / Name ↑ / Name ↓
Width · No sticky columns; ←/→ arrow keys scroll horizontally; the Source column hides on narrow screens
Structure
dsh-plugin-runcat-inventory/ # local folder name after git clone (same as the repo) ├── package.json # dsh.bundle.patch + dsh.client declarations ├── cordis.patch.yml # patch layer: inserts this plugin entry into the root entry list ├── lib/ │ ├── index.js # Host half: loader inventory + /runcat-api routes + patch file editing │ └── client.js # Browser half: hand-written ModuleLoader bundle, table UI ├── test/ │ └── mock-test.mjs # host-half unit tests (node test/mock-test.mjs, 5 cases) ├── assets/ │ ├── preview-zh.png # Chinese-UI screenshot │ └── preview-en.png # English-UI screenshot ├── CHANGELOG.md # changelog (Chinese) ├── CHANGELOG.en.md # changelog (English) ├── README.md # Chinese docs └── README.en.md # English docs (this file)
Prerequisites
Dependency · Required? · Notes
Node.js · ✅ Required · DSH itself is a Node program; install Node.js (suggest 20+ or the latest LTS; no strict minimum)
DSH CLI · ✅ Required · npm i -g @deepseek-ai/dsh
pnpm · ✅ Required · dsh plugin forwards to pnpm; without it you get pnpm not found on PATH; install with npm i -g pnpm
Git · ⚠️ Depends on method · Needed for Method B (GitHub source) or Method C (local development); not needed for Method A (npm)
Network · ⚠️ Depends on environment · Method A needs access to the npm registry; Methods B/C need access to GitHub — if direct connections fail, configure a git proxy, e.g. git config --global http.https://github.com.proxy http://127.0.0.1:7897
This plugin itself has zero dependencies: the host half only uses Node built-ins (plus lazily resolving js-yaml from the profile), and the browser half is a hand-written ModuleLoader bundle. Nothing extra to install.
Installation
Installs into the web profile (replace web with your profile name if different).
Method A: npm install (simplest, reco
…(truncated)
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:6,最后更新 2026-10-19