Jesse-njx/dsh-plugin-manager

dsh pm — discover, install, update, and manage dsh plugins from the CLI: multi-source search (awesome list + GitHub + npm), doctor audit, per-profile state

Bundle verified Unknown TypeScript Unknown
Bundle verified

Listed

1

Market

Bundle verified

VersionUnknown
LanguageTypeScript
LicenseUnknown
View on GitHub

What it does

The `dsh pm` plugin manager: multi-source search (awesome list + GitHub + npm), install/remove/update per profile, and a doctor audit of manifests, bundle patches, and version drift.

Best for

  • DSH users who discover and manage plugins from awesome-list, GitHub, and npm sources.
  • Teams managing installed plugins across multiple DSH profiles.
  • Maintainers auditing plugin manifests, bundle patches, and npm or GitHub version drift.

Not ideal for

  • Environments running Node.js versions earlier than 20.
  • Non-DSH plugin ecosystems or workflows that do not use DSH profiles.
  • Users expecting `gitInstall.depth` or `gitInstall.build` to affect installation; those settings are retained but not currently passed to `dsh plugin add`.

README

dsh Plugin Manager

dsh-plugin-manager adds the dsh pm command group for discovering, installing, removing, listing, updating, and auditing dsh plugins. Version 0.1.0 requires Node.js 20 or later and integrates with Cordis and dsh commands.

Capabilities

  • Searches the awesome-dsh-plugin list, GitHub repositories with the dsh-plugin topic, and npm keyword results.
  • Merges and deduplicates discoveries by repository URL and canonical name.
  • Falls back independently per registry source and can use cached results when a source is unavailable.
  • Installs npm packages and GitHub repositories into one or more dsh profiles.
  • Removes plugins through the documented dsh plugin flow.
  • Lists installed plugins by profile and checks for newer npm versions or GitHub revisions.
  • Audits installed plugin manifests, bundle patches, and version state with dsh pm doctor.
  • Maintains side-band JSON state without directly editing a profile’s cordis.yml.

Commands

The bundle exposes these command operations:

  • dsh pm search
  • dsh pm install
  • dsh pm remove
  • dsh pm list
  • dsh pm update
  • dsh pm doctor

Installation and removal delegate to the standard profile-aware dsh commands:

dsh plugin --profile <profile> add <ref>
dsh plugin --profile <profile> remove <id>

Accepted install references include scoped npm package names, owner/repo, and github:owner/repo. Registry entries may also resolve a name to an npm package or GitHub repository.

Configuration

The bundle registers @dsh-pm/cli as dsh-plugin-manager. Its configuration supports registry sources, target profiles, a state file, and Git installation preferences:

- id: dsh-plugin-manager
  config:
    registry:
      awesomeUrl: https://raw.githubusercontent.com/awesome-dsh-plugin/awesome-dsh-plugin/main/README.md
      npmKeyword: dsh
    profiles: [default]
    stateFile: ~/.dsh/pm/plugins.json
    gitInstall:
      depth: 1
      build: true

The gitInstall settings are retained in the configuration contract but are not passed to the current dsh plugin add command.

State and Cache

Installed state is stored as schema-validated JSON, with one record per plugin and profile. Writes use a temporary file followed by an atomic rename. The default state path shown by the bundle is ~/.dsh/pm/plugins.json.

Registry cache location is selected in this order:

  1. DSH_PM_CACHE_DIR
  2. $XDG_CACHE_HOME/dsh-pm
  3. ~/.cache/dsh-pm

Cache failures do not fail a search.

Frequently Asked QuestionsFAQ

Use the verified command dsh plugin --profile default add github:Jesse-njx/dsh-plugin-manager in a DSH-enabled shell. The command resolves the public package metadata and keeps the plugin attached to the catalog identity shown on this page.