Preface¶
The DeepSeek Harness (DSH) architecture emphasizes modularity and scalability. When multiple independent plugins need to be integrated in a development environment, developers often face tedious configuration, dependency conflicts, and high maintenance costs. The dsh-plugins repository provides a main entry point that aggregates and manages a series of independently maintained plugins, offering a unified installation and configuration mechanism.
Repository Positioning¶
dsh-plugins is the main repository for DeepSeek Harness plugins, maintained by user leonardoxr. It coordinates a collection of plugins with various capabilities, aiming to address the fragmented toolchain problems developers encounter when using DSH.
Core Features¶
The repository includes the following core capabilities:
- Chat Titles and Configuration: Provides semantic, configurable chat titles (via
dsh-auto-chat-titles). - Sidebar and Extensions: Provides a sidebar workbench and extension API (via
dsh-better-sidebar). - Usage Statistics: Provides Claude/Codex usage interfaces and conversation statistics rows (via
dsh-claude-usage,dsh-codex-usage,dsh-status-bar-config). - Coding Tools: Provides LSP, ast-grep, and versioned editing tools (via
dsh-coding-tools). - Update Detection: Provides update detection and one-click update functionality for Claude Code / Codex CLI (via
dsh-harness-updater). - Interaction and Preview: Supports inline image preview, clipboard copy, and configuration-file plugin management (via
dsh-image-preview,dsh-plugin-manager). - Workspace Integration: Provides read-only workspace/session APIs, notifications, and workspace Git integration (via
dsh-companion,dsh-workspace-git). - Mobile Support: Provides native desktop and mobile shells for the DSH web server (via
dsh-native). - Agent Delegation: Supports delegated subagents for complex routing (via
dsh-routed-subagent).
Installation and Enablement¶
The repository provides the dsh-all-in-one aggregate package, allowing all plugins to be installed with a single command.
dsh plugin --profile <name> add dsh-all-in-one
You can also directly mount a specific version using the tarball from GitHub Releases:
dsh plugin --profile <name> add https://github.com/leonardoxr/dsh-plugins/releases/download/v<version>/dsh-all-in-one-<version>.tgz
Typical Usage¶
1. Sidebar Extension Development¶
If using the dsh-better-sidebar plugin, the plugin host code must inject the service and register views. The sample code is as follows:
inject = ['betterSidebar'];
// 注册逻辑建议包裹在 ctx.effect() 中以确保 HMR 安全
ctx.effect(() => {
ctx.betterSidebar.registerTab({
id: 'my-plugin-tab',
title: 'My Tab',
view: MyViewComponent
});
return () => {
ctx.betterSidebar.unregisterTab('my-plugin-tab');
};
});
2. Plugin Management¶
Using dsh-plugin-manager, mounted plugins can be managed through configuration files.
3. Git Integration¶
The dsh-workspace-git plugin provides workspace-level Git operation support.
Notes¶
- Installation Conflicts: Plugins are mounted through the
cordis.patch.ymlmechanism. Do not mount independent bundles and the aggregate suite at the same time, as this will cause startup failure (error “duplicate loader entry id”). - Exit Options: The exit option for each plugin is preserved in the aggregate.
- History Isolation: This repository coordinates the plugin collection but does not merge their histories. Plugin directories are independent Git repositories and can be operated with
git -C <plugin>. - Development Conventions: Code changes must follow each plugin’s contribution rules; only collection-level documentation changes can be made here.
- Runtime Permissions: Plugins run with the permissions of the current DSH process. Review the source code and license before installation.
Summary¶
Through submodules and aggregate packages, the dsh-plugins repository provides DeepSeek Harness users with a standardized toolset. It integrates fragmented capabilities, reduces configuration complexity, and preserves each plugin’s independent development and maintenance abilities.