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).

Bundle verified MIT Shell Unknown
Bundle verified

Listed

1

Browser, Remote, Ui, Vision

Bundle verified

VersionUnknown
LanguageShell
LicenseMIT
View on GitHub

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 in build.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_recall repo (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 restart dsh 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 set allowRestart: 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.