DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
M

@ddtcorex/dsh-maestro-mobile

Maestro Mobile

Portrait and mobile adaptation for DeepSeek Harness Web UI — overlay drawer, full-width conversation, sheet-based dialogs, safe-area handling

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:ddtcorex/dsh-maestro-mobile#7c2347298d0ac4d8ae01386170ca0fc298c47369
READMECompatibilityVersions

Compatibility and provenance

Maestro Mobile is published as @ddtcorex/dsh-maestro-mobile and currently resolves to version 1.9.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
11/4/2026

Versions

1.9.0stable
11/4/2026
1.8.1stable
10/28/2026
1.8.0stable
10/26/2026
Show 18 more versionsCollapse versions
1.7.4stable
10/21/2026
1.7.3stable
10/18/2026
1.7.2stable
10/17/2026
1.7.1stable
10/7/2026
1.7.0stable
10/4/2026
1.6.2stable
9/25/2026
1.6.1stable
9/24/2026
1.6.0stable
9/23/2026
1.5.0stable
9/22/2026
1.4.0stable
9/12/2026
1.3.4stable
9/11/2026
1.3.3stable
9/6/2026
1.3.2stable
9/4/2026
1.3.1stable
9/2/2026
1.3.0stable
9/1/2026
1.2.0stable
8/30/2026
1.1.0stable
8/28/2026
1.0.0stable
8/25/2026

Related plugins

Loading related plugins…

Latest
1.9.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 2
Weekly downloads
0
Last push
11/4/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

README

dsh-maestro-mobile

Mobile adaptation for the DeepSeek Harness (DSH) Web UI. On touch-primary devices below 1024px it turns the sidebar into an overlay drawer, sheets the dialogs, and tunes the composer for phones; any mouse-driven window, at every width, is a complete no-op — a narrow desktop window or a scaled display never gets the mobile shell.

What you get

CapabilityHow it works
Sidebar → drawerOn touch-primary devices below 1024px the sidebar becomes a left overlay drawer (~80vw, transform:none when open); desktop is untouched at every width
Dialogs → sheetsSettings, explorer, and preview become mobile-friendly bottom sheets with env(safe-area-inset-*) handling and notch avoidance
Status-bar & safe areasStatus-bar / notch padding, light/dark theme-color, and touch-action: manipulation + gesturestart guard against double-tap zoom
Composer stays cleanPermission capsule, model name, and switch menus use fixed-size pinning so they never squeeze or overlap on narrow screens
Tablet friendly768–1023px centered, width-constrained sheets; phone and tablet geometries are verified separately
Easy diagnosticsAppend ?dsh-maestro-mobile-debug=1 for a floating bar with viewport / frame / floating-panel / JS-error state

Requirements

  • Node.js ≥ 22, pnpm ≥ 11
  • A running DeepSeek Harness web profile (pnpm dsh web), DSH 0.2.x (verified on 0.2.2-alpha.2)
  • Chromium 105+ for the :has() selectors

Response compression is the host's job when it is enabled: with webServer configured compression: gzip (the deployed profile does this) the plugin leaves the responses alone, because DSH's own middleware already serves brotli/gzip and wins the writeHead race. On a profile that keeps the host default (compression: none) the plugin installs its own transparent gzip/brotli patch.

Install

# from the registry
dsh plugin --profile web add @ddtcorex/dsh-maestro-mobile

# local development (live link: edit + rebuild just works)
dsh plugin --profile web add link:/path/to/dsh-maestro-mobile

lib/ is gitignored build output: pnpm build produces it locally, and pnpm-workspace.yaml carries the allowBuilds.esbuild entry a fresh install needs. Restart dsh web after installing or after any pnpm build.

Manual cordis.yml row

If you are not using dsh plugin, add this row to your cordis.yml:

- id: maestro-mobile
  name: '@ddtcorex/dsh-maestro-mobile'

Development

pnpm install        # install (pnpm@11.7.0, lockfile v9)
pnpm verify         # type-check host + client (tsc --noEmit)
pnpm test           # node --test tests/*.test.ts (full suite)
pnpm test:core      # node --test tests/reconciler-core.test.ts tests/composer-keyboard-touch.test.ts (fast subset)
pnpm build          # tsc host + client && node scripts/build-client.mjs -> lib/

pnpm build is the required gate after any source change; lib/ is gitignored build output, so a change is incomplete until the build refreshes it locally.

Optional CDP regression probe (requires a live DSH Web on :3080, PIN cookie; to probe the raw server instead, set DSH_PROBE_URL=http://127.0.0.1:3082/?token=<launch-token> as in docs/upstream/upgrade-runbook.md §2):

DSH_PROBE_SESSION_ID=<id> pnpm smoke:cdp

Architecture

  • Host / client split is load-bearing: src/index.ts owns the session-delete route (POST /api/mobile-nav.session.delete) plus the conditional response-compression patch; all browser behavior lives in src/client/.
  • The delete route authenticates through the host (connection.requestRejection) because the /api launch-token fence is a prefix route that an exact route shadows; it fails closed with 503 admission-unavailable when the host publishes no connection service.
  • src/client/index.tsx injects ['slots','layout','locale','sessionLogDownload','sessions','workspaces'], registers locale dictionaries, injects one <style data-plugin> tag, and registers three slots (MobileNavToggle in the session header, MobileDrawerFooter in the sidebar foot, ShellOverlay backdrop + FAB).
  • Shared full-tree reconciler: src/client/core/reconciler-core.ts (zero-import engine) + phone-chrome.ts (a single MutationObserver driving installMobileEffect).
  • Styles are concatenated tokens → base → layout → sheet → explorer-sheet → composer → settings-sheet → misc into one tag; mobile rules target (max-width: 1023px) and (pointer: coarse).

License

MIT

Related plugins

More verified plugins in ui-customization.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Experimental Session Titles Bundle@deepseek-ai/dsh-experimental-session-titles-bundleRefresh session titles as new human prompts arrive.Personalized Recommendations@deepseek-ai/dsh-personalized-recommendationsPersonalized pages and built-in plugin recommendations offered as cards below answersExperimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profileExperimental Web profile layer for Agent Teams Remote and UI plugins