DSH Hub
dsh-plugin-open-app cover

2nd1st/dsh-plugin-open-app

dsh-plugin-open-app

UIWeb UI4 GitHub stars· updated 2026-08-15

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

dsh-plugin-open-app DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-plugin-open-app.svg)](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)
Installdsh plugin --profile web add @2nd1st/dsh-plugin-open-app — one step
Requiresdsh with a web profile · pnpm on PATH (dsh plugin manages profile dependencies through it) · a running open-mcp-apps v0.5.1+ · Node 22+
Platformdsh web (dsh web) — every surface it takes is a web slot
ReleasesCHANGELOG.md

Developer preview. dsh is itself a 0.1.0-rc preview, 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

Related plugins