DeepSHPlugins
dsh-web#packages/dsh-web-all 專案預覽
GITHUB / COMMUNITY PROJECT

dsh-web#packages/dsh-web-all

UI 增強TypeScriptApache-2.0

DSH Web UI 外掛與皮膚合集:任務看板、git 圖、右側面板、遠端移動端 UI、桌寵、實時 token 統計與皮膚中心。

9,761 Starszhu1090093659 更新時間 2026-10-29
訪問 GitHub 倉庫
dsh-web#packages/dsh-web-all 專案預覽

專案介紹

中文

DSH Web UI 外掛與皮膚合集:任務看板、git 圖、右側面板、遠端移動端 UI、桌寵、實時 token 統計與皮膚中心。

English

Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.

專案資訊與收錄訊號

指標同步 2026-10-29
作者 / 組織
zhu1090093659
倉庫
zhu1090093659/dsh-web#packages/dsh-web-all
GitHub Stars
9,761
Forks
596
開發語言
TypeScript
許可證
Apache-2.0
最近推送
2026-10-29
Manifest
資料中檢測到宣告

公開倉庫不自動等於可商用;許可證與當前相容性以原專案文件為準。Manifest 和資料評分不構成安裝安全認證。

資料評分

94/ 100
維護活躍
100
文件與實用資訊
85
生態關注度
89
安裝便捷訊號
100
專案宣告訊號
100

近 1 天仍在更新;README 含完整安裝與使用說明;7,274 stars 社群認可度高。

評分來自已有資料快照的五維模型,僅作瀏覽參考,不是實際使用評測或安全檢測結論。

安裝與使用

所有專案資料與許可均以對應 GitHub 倉庫為準。

dsh plugin --profile web add github:zhu1090093659/dsh-web#path:/packages/dsh-web-all

複製命令不會自動執行。請先閱讀倉庫文件,確認環境要求與許可證。

專案截圖

倉庫 README

GitHub 原文

已儲存的倉庫文件快照;文件抓取時間未記錄,可能與上方目錄介紹處於不同版本。安裝前請核對當前倉庫說明。

儲存庫檔案保留原文,指令與授權文字不作自動改寫。

@linxin666/dsh-web-all

English | 中文

The one-click aggregate package for the whole dsh web UI family: installing it brings every functional plugin of the family (task board / Git graph / pet / mobile remote / SSH / model capabilities / session archive / skins / settings / community plugins, with aggregate.yml in this package as the complete list) plus the external plugin dsh-better-sidebar (right panel). The compat bridge layer is folded into this package (src/client), so no separate compat npm package is needed.

Note (DSH 0.1.2-alpha.2): dsh-better-sidebar was tentatively excluded on 2026-08-30 because the alpha.2 cohort removed the @deepseek-ai/dsh-client-runtime face it imported. It is back in the aggregate and currently pins 0.19.0-alpha.1 (the 0.1.5-alpha.2-aligned alpha published 2026-09-09; its inject list names @deepseek-ai/dsh-client-modules plus the optional @deepseek-ai/dsh-client-ui-sidebar-right face). @mlgbnb/dsh-archive-manager stays excluded: its latest upstream build (1.0.7) still imports the removed face and would abort dsh web boot.

What it is

  • One install, everything on: its dependencies pull in every sub-plugin package of the family (task board, Git graph, pet, mobile remote, SSH, model capabilities, skins, settings, community plugins and the rest — aggregate.yml is the complete list) plus the external npm plugins dsh-better-sidebar (the default right sidebar: explorer / editor / terminal / git / browser; pinned at 0.19.0-alpha.1 on the 0.1.5-alpha.2 cohort). @mlgbnb/dsh-archive-manager (the community archive manager: group by project, search and filter, preview conversations, restore and delete) is not bundled — its upstream build still imports the removed @deepseek-ai/dsh-client-runtime face.
  • Aggregation carrier: cordis.patch.yml aggregates the insert lines of each sub-plugin plus the external plugin rows, mounted through the dsh plugin profile mechanism. External profile bundles are expanded by the generator: their patch rows become importable aggregate rows, the bundle's own harness-row patches are preserved, and an external row marked "inactive": true gains trailing disabled: true overrides so nothing mounts until you opt in.
  • Fault isolation (the shell): the DSH loader mounts all patch rows as one transactional group — a single plugin that fails to import or start would roll back the whole group and abort dsh web. The aggregate therefore mounts every family plugin behind a never-failing shell module (this package's main entry): the row name points at a per-family subpath export @linxin666/dsh-web-all/<family> and the row config names the real plugin package. The subpath is what the official plugin list (Settings → Plugins) displays — one distinct web-all/<family> title per row (the same multi-entry convention as the host's own web-app/startup row) — while all subpaths resolve to the same shared shell re-export, so the isolation semantics are identical. A broken plugin now degrades alone (logged, and listed by the loopback-only health route GET /api/dsh-web-all/degraded) while every other plugin mounts normally. External rows (npm packages outside the family) keep mounting directly; dsh-i18n stays direct (empty host half).
  • Opt-in rows: low-usage family plugins ship disabled by default in the aggregate (currently SSH, describe-image, liangshen, skill-explorer, doctor — the inactive list in aggregate.yml). They never load and their settings entries stay hidden until you enable the row under Settings → Plugins → Plugin manager; the standalone packages are unaffected. Bundle rows can also ship a seed config that differs from the standalone default (the patches list); a settings edit wins once made.
  • Per-row management: every family plugin toggles individually — under Settings → Plugins → Plugin manager this package's row expands into a child list with one switch per family plugin, written to the profile override layer. The host half tells the browser half which rows are active (GET /api/dsh-web-all/rows), so a disabled row's settings entries leave the page too (any route uncertainty fails open and mounts everything, as before). A disabled child is never loaded while its code still updates with the bundle; install the standalone package when a plugin needs independent versioning (a standalone install wins over the aggregate row).
  • Right panel: the right panel is always dsh-better-sidebar; its preferences live in dsh-better-sidebar's own settings section.

Install

From npm (recommended)

DSH Web CLI (Browser):

dsh plugin --profile web add @linxin666/dsh-web-all@latest
# Restart dsh web
dsh web

DSH Desktop (Desktop Client):

dsh plugin --profile desktop add @linxin666/dsh-web-all@latest
# Verify bundle mount
dsh --profile desktop --dump-config
# Fully quit and restart DSH Desktop application

From the repository (development)

git clone https://github.com/zhu1090093659/dsh-web.git
cd dsh-web
pnpm install && pnpm -r build
node scripts/link-profile.mjs
dsh plugin --profile web add link:$(pwd)/packages/dsh-web-all

Restart dsh web (or DSH Desktop application) for the plugins to take effect.

Manual upgrade

When you upgrade by bumping the version in the profile package.json and running pnpm install, the top-level node_modules/@linxin666/* entries are not always refreshed: they can stay linked to the previous version's store directory until recreated. After upgrading, verify the links resolve to the new version (on Windows: cmd /c rmdir <link> then cmd /c mklink /J <link> <target>), then restart dsh web.

Troubleshooting

"Failed to load plugins ... keyed slot settings.plugin.item requires options.key" (DSH 0.1.0-rc.6+)

Versions up to 0.1.17 of the bundled dsh-client-ui-web-ui-settings registered its card in the keyed settings.plugin.item slot with an id instead of the required key (the other family plugins already registered their cards in the group's list slot). DSH 0.1.0-rc.6 and later reject such entries while the loader entry applies, so the web GUI fails to boot with "Failed to load plugins".

The group moved to a first-level settings.section registration in 0.1.18 and ships in 0.2.0; the code on main is compatible with rc.6 and rc.7. A profile that still fails carries a frozen older install:

  1. Bump every @linxin666/* dependency in the profile package.json to ^0.2.0 (at least ^0.1.18).
  2. Reinstall the profile dependencies (pnpm install) and recreate the stale node_modules/@linxin666/* links as described in Manual upgrade above.
  3. Restart dsh web.

See issue #513.

Known limitations

  • Every sub-plugin activates together. For only a subset, install that sub-plugin package directly.
  • Aggregate rows are namespaced web-ui-*, so the bundle can coexist with a standalone install of the same plugin: the loader no longer rejects the duplicate id, the host half runs once (the second source is a no-op), and the browser half is deduped by package name. Keeping both sources has no benefit; prefer one. When the bundle is the source, profile patch config rows must use the web-ui-* id (e.g. web-ui-remote-web-ui for the remote-web-ui autoTunnel row); standalone installs keep the plugin's own id.
  • [email protected] is an external npm dependency (not authored in this repo); it must be published before this package's release (see docs/publish-prep.md for the release order).
  • Dependencies on the @deepseek-ai/* SDK are pinned; compatibility follows the repository's release cadence.

使用前核對

安裝步驟、相容版本與授權範圍以原專案當前文件為準。Stars 和評分是快照中的導航訊號。

安裝與排錯 · 專案問題反饋

同類專案