TZHR-invest/dsh-plugins
TZHR-invest/dsh-plugins#dsh-lan-gateway: Complete LAN/remote access for the Web UI: 0.0.0.0 binding, crypto.randomUUID polyfill, token gate (401 login page + WebSocket interception, loopback exempt), privileged-fence and settings-persistence exemptions, and an idempotent installer with upgrade recovery. TZHR-invest/dsh-plugins#dsh-mobile-ui: Mobile UI for the Web GUI on narrow screens: full-width responsive layout, overlay session drawer, 44px touch targets, safe-area support, and reading enhancements with zero desktop impact. TZHR-invest/dsh-plugins#dsh-vision-tool: Agent-callable vision tool that describes local images via any OpenAI-compatible vision endpoint you configure, with an optional multi-model cross-check and no built-in keys. TZHR-invest/dsh-plugins#dsh-web-search-metaso: Metaso (秘塔AI搜索) search & reader providers for the web seam: web_search returns page summaries, web_fetch reads full-page markdown, multi-scope search (webpage/document/paper/image/video/podcast).
Listed
1
Browser, Remote, Ui, Vision
Bundle verified
What it does
TZHR-invest/dsh-plugins#dsh-lan-gateway: Complete LAN/remote access for the Web UI: 0.0.0.0 binding, crypto.randomUUID polyfill, token gate (401 login page + WebSocket interception, loopback exempt), privileged-fence and settings-persistence exemptions, and an idempotent installer with upgrade recovery. TZHR-invest/dsh-plugins#dsh-mobile-ui: Mobile UI for the Web GUI on narrow screens: full-width responsive layout, overlay session drawer, 44px touch targets, safe-area support, and reading enhancements with zero desktop impact. TZHR-invest/dsh-plugins#dsh-vision-tool: Agent-callable vision tool that describes local images via any OpenAI-compatible vision endpoint you configure, with an optional multi-model cross-check and no built-in keys. TZHR-invest/dsh-plugins#dsh-web-search-metaso: Metaso (秘塔AI搜索) search & reader providers for the web seam: web_search returns page summaries, web_fetch reads full-page markdown, multi-scope search (webpage/document/paper/image/video/podcast).
Best for
- Teams exposing the DSH Web UI to trusted LAN or remote devices that need binding, token gating, and WebSocket interception.
- Users who need a narrow-screen mobile Web UI with an overlay session drawer, touch-sized controls, and safe-area support.
- Agents that need to describe local images through a configured OpenAI-compatible vision endpoint, optionally cross-checking models.
- Workflows that need Metaso-backed summarized search and full-page Markdown reading across multiple content scopes.
Not ideal for
- LAN gateway deployments on untrusted networks or where transport encryption is required; its token gate is authorization, not encryption.
- Desktop-only users who do not need remote access, mobile adaptation, vision analysis, or Metaso search.
- Vision workflows without a configured compatible endpoint and credentials; the plugin includes no keys.
- Users expecting the mobile plugin to alter desktop behavior; it is scoped to screens at or below 768px.
README
dsh-plugins
A small monorepo of plugins for DeepSeek Harness (dsh) — self-hosted, battle-tested against real incidents (crash-prevention discipline, idempotent installers, upgrade recovery).
Plugins
| Package | npm | What it does |
|---|---|---|
| dsh-lan-gateway | dsh-lan-gateway |
LAN / remote access gateway for the Web UI: 0.0.0.0 binding, crypto.randomUUID polyfill, token gate (401 login page + WebSocket interception, loopback exempt), privileged-fence + settings-persistence exemptions, idempotent installer + reapply-lan-patches.sh recovery. Trusted networks only. |
| dsh-vision-tool | dsh-vision-tool |
Registers a vision tool for agents: describe local images via any OpenAI-compatible vision endpoint you configure — no built-in keys, optional multi-model cross_check to guard against hallucinations. |
| dsh-mobile-ui | dsh-mobile-ui |
Mobile UI for the Web GUI (≤768px): full-width responsive layout, overlay session drawer, 44px touch targets, safe-area support, reading enhancements — zero desktop impact. |
All three follow the official bundle contract (dsh.bundle.patch), pass the repo’s contract preflight (classic-script bundles, no top-level import/export, exports["./client"] present), and ship idempotent installers with headless smoke tests and uninstall rollback.
Install
# per-plugin tarball (see each package README) or via npm:
dsh plugin --profile web add dsh-lan-gateway
dsh plugin --profile web add dsh-vision-tool
dsh plugin --profile web add dsh-mobile-ui
⚠️ Security: dsh-lan-gateway binds the Web GUI to 0.0.0.0 — any device that can reach the port can drive the agent. Trusted networks only; the token gate is authorization, not encryption.
Infrastructure in this repo
-
scripts/preflight.mjs— contract preflight for plugin packages (the crash-prevention checklist: platform, exports, classic-script bundle, id consistency). Runs automatically inbuild.sh. -
scripts/new-plugin.sh+templates/— scaffold new plugins from a template with an auto-generated idempotent installer (preflight + headless smoke + idempotent wiring + uninstall rollback). -
docs/development.md— plugin development guide (host/client mechanism, package spec, wiring, debugging, §8 crash-prevention checklist). -
docs/publishing.md— tarball distribution guide.
External plugins (registered only, not copied)
-
memory-recall-dsh — long-term memory plugin (6 tools + auto recall injection + auto capture). Code lives in the
memory_recallrepo (apps/api/src/plugins/dsh/); this repo only links it to avoid source drift. Requires a self-deployed backend. -
dshmarket — visual plugin market inside the Web GUI (browse/search/install/update/uninstall 300+ community plugins, themes). Upstream: dsh-market/dsh-market (npm
dshmarket, MIT, zero runtime deps); registered here only, not copied. Install:dsh plugin --profile web add dshmarket, then restartdsh web; entry at Settings → Plugin Market. Note: its in-UI one-click restart (loopback + same-origin guarded) is enabled by default — on hosts without a supervisor, prefer a manual terminal restart or setallowRestart: false.
License
MIT. Chinese documentation: README.zh.md
Frequently Asked QuestionsFAQ
Use the verified command dsh plugin --profile default add github:TZHR-invest/dsh-plugins#path:/packages/dsh-lan-access in a DSH-enabled shell. The command resolves the public package metadata and keeps the plugin attached to the catalog identity shown on this page.
Compatibility follows the bundle and profile status shown above. If a profile is not detected, keep the plugin disabled there and check the repository documentation before enabling it in production.
The GitHub link and activity metadata are the source of truth for releases and maintenance. Revisit this page after a new release to confirm the catalog has observed the latest version.