Install the example plugin
This walkthrough installs the shipped examples/hello bundle into the omdsh Profile, verifies that the layer is active, and removes it again. You need an omdsh checkout and pnpm on PATH.
See what the bundle declares
examples/hello is a complete dsh.bundle package: its package.json declares the patch file, and that file inserts one Cordis plugin row.
examples/hello/package.json # dsh.bundle.patch -> ./cordis.patch.yml
examples/hello/cordis.patch.yml # one insert row for @agi-fans/omdsh-plugin-hello
A package can be installed as a plain library dependency, but only a dsh.bundle.patch declaration makes it join the Profile layer list.
Install the bundle
From the repository root:
omdsh plugin add ./examples/hello
omdsh plugin initializes $OMDSH_HOME/profiles/omdsh on first use, runs pnpm inside it, installs the package, and reconciles dsh.profile.bundles against the installed packages that declare a bundle patch. The path is relative to the invoking directory; if it is missing there, omdsh walks parent directories for the same relative path, so the command also works from apps/omdsh as pnpm --dir apps/omdsh omdsh plugin add ./examples/hello.
Verify the layer
omdsh --dump-config
The dump prints the composed entry list with a comment naming the layer that contributed each entry: the product bundle first, then @agi-fans/omdsh-plugin-hello from the Profile. Restart omdsh, then run /hello; the command also appears in /help and in slash autocomplete.
Remove the bundle
omdsh plugin remove @agi-fans/omdsh-plugin-hello
The next dump no longer lists the package, and /hello disappears after the following restart.
Troubleshoot
omdsh pluginrunspnpminside the Profile, sopnpmmust be onPATH.- A listed bundle that loses its
dsh.bundle.patchdeclaration, or a package name that cannot resolve, fails at boot instead of degrading silently. - If
/hellodoes not appear, check that--dump-configlists the package and that omdsh was restarted after the install.
Next
Author your own bundle with Write a plugin. The compatibility contract is in User plugins, and the internal contribution surface is described in Plugin internals.