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
Listed
1
Market
Bundle verified
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-plugintopic, 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 pluginflow. - 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 searchdsh pm installdsh pm removedsh pm listdsh pm updatedsh 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:
DSH_PM_CACHE_DIR$XDG_CACHE_HOME/dsh-pm~/.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.
Compatibility follows the bundle and profile status shown above. If a profile is not detected, keep the plugin disabled there and check the repository documentation before enabling it in production.
The GitHub link and activity metadata are the source of truth for releases and maintenance. Revisit this page after a new release to confirm the catalog has observed the latest version.