Web Components support.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:omdsh-dev/web-components
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
English | 中文
The DSH Web Component adapter as an installable profile bundle. It exposes a browser-side webComponent service that mounts registered slot trees as native Custom Elements, while keeping slot ownership, typed descriptors, property/event bindings, DOM outlets, and incarnation lifetimes behind the adapter boundary.
Repository shape
package.json # plugin package and dsh.bundle/dshClient manifests
cordis.patch.yml # browser opt-in profile layer
src/index.ts # host loader entry
src/client/ # browser implementation
src/invariant.ts # package invariant companion
lib/ # generated host/client artifacts
legacy/ # source-compatible host integration patch for older DSH snapshots
docs/ # detailed protocol reference
tests/ # unit, composition, and terminal-free browser tests
Bundle behavior
Installing the bundle adds a disabled web-component row. A Web profile enables it explicitly after the slot host and browser runtime are present:
- id: web-component
disabled: false
name: '@deepseek-ai/dsh-client-web-component'
The bundle layer only composes the plugin row. Slot host APIs, descriptor types, browser runtime, and the React renderer seam must come from the DSH version selected by the profile. The previous host-source integration patch is retained under legacy/ for migration of older DSH snapshots and is not part of the bundle package contract.
The client module never exposes a live React tree or raw DOM context to feature plugins. It accepts plain descriptors, resolves declared values from the incarnation context, assigns JavaScript properties rather than serialized attributes, and reports CustomEvent details through declared handlers.
Development
A full typecheck expects a sibling DSH checkout:
~/git/deepseek-harness
~/git/web-components
pnpm install
pnpm run typecheck
pnpm test
pnpm run build
The prepare script builds the host and browser entries directly from src/, so a Git install does not require sibling project references. pnpm 10 may ask the profile to allow the package's prepare script; only approve a pinned, trusted checkout.
Model Experience
This package contributes no model-visible text, tools, or prompt sections. It only projects browser slot state and Custom Element events; model-visible behavior remains owned by the DSH services rendered through the slots.
Known Limitations and Deferred Work
CustomElementRegistrydefinitions are page-lifetime resources and cannot be unregistered; the adapter rejects constructor replacement.- The bundle does not provide a DOM or React renderer; the profile must already mount the DSH slot host and browser runtime.
- Older DSH snapshots require the compatibility patch in
legacy/because a bundle cannot add missing host source APIs; the currentmasteralso predates the Slots election/incarnation APIs, so full typecheck requires the compatible Slots change (for exampled97d6a1e).
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 8076
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 8076
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
omdsh-dev/DSH-better-sidebar★ 3828
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
ccch1mneyyy/dsh-TUI★ 3661
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 3277
A fixed-corner whale widget for the DSH web GUI — balance, today's usage and per-turn cost with peak/off-peak pricing, editable balance-alert and daily-budget bubbles, a module-based custom bubble queue with A/B weighted choices and random lines or images, 30+ vendor templates (OpenAI, OpenRouter, Kimi, SiliconFlow, Ark, Zhipu, MiniMax and more) with per-model balance and subscription quota, plus task-end sound, imported audio, custom roles and a resource manager. Local-only, no telemetry.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1628
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.