Foreword

The main console of DeepSeek Harness (DSH) provides a generic Web interface by default on port 3080. If you need a standalone portal interface with a visual style close to Chinese local government websites, while avoiding hardcoded business logic in plugins, you require a WebUI plugin that can connect to the host’s apiProxy gateway to access all real Agent capabilities such as sessions, models, permissions, and statistics.

Below is the introduction to the dsh-gov-portal maintained by ExElectron: it provides a government-style service hall on the default port 3081, with an interface designed according to local government website visual standards, and all backend capabilities come from the host process with zero business logic hardcoding.

What Is This

dsh-gov-portal (GitHub: ExElectron/dsh-gov-portal) is a Cordis plugin package for DSH. It runs a static frontend and API bridge on a standalone port (default 3081), connecting one-to-one with DSH’s session, model, mode, permission, statistics, and other capabilities through the host’s apiProxy gateway.

The plugin is licensed under MIT and requires Node.js ^22.19.0 || >=24.0.0. The complete design specification can be found in the repository’s docs/design-system.md, and the host integration surface research is in docs/harness-integration.md.

Page Architecture and Interface Capabilities

The interface is strictly organized according to the government service portal design language, with the following main areas:

Top Toolbar: Dark blue background with white text, using the original Windows XP pixel dot matrix SimSun 12px font (anti-aliasing disabled). It includes “Set as Homepage,” “Add to Favorites,” “Accessible Browsing,” a centered red slogan (configurable), a real-time date and time display on the right (accurate to seconds), and a visit counter “This site has been visited: xxxxxx times.” The count is persisted on the server, zero-padded to 6 digits, read and written via the /plugin/visits endpoint, and stored in ~/.dsh/gov-portal.json.

Main Header: Red official seal logo (pre-set red/blue/green/gold stamps or uploadable image), platform name and subtitle, government service search box (blue “Search” button), and a green status dot displaying “System Status: Running Normally.”

Main Navigation: Classic dark blue gradient (#1874cd → #0d47a1) with white bold text, including entries for Platform Homepage, Service Hall, Electronic Dossiers, Supervision Workflow, Parameter Configuration, Policy and Regulations, etc., with hover highlighting.

Dual-Channel Marquee: “Important Notices” on the left and “Market Index” on the right scrolling in opposite directions, with configurable speed, direction, content, and real-time polling API.

80/20 Main Layout: The left side is the direct service hall (ticket number bar, interactive receipt window, statistics row, official document input form), and the right side is the support sidebar (common service channels, convenience service tips).

Dynamic Floating Windows: Two floating windows moving at a constant speed with collision bounce (pausing on hover, removable with “×”)—a red-header important notice popup and an official matrix QR code popup.

Completion Seal: When streaming output is complete, a semi-transparent “【Approved for Completion】” red seal animation can be displayed in the upper right corner, which can be turned off in the parameter configuration.

Real Integration with DSH Host

The plugin does not hardcode Agent business logic; interface elements are mapped one-to-one with host capabilities:

Interface Element Host Capability Description
Model Dropdown + Inference Intensity session.models / session.selectModel Dynamically enumerated by provider, inference intensity refreshes with the model
Mode Dropdown agentPreset.list / agentPreset.select Fully dynamically enumerated, passed via session.create when creating tickets
Permission Dropdown settings.describe + settings.update('permission', {defaultPreset}) Dynamically enumerated from settings schema; selected permission writes to host “new session default”
Receipt Stream events.muxsession/event frames Same event source as the main GUI
Statistics Row sessionStats projection + assistant/message usage aggregation Real-time calculation of rounds/steps/LLM duration/tool duration/first token/speed/cache hit/input/output/TPS, etc.
Sandbox Approval Popup approval/requested frame + POST /api/respond Linked with permission presets
System Inquiry Popup question/requested frame + respond Supports multiple selections
Electronic Dossiers session.list / session.history / session.search / GET /api/session.export Session indexing, viewing, JSONL export
Supervision Workflow session/event real-time append Chunk-level filterable
DSH Native System Settings settings.describe / settings.update Schemastry schema-driven forms, covering all namespaces such as models, credentials, sandbox, etc.

The verified enumerations recorded in the README include: mode dropdown showing standard Standard Mode / code PTC Mode / minimal Minimal Mode / cordis Creation Mode / liangshen Liangshen Mode; permission dropdown showing three levels: read-only / workspace-write / danger-full-access; settings.describe dynamically rendering 11 host namespace forms; real conversation event chain turn/start → user/message → assistant/chunk → assistant/message → turn/end(completed) and sessionStats projection all passing.

Parameter Configuration Panel

The parameter configuration panel supports full-dimension hot modification and persistence, covering:

  1. Floating popup and announcement control
  2. Marquee and scrollbar
  3. Interface visuals and personalization (4 preset themes, customizable global primary color/gradient/border color, unit signature and copy, logo upload)
  4. Agent operation and communication (port, WS, ticket prefix, default model, temperature, context rounds, permission confirmation level, seal switch)
  5. DSH native system parameters
  6. Storage and reset (save, export JSON dossier, import, restore to factory)

Frontend configuration is stored in localStorage (key dsh.govPortal.v1), and plugin port and other settings are stored in ~/.dsh/gov-portal.json.

Installation and Enabling

The plugin is installed to the web profile via dsh plugin, and requires restarting dsh web after installation to take effect.

# 1. Install to web profile (pnpm link + auto reconcile into dsh.profile.bundles)
cd <this-directory>
dsh plugin --profile web add link:<absolute-path-to-this-directory>

# (If you encounter EPERM when pnpm writes to package.json, you can manually add:
#   dependencies: "dsh-gov-portal": "link:../../../Desktop/test/Dsh_GovUI" (according to actual relative path)
#   Append "dsh-gov-portal" to the end of dsh.profile.bundles)

# 2. Restart dsh web (the plugin runs inside the dsh process and requires a restart to take effect)
dsh web

# 3. Access
#    http://127.0.0.1:3081/         Government Service Hall (this plugin)
#    http://127.0.0.1:3080/         DeepSeek Harness Main Console

After modifying the port, dsh needs to be restarted; the listening parameters are read when the plugin starts.

Verification and Testing

The repository provides four types of test scripts, which can be run as needed:

node test/server-smoke.mjs      # Static resources + API bridge dispatch + SSE + respond + export (mock ctx)
node test/e2e-check.mjs         # 17 runtime checks in the browser (requires 3081 online)
node test/e2e-chat.mjs          # Real conversation: create session → submit → event chain → statistics (consumes a small amount of API quota)
node test/screenshot.mjs        # Screenshots of each panel (outputs shots/*.png)

e2e-chat.mjs will actually write to ~/.dsh/sessions, and can be viewed or deleted in the Electronic Dossiers.

Applicable Scenarios and Considerations

Who Is It For

  • Developers or teams that need to provide a government-style service hall interface on DSH
  • Scenarios that want to retain all DSH Agent capabilities (models, modes, permissions, approvals, statistics) and only replace the frontend presentation
  • Scenarios that need standalone port (3081) and main console (3080) parallel access

Considerations

  1. The plugin only runs inside the host process (dsh web); the 3081 page cannot be used independently of dsh.
  2. The event channel uses the same-process SSE bridge between this plugin and the host by default; the configuration panel retains WebSocket address and retry interval options.
  3. The plugin runs with the current dsh process permissions; you should check the source code and MIT license before installation.
  4. Test sessions will actually write to local session storage, so pay attention to cleanup.

Conclusion

dsh-gov-portal encapsulates DSH’s Agent capabilities into a configurable government-style WebUI, without reimplementing business logic. The interface and host maintain a one-to-one connection through apiProxy. If you are looking for an alternative to the main console interface in the DSH ecosystem, you can find more details through the links below.

  • SkillHub Directory Page: https://www.skillhub.cn/plugins/ExElectron/dsh-gov-portal
  • GitHub Repository: https://github.com/ExElectron/dsh-gov-portal