muen-plugins
DiscoveredMuen-authored plugins for the DeepSeek Harness market — published as GitHub Release tarballs and installed with `dsh plugin add`. Generic, white-label, no client identity baked in.
muen-plugins
Muen-authored plugins for the DeepSeek Harness (DSH) market. This is the source-of-truth repo for
@muen/* plugin packages. They are published as GitHub Release tarballs (and installed by the
standard market mechanism dsh plugin add), so they are versioned, updatable, and survive upstream
DSH upgrades.
This is a monorepo: one subdirectory per plugin, so we can keep adding plugins (and forks of community plugins) without restructuring.
This repo is public, and that decides what belongs here
The rule is one question: does the plugin name or serve one client, or exist only for Muen's own
install? Yes → it lives in the private sibling muen-collective/mitsumeru-plugins, not here.
No → here, where it is safe for a stranger to read.
The asymmetry is why the default is to stay out: this repo cannot be un-published. Git history keeps what a later delete removes from the tree, so a client plugin pushed here is a permanent public record, while a plugin moved out of the private repo loses nothing but a copy. When it is genuinely unclear whether something is client-bound, it goes to the private repo until the founder answers.
Being shipped inside the app is a different axis and does not decide this one: the vendored set
comes from SHIPPED_PLUGINS in the shell (packages/mitsumeru/src/main/harness.ts), and a plugin can
ship without being a market listing — @muen/dsh-brand-mitsumeru is the example, since it carries
Mitsumeru's own identity and is vendored into the public app release rather than offered to the market.
Skills and processes are not plugins and are not here: they live in the private muen-method
(collaborator-only, decision 52), and workflow JSON lives in the private muen-workflows.
Naming schema (keep consistent — every plugin follows this)
| Thing | Convention | Example |
|---|---|---|
| GitHub repo | muen-collective/muen-plugins | — |
| Source dir | plugins/<slug>/ | plugins/dsh-brand-swap/ |
Package (package.json name) | @muen/<slug> | @muen/dsh-brand-swap |
| Version | 0.x.y semver | 0.1.0 |
| Installability | dsh.bundle.patch + a cordis.patch.yml (NOT just dsh.client) | required |
Market entry url | .../tree/main/plugins/<slug> (subdir of this monorepo) | …/plugins/dsh-brand-swap |
Market entry name | muen-collective/muen-plugins#<slug> | muen-collective/muen-plugins#dsh-brand-swap |
Market category | from the market's valid set (theme, ui, docs, tools, …) | theme |
Market description | accurate one-liner (checked against source) | — |
<slug> is the plugin name after the @muen/ scope, so the package name, source dir, and
market-entry short name all agree.
Layout
plugins/
<slug>/ @muen/<slug> (one subdir per plugin)
package.json name: @muen/<slug>, dsh.bundle.patch: ./cordis.patch.yml, files
cordis.patch.yml inserts the plugin row (id + name)
lib/ the built host + client bundles (raw JS, no build step)
README.md accurate description of what the plugin does
Adding a new plugin
plugins/<new-slug>/withpackage.json(declaredsh.bundle.patch+dsh.clientif it has UI),cordis.patch.yml(rowid/name=@muen/<new-slug>),lib/,README.md.- Bump
version. Addscripts to the rootpackage.json(pack:<slug>). - To publish: tag a Release and the
release.ymlworkflow packs THAT plugin and attaches its.tgz(see "Publish" below for the two tag forms), then open a PR toawesome-dsh-plugin/awesome-dsh-pluginaddingdata/plugins/muen-collective__muen-plugins--plugins-<slug>.yml.
Forking a community plugin (to improve the UI)
Put it in its own subdir plugins/<fork-slug>/, name it @muen/<fork-slug>, and:
- Credit the original author — keep their LICENSE/copyright in your package (MIT etc.), and note
the fork provenance in the plugin's
README.md(aFORK.mdlike the product repo'splugins/dsh-file-explorer/FORK.md). The market's fork rule: real code that does something, and dependencies must point at the original author's repo/package — don't re-upload upstream copies under your account and depend on those. - Keep the plugin generic/configurable (no Muen secrets or a specific client baked in).
Publish (register with the DSH market)
The market (dshmarket) shows the curated catalog at awesome-dsh-plugin.com/plugins.json, which is
generated from github.com/awesome-dsh-plugin/awesome-dsh-plugin's data/plugins/*.yml. To
register a plugin:
- Push this repo to GitHub and make it public; add the
dsh-plugintopic. The repo must be ≥1 day old and ≥10 commits (CI checks this). - Tag a Release.
release.ymlrunsnode scripts/pack-all.mjsand attaches that plugin's.tgzto the GitHub Release (the market prefers a published npm package or a Release tarball over build-from-source). There are two tag forms:<plugin>-vX.Y.Z— names its plugin, e.g.dsh-assets-v0.1.0.plugins/<plugin>/package.jsonmust carryX.Y.Z. This is the form to use: several plugins here legitimately sit at0.1.0before their first release, and this form does not care.vX.Y.Z— version-only, kept for the tags already out there. Exactly one plugin in the repo may carryX.Y.Z, or the release fails as ambiguous rather than guessing.
- Open a PR to
awesome-dsh-plugin/awesome-dsh-pluginadding ONE filedata/plugins/muen-collective__muen-plugins--plugins-<slug>.yml. Example:url: https://github.com/muen-collective/muen-plugins/tree/main/plugins/dsh-brand-swap name: muen-collective/muen-plugins#dsh-brand-swap category: theme description: en: White-label brand swap for DeepSeek Harness. Replaces the DeepSeek mark in the sidebar and conversation-hero brand slots with a per-profile wordmark, colors and font (each Brand OS configures its own identity on the plugin row). Ships neutral defaults. - Verify from a fresh profile:
dsh plugin --profile demo add <tarball-url | github:...>.
Update an entry the same way — edit only your data/plugins/*.yml and regenerate
(node scripts/generate-readme.mjs).
Value separation
Published plugins are neutral/generic — no client (or Muen) brand is baked into the package.
Per-profile config: on a plugin's cordis.patch.yml row supplies the specific values (e.g. a
client's wordmark via the brand-swap row's wordmark/fontFamily/dotColor). The market card
can show a branded screenshot as an illustration; the shipped package stays neutral.
History note
This repo previously held the old @muen/mitsu-* surface plugins (assets, docs, write, krea,
runninghub, modes, rail, settings, sidebar-tree, task-switcher, starter-pack, updater,
open-in-sidebar, browser). Those were failed experiments and are permanently deleted. The brand
plugin was generalized on 2026-09-04 to the white-label @muen/dsh-brand-swap (row
brand-swap, service brand) — one generic plugin every Brand OS (mitsu, yammaman, vent)
configures with its own identity; the Mitsumeru app's internal copy keeps the legacy
@muen/mitsu-brand identity (row mitsu-brand, service mitsu.brand) until the next app release.
Everything else is sourced from the community DSH market. Do not recreate, publish, or reference
deleted @muen/mitsu-* names as live plugins.
Optional: npm
If you later prefer the @muen npm scope, npm publish each package (needs @muen scope ownership
- auth) and point the catalog
urlat the npm package instead.
Comments
Loading…
Similar plugins
by 2160039878-cyber
A verified-first plugin store and GitHub discovery helper for DeepSeek Harness.
★ 0
↓ 105/wk
MIT
JavaScript
Aug 16, 2026
dsh plugin --profile web add dsh-plugin-marketby Toukaiteio
A marketplace plugin to quickly integrate your DeepSeek Harness into the GitHub plugin ecosystem.
★ 5
↓ 45/wk
MIT
JavaScript
Aug 16, 2026
dsh plugin --profile web add dsh-plugin-installerby kimiya1010
A DeepSeek Harness plugin market: search and one-click install GitHub dsh-plugin plugins straight from the web GUI
★ 2
↓ 145/wk
JavaScript
Aug 15, 2026
dsh plugin --profile web add dsh-plugin-marketby TheYoungChen
DeepSeek Harness plugin market - browse, search & install dsh-plugin topic plugins (dsh 插件市场:浏览/搜索/安装插件)
★ 4
↓ 147/wk
MIT
JavaScript
Oct 2, 2026
dsh plugin --profile web add dsh-plugin-marketby Max-Null
Plugin center for DeepSeek Harness: installed-plugin metadata, a community market with stars and versions, one-click install and update, and a What's New dialog.
★ 1
↓ 353/wk
MIT
TypeScript
Sep 28, 2026
dsh plugin --profile web add @max-null/dsh-plugin-centerby NanmiCoder
Verified plugin marketplace for DeepSeek Harness — discover, inspect, install, and remove DSH plugins from the Web UI.
★ 6
MIT
TypeScript
Aug 17, 2026
dsh plugin --profile web add @nanmicoder/dsh-plugin-market