DeepSeek Harness Plugin

mercy719/dsh-client-ui-weather

Category UI Enhancements Added 2026-08-19

Weather dashboard for the DeepSeek Harness Web GUI with city switching, current conditions, an eight-hour trend, and a five-day forecast.

Install

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:mercy719/dsh-client-ui-weather

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 | 中文

A polished weather dashboard plugin for the DeepSeek Harness Web GUI.

Features

  • Switch between Shanghai, Beijing, Shenzhen, Tokyo, London, and New York.
  • Show current temperature, feels-like temperature, humidity, wind, visibility, pressure, and direction.
  • Render an accessible eight-hour temperature trend chart.
  • Show a five-day forecast with high/low temperatures and precipitation probability.
  • Start with a visible dashboard and collapse it into a compact weather pill.
  • Keep the overlay click-through except for its controls, so it does not block the shell.
  • Use Open-Meteo without an API key.
  • Fall back to deterministic sample data when the provider fails, times out, or returns invalid data.
  • Cancel superseded requests and enforce a ten-second timeout.
  • Use city-timezone calendar dates, including DST-safe fallback dates.

Install in a DeepSeek Harness checkout

This repository contains the standalone plugin source. The supported runtime is the DeepSeek Harness monorepo because the plugin composes through its shell.overlay slot and imports the Harness client packages.

The repository declares a dsh.bundle manifest and ships cordis.patch.yml, so it can be installed with the normal bundle command:

dsh plugin --profile web add github:mercy719/dsh-client-ui-weather

For source development, copy or vendor this directory as packages/client/ui-weather, then add the package to the Web bundle roster:

# packages/bundle/web-app/cordis.patch.yml
- id: ui-weather
  name: '@deepseek-ai/dsh-client-ui-weather'

Add the workspace dependency to packages/bundle/web-app/package.json, add the TypeScript project reference, and build the package:

pnpm exec tsc -b packages/client/ui-weather/tsconfig.json
pnpm --filter @deepseek-ai/dsh-client-ui-weather bundle
pnpm run test:gui

The package manifest's dsh.client.inject list records package-level bundle/artifact dependencies for the boot graph and watcher. The browser entry separately declares the actual Cordis service dependency, export const inject = ['slots'].

Data source and privacy

The browser requests public forecast data from Open-Meteo. No API key, host credential, model input, session event, or durable state is involved. The selected city and expanded/collapsed state reset on reload.

Model Experience

Weather dashboard

What the model sees

None. The plugin is a human-facing weather projection and does not alter prompts, messages, tools, model requests, or session logs.

Token effect

None; weather data is not added to model context.

KV Cache effect

None; the plugin does not assemble or send provider requests.

Known Limitations and Deferred Work

  • Public provider only — deployments that need private credentials, server-side caching, or a rate-limit policy should replace the injected request capability with a host-owned weather service.
  • No persistence — the city and expanded/collapsed state reset after reload.
  • No automatic polling — refresh is explicit to avoid unbounded timers and duplicate requests across browser tabs.

License

MIT. See LICENSE.

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.