XCKjacksparrow
dsh-weather
Weather forecast for the DeepSeek Harness web GUI: a draggable floating weather card plus a model-callable weather tool.
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
dsh-weather
Weather forecast for the DeepSeek Harness web GUI. A draggable floating weather card in the bottom-right corner, plus a model-callable weather tool — with playful easter eggs. Weather data comes from Open-Meteo (free, no API key).
Features
- Floating weather card — a ☀️ button in the bottom-right opens a draggable card showing current conditions and a 3-day forecast.
- Auto-locate by IP — on first open, the card locates your city from your IP and resolves a Chinese name (e.g. 南京); it falls back to 北京 if that fails.
- Search any city — Chinese or English names, e.g. 北京 / 上海 / New York / Tokyo.
- Model tool — the agent answers "北京明天天气" / "上海要带伞吗" by calling the
weathertool directly. - Easter eggs 🍬 — weather one-liners (sunny = "宜摸鱼忌加班", ≥35° = "出门五分钟流汗两小时") and city-specific jokes (
南极= "企鹅比人多,出门记得带鱼"). - Theme-aware — uses Harness design tokens, so it follows light/dark mode.
Install
dsh plugin --profile web add https://github.com/XCKjacksparrow/dsh-weather/archive/refs/tags/v0.1.0.tar.gz
Then restart dsh web so the Host and the browser client load the plugin.
Install from a local build
npm run build
npm pack
dsh plugin --profile web add ./dsh-weather-0.1.0.tgz
Usage
- Click the ☀️ button in the bottom-right, type a city, and press Enter or 查询.
- Ask the agent anything weather-related, e.g. "上海明天要带伞吗?"
Development
npm install
npm run build # build host + client bundles into lib/
npm test # run the unit tests (node --test)
Built files under lib/ are committed, so installing the plugin does not require a build step.
Data sources
- Weather: Open-Meteo — free, no API key.
- IP geolocation:
api.ipapi.is(primary), thenget.geojs.ioandipwho.is(fallbacks). - Chinese reverse geocoding: BigDataCloud.
Privacy: the widget sends your IP to a third-party geolocation service once, on first open, to infer an approximate city. Nothing is stored.
Configuration
No configuration required.
License
MIT