leonardoxr/dsh-plugins0

dsh-all-in-one

All-in-one DeepSeek Harness bundle: one install mounts the whole leonardoxr DSH plugin collection (coding tools, plugin/config managers, sidebar, usage meters, updaters and more).

包名
dsh-all-in-one
版本
0.1.2
许可证
MIT
最近更新
2026年8月24日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:leonardoxr/dsh-plugins

DSH Plugins

A master repository for DeepSeek Harness plugins. Each plugin remains an independent Git repository and is included here as a Git submodule, so plugin history, branches, releases, and CI stay isolated.

Plugins

PluginRepositoryPurpose
dsh-auto-chat-titlesleonardoxr/dsh-auto-chat-titlesSemantic, configurable chat titles
dsh-better-sidebarleonardoxr/DSH-better-sidebarSidebar workbench and extension API
dsh-claude-usageleonardoxr/dsh-claude-usageClaude usage UI
dsh-codex-usageleonardoxr/dsh-codex-usageCodex usage UI
dsh-coding-toolsleonardoxr/dsh-coding-toolsLSP, ast-grep and versioned editing tools
dsh-config-managerxiajiajun516/dsh-config-managerCredentials, presets and settings management
dsh-status-bar-configleonardoxr/dsh-status-bar-configConversation statistics row

dsh-all-in-one

This repository also publishes dsh-all-in-one, an aggregate DSH bundle that installs every web plugin of the collection in one step and mounts them as a single bundle layer:

# published channel
dsh plugin --profile  add dsh-all-in-one

# or pinned straight from this repository's releases
dsh plugin --profile  add https://github.com/leonardoxr/dsh-plugins/releases/download/v/dsh-all-in-one-.tgz

Properties:

  • One row per plugin, canonical IDs. Each aggregated plugin keeps the same Cordis row ID its standalone bundle uses, so profile-patch config overrides keep working unchanged when switching between standalone and all-in-one.

  • Self-backing-off guards. Every generated insert row carries a !!js guard that disables the row whenever an earlier loader entry already mounts the same package — standalone installs win, the aggregate fills the gaps. Because guards only see earlier entries, install the all-in-one last (dsh plugin add does this automatically).

  • Generated, never hand-edited. aggregate.yml is the single source of truth; package.json dependencies and cordis.patch.yml are produced by scripts/aggregate.mjs:

    pnpm generate   # regenerate both outputs from aggregate.yml
    pnpm verify     # fail when outputs drifted (runs on prepack too)
    
  • Per-plugin opt-out survives aggregation. Users can still disable any subset in their profile patch (- id: + disabled: true).

Dependency pins use exact npm versions where packages are published, and GitHub Release tarball URLs otherwise; flip a pin to npm by editing its channel/spec in aggregate.yml and regenerating. | dsh-harness-updater | leonardoxr/dsh-harness-updater | Claude Code / Codex CLI update detection and one-click updates | | dsh-image-preview | leonardoxr/dsh-image-preview | Inline image previews and clipboard copying | | dsh-plugin-manager | leonardoxr/dsh-plugin-manager | Profile plugin management | | dsh-companion | leonardoxr/dsh-companion | Read-only workspace/session API and notifications | | dsh-native | leonardoxr/dsh-native | Native desktop and mobile shell for DSH web servers | | dsh-routed-subagent | leonardoxr/dsh-routed-subagent | Complexity-routed subagent delegation | | dsh-workspace-git | leonardoxr/dsh-workspace-git | Workspace Git integration |

Repository model

  • This repository coordinates the plugin collection; it does not merge their histories.
  • Plugin directories are independent Git repositories. Use git -C ... for plugin work.
  • Update the pinned plugin revision in the master repo with git -C pull followed by git add .
  • Do not commit DSH source changes here or inside a plugin. Plugins must be mounted through the DSH profile and cordis.patch.yml mechanism.
  • Code changes follow each plugin’s contribution rules; documentation-only collection changes may be made here.

DSH plugin behavior

Plugins are Cordis modules with optional host and client halves. The package manifest declares the DSH bundle patch and client injection metadata. Host code must use public DSH services/routes; client code must use injected services and must unload cleanly.

For better-sidebar integrations, see dsh-better-sidebar/AGENTS.md. Key rules: use inject = ['betterSidebar'], register tabs/viewers through ctx.betterSidebar, wrap registration in ctx.effect() so the disposer is HMR-safe, use package-prefixed IDs, and keep dsh-better-sidebar as an optional peer dependency. The service exists only on the client side.

Local development

# Clone this collection with plugin repositories
git clone --recurse-submodules  dsh-plugins

# Initialize plugins after a normal clone
git submodule update --init --recursive

# Work inside one plugin
cd dsh-better-sidebar
pnpm install
pnpm build

Install a local plugin into a DSH web profile using the official plugin mechanism, then refresh the existing DSH UI. Do not modify the DSH checkout.

Documentation references