Introduction

After installing plugins and creating workspaces in DeepSeek Harness (DSH), the list grows over time. Uninstalling a single bundle usually requires handling each one via config or command line; deleting a workspace by mistake can even lose session directories. On Windows many people use Geek Uninstaller for “check + progress bar + anti-misdelete” batch uninstallation; when DSH lacks a similar integrated interface, the cleanup cost is higher.

Below we introduce the community plugin dsh-batch-uninstall (maintainer MaYucong6): it provides a Cordis bundle + client settings page, handling plugins, workspaces, and trash via three tabs in DSH Settings → Batch Uninstall. It is categorized as a client plugin; the repository GitHub currently has about 3 stars. Directory page: SkillHub plugin page.

What Is This

dsh-batch-uninstall is a Geek-style DSH batch cleanup toolbox: multi-select uninstall of plugins, batch removal of workspaces (soft delete into trash), and restore or permanent purge within the trash. The main workflow can be completed without opening a separate browser address and without depending on Python or external config files (the repository also has an optional Python TUI).

The plugin requires DSH >=0.2.0-rc.1 and Node >=20; the npm package’s current version is 1.3.0, license MIT.

Core Features

Plugin Tab

  1. Multi-select batch uninstall: check individually, select all, deselect all, and uninstall multiple bundles at once.
  2. Core protection: system bundles such as @deepseek-ai/dsh-* are locked and greyed out, with Host and Client dual-layer validation, making them impossible to check for uninstall.
  3. Risk grading: high / medium / low three-level prompts to help you decide before acting.

Protected objects include @deepseek-ai/dsh-base, @deepseek-ai/dsh-web-app, @deepseek-ai/dsh-sdk-*, headless / acp and other official profiles, as well as all bundles with removable: false.

Workspace Tab

  • Check multiple Workspaces to remove them all at once; the interface shows paths and session counts.
  • Soft delete: calls workspaceRegistry.delete(id) to unregister, and moves ~/.dsh/sessions/<encoded path>/ to ~/.dsh/.trash/<timestamp>__<encoded>/, so data is not directly deleted.

Trash Tab

  • Restorable: restores session directories in the trash back to ~/.dsh/sessions/.
  • One-click purge: permanently deletes all contents of the trash, with a double confirmation.

General Experience

  • Built-in settings page; theme follows DSH light / dark, and language follows DSH (Chinese-English bilingual).
  • Before uninstalling or deleting, a red confirmation box lists all targets; during execution there is a progress bar and per-item success / failure logs.
  • The Client injects real services via slots, and apply() exception isolation ensures a plugin failure does not affect DSH startup.

Installation and Activation

Replace <your profile> with the actual profile name. Installation commands are per the README:

# npm (recommended)
dsh plugin --profile <your profile> add dsh-batch-uninstall

# or GitHub
dsh plugin --profile <your profile> add github:MaYucong6/dsh-batch-uninstall

You can also search for dsh-batch-uninstall in the DSH plugin marketplace.

After installation, restart DSH or refresh the page, and a “Batch Uninstall” entry will appear on the left side of settings.

Typical Usage

Batch Uninstall Plugins in the Settings Page

  1. Open DSH Settings → Batch Uninstall and switch to the Plugins tab.
  2. Click Refresh to fetch the current bundle list; core items will show as locked and cannot be checked.
  3. Check the non-core plugins to uninstall, click Uninstall Selected, review the list in the confirmation box, and confirm.
  4. Watch the progress bar and logs; failed items can be retried according to the logs or investigated manually.

Interface mockup (from the README):

Geek Uninstaller  ·  v1.3.0
 [Plugins]  [Workspaces]  [Trash]
────────────────────────────────────────────────────────
 Total 15   Uninstallable 5   Locked 10   Selected 0
                        [Refresh] [Select All] [Deselect All] [Uninstall Selected]

Clean Up Workspaces and Restore When Needed

  1. In the Workspaces tab, check the items to remove and perform deletion; session directories go to ~/.dsh/.trash/.
  2. If deleted by mistake, go to the Trash tab to select and restore; when confirmed no longer needed, use One-click Purge Trash (irrecoverable).

Optional: Python Terminal Interface

The repository provides dsh_geek_uninstall.py, which uses the same localhost HTTP API and is suitable for scenarios that prefer terminal interaction. You need to install rich first:

python dsh_geek_uninstall.py

The main API paths on the Host side include GET /dsh-batch-uninstall/bundles.json, POST /dsh-batch-uninstall/remove, as well as workspaces.json, trash.json etc. corresponding to workspaces and trash (see the README architecture diagram for details).

Use Cases and Notes

For whom: DSH users who frequently try community plugins and need batch uninstallation; those with many workspaces who want soft deletion and a retention window for restoration.

Permissions and security: The plugin operates on the local pluginManager, workspaceRegistry, and the ~/.dsh directory with the current DSH process permissions. Before installing, it is recommended to read the source code and the MIT license to confirm it meets your environment policy. Purging the trash will actually delete files, so be sure to read the double confirmation content carefully before operating.

Community directories such as SkillHub are maintained by the ecosystem and have no official affiliation with DeepSeek / High-Flyer; plugin sources are subject to the repository and npm package.

Conclusion

dsh-batch-uninstall brings the Geek-style “list + multi-select + confirm + progress” into the DSH settings page, and distinguishes three lines—plugin uninstall, workspace soft deletion, and trash restore—while locking core bundles. Install from npm or GitHub when needed, and complete daily cleanup in settings.

  • Directory page: https://www.skillhub.cn/plugins/MaYucong6/dsh-batch-uninstall
  • GitHub: https://github.com/MaYucong6/dsh-batch-uninstall