
2nd1st/dsh-plugin-open-app
dsh-plugin-open-app
Bring open-mcp-apps into deepseek-harness: apps as sidebar containers with their own sessions, an agent status strip, and inline widget rendering
Install
npx @deepseek-ai/dsh plugin --profile web add @2nd1st/dsh-plugin-open-app`Restart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-plugin-open-app)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from 2nd1st/dsh-plugin-open-app, cleaned of badges and images.
@2nd1st/dsh-plugin-open-app
Makes every open-mcp-apps app a place you go
inside DeepSeek Harness (dsh): an Apps
section in the sidebar, one container per app with its own workspace and conversation, and
inline rendering when the model opens an app mid-chat.
| Package | @2nd1st/dsh-plugin-open-app on npm — MIT (LICENSE) |
| Install | dsh plugin --profile web add @2nd1st/dsh-plugin-open-app — one step |
| Requires | dsh with a web profile · pnpm on PATH (dsh plugin manages profile dependencies through it) · a running open-mcp-apps v0.5.1+ · Node 22+ |
| Platform | dsh web (dsh web) — every surface it takes is a web slot |
| Releases | CHANGELOG.md |
Developer preview. dsh is itself a
0.1.0-rcpreview, and this plugin tracks it closely — including six places where it reaches into dsh through no published seam (all six are listed under What it reaches into, with what each degrades to). Expect breaking changes between releases, and pin a version if you need one that holds still.
Install
# add it — this is the whole install
dsh plugin --profile web add @2nd1st/dsh-plugin-open-app
# restart; plugin metadata is cached per name for the life of the process
dsh web
The package declares dsh.bundle, so dsh plugin add does not only put it in the
profile's dependencies — it appends it to dsh.profile.bundles, and the patch it ships
becomes a layer of your profile's tree. That layer inserts two rows: open-app (this
plugin) and mcp-oma (dsh's MCP client, pointed at the same engine, so the model can open
and build apps as well as you can). Bundle layers apply below your profile's own
cordis.patch.yml, so both rows stay yours to configure or switch off.
Nothing here changes what an app is allowed to do: the engine is a local process you started, and the rows only say where it listens.
Upgrading from a hand-written install (before 0.1.1 the second step was pasting an
- insert: block yourself): delete those blocks for open-app and mcp-oma from your
profile's cordis.patch.yml, and remove the old package name —
dsh plugin --profile web remove dsh-plugin-open-app
dsh plugin --profile web add @2nd1st/dsh-plugin-open-app
A patch insert always appends: two layers inserting the same id are two rows, and dsh
refuses to boot such a tree (duplicate loader entry id: open-app) rather than running the
plugin twice. Keep your settings as id-targeted overrides instead.
Requirements
…

