Top-centered weather bar for the DSH Web UI: geolocation, current conditions, 12h/7d forecasts and severe-weather notifications via Open-Meteo (free, no API key).
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:QianLuo-Ly/dsh-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
This plugin publishes its README in Chinese only.
DSH Web 会话顶栏的天气插件:当前天气 + 实时日期时间 + 未来 12 小时/7 天预报。 装上后,打开 DeepSeek Harness 网页版进入任一会话,即可在会话顶部操作行看到天气 chip——它内嵌在 app 布局里,不与任何浮层插件抢位置。
- 数据来自 Open-Meteo:免费、无需 API key、浏览器直连
- 自动定位优先使用浏览器定位(GPS/WiFi,可精确到区),失败或拒绝时回退 IP 定位
- 不收集、不上传任何个人数据,配置仅保存在本地


安装
方式一:插件市场一键安装(推荐)
如果还没有插件市场,先安装它:
dsh plugin --profile web add dshmarket重启
dsh web,打开 设置 → 插件市场,搜索 weather,一键安装dsh-weather。刷新页面,进入会话即可在顶部操作行看到天气 chip。
方式二:命令行从 GitHub 安装
dsh plugin --profile web add https://github.com/QianLuo-Ly/dsh-weather
重启(或按提示刷新)dsh web 后生效。
要求 dsh web 0.1.0-rc.6 或更新版本。
使用
- 天气 chip:常驻在会话顶部操作行,单行紧凑显示天气图标、温度、具体天气与日期时间(分钟级自动刷新,如
⛅ 26° 晴 · 7月5日 14:05),点击展开详情;展开/收起都看得到时间。 - 详情弹层:
- 当前天气:大图标 + 大温度,以及湿度 / 风速 / 阵风 / 风向 / 气压 / 能见度 / 云量 / 露点 / 今日降水量 / 空气质量(AQI + PM2.5,AQI 按 HJ 633-2012 用六项污染物的 24 小时平均浓度自算,不是数据源那套美国 EPA 口径的指数 —— 同一片空气两者会给出不同的数)
- 今日信息:日出 / 日落 / UV 峰值指数 / PM2.5 + 一句话出行建议(带伞 / 防晒 / 防暑等)
- 未来 6 小时降水:15 分钟级降水柱状条(Open-Meteo
minutely_15),直接告诉你「预计几点开始下雨 / 会下多久」 - 未来 24 小时温度趋势曲线
- 未来 12 小时逐小时预报、未来 7 天预报(带温度区间渐变条,点击某天查看逐日详情:当日逐小时温度 / 天气 / 降水概率 / 风速 / 湿度 + 日出日落与降水量)
- 天气描述按实测证据、依国内标准分档:晴 / 少云 / 多云 / 阴按 GB/T 35663-2017 成数;雨雪按 GB/T 28592-2012 与国内逐时雨强口径;雾 / 轻雾 / 霾按 QX/T 113-2010(判识起点 10 km,霾分轻微 / 轻度 / 中度 / 重度四级);沙尘按 GB/T 20480-2017,以数据源的沙尘浓度
dust为主判、PM10 佐证,而不是能见度 —— 实测该数据源的能见度不随沙尘变化(库尔勒 dust 峰值 997 µg/m³ 时能见度仍报 26.9 km),拿它当门会让沙尘天报成「晴」;高温 / 大风 / 紫外线取中国气象局预警档次。 - 天气图标按强度区分:毛毛雨 / 小雨 / 中雨 / 大雨、小雪 / 中雪 / 大雪 / 米雪 / 阵雪各有独立图标(云的形态相同,雨点数量与长度、雪花大小与数量递进),冻雨 / 冻毛毛雨另带冰粒标记;标签页 emoji 同样分档(❄️ 小雪 · 🌨️ 中雪 · ⛄ 大雪 · 🧊 米雪/冻雨 · ⛈️ 雷阵雨 · 🌩️ 雷暴伴冰雹),不再出现三档雪共用 ❄️ 的情况。
- 多城市收藏与切换:弹层里点 ☆ 收藏当前城市,之后在顶部一行城市切换(含「当前位置」)随点随换;设置页可管理(切换 / 删除 / 从搜索结果直接收藏),最多 8 个。
- 即将下雨提示:预计 1 小时内开始下雨时,详情弹层的降水区会显示「约 X 分钟后开始下雨」;启用浏览器提醒后也会提前通知带伞。
- 浏览器标签页标题会同步显示当前天气与天气名称(如
❄️ 中雪 3° 北京 — …),刷新也保持同步。 - 恶劣天气提醒:当前或未来 12 小时预报出现强降雨 / 雷暴 / 高温 / 大风 / 强降雪时发送浏览器通知(可在设置中开关);1 小时内即将下雨也会提醒带伞。提醒按实测强度分级,不靠天气码一刀切:普通雷阵雨只说「雷阵雨」,只有冰雹、短时强降雨(≥20 mm/h)、12 级以上大风(阵风 13 级)或 40 ℃ 高温才升级为红色「强对流 / 雷暴 / 狂风 / 酷热」,0 ℃ 左右只提示「霜冻」而非「低温」。
- 每日天气简报:可设定早上 / 晚间两个时间点(按本机时间,最多补发 2 小时),到点推送「今日天气」(最高/最低温 + 降水概率)与「明日天气」,每天每个时段只推一次。
- 定位自动跟随:自动定位下,打开 / 刷新页面都会重新测量当前位置,页面停留期间按天气刷新间隔(默认 15 分钟,5–120 分钟)复查,切回标签页也立刻复查;一旦发现位置变化超过约 50 km(跨城 / VPN / 漫游),会自动切换定位并弹出提示,无需手动重新定位。缓存的定位只是显示占位,不会替代这次复检。
- 失败降级:刷新失败时保留上次成功的数据并标注快照时间,不会突然空白。
- ⚙ 设置:点击天气 chip 展开弹层可切换单位 / 收藏 / 重新定位;完整配置在 设置(左下角齿轮)→ 天气:
- 显示开关
- 定位方式:
自动(GPS 优先,失败回退 IP)或手动(中文城市搜索,如「北京」「上海」,或直接填经纬度) - 收藏城市:列表管理 + 「+ 收藏当前位置」
- 单位:摄氏 °C / 华氏 °F(仅显示切换,天气数据始终以公制抓取,无需重新拉取)
- 自动刷新间隔(5–120 分钟,默认 15)
- 恶劣天气提醒开关
- 每日天气简报开关 + 早上 / 晚间推送时间
常见问题
- 定位不够精确? 天气 chip → 弹层「📍 重新定位」,或 设置 → 天气 → 定位方式改为
手动,搜索城市或直接填经纬度。 - 想用华氏度? ⚙ 设置 → 单位切换为 °F。
- 天气数据准吗? 数据来自 Open-Meteo(免费公共气象服务),服务端每小时更新;插件默认每 15 分钟刷新一次,可在 ⚙ 设置里调短或调长(5–120 分钟)。
数据来源与隐私
| 用途 | 服务 | 说明 |
|---|---|---|
| 天气数据 | Open-Meteo(api / air-quality-api / geocoding-api) | 免费公共 API,浏览器直连 |
| 自动定位 | 浏览器定位(GPS/WiFi) | 优先使用;失败、拒绝或超时后回退 IP 定位 |
| IP 定位 | ipwho.is / api.ipapi.is / free.freeipapi.com | 三供应商取 50 km 内共识,失败自动跳过;浏览器定位可用时不参与定位复查 |
| 中文区名 | BigDataCloud | 反向地理编码(Open-Meteo 地理搜索兜底) |
关于"自动定位"要说清楚:自动 模式下,首次解析(没有可用缓存、或你点了「重新定位」)会同时发起上面三个 IP 定位请求(与浏览器定位并行,用于在浏览器定位失败时兜底),
因此即使浏览器定位成功、或你拒绝了定位授权,这三个服务仍会收到你的出口 IP。之后的定时 / 切回页面复查只要浏览器定位可用就只做本地测量,不再请求这三个服务;只有拿不到浏览器定位时才回退 IP。想完全避免,请把 设置 → 天气 → 定位方式 改成 手动 并填写城市或坐标。
插件不存储、不转售任何用户数据;除上表列出的服务外不向任何第三方发送请求。所有配置仅保存在 DSH 本地设置中,
其中定位坐标会按约 100 m 精度取整后保存——天气与地名解析在该精度下没有差别,取整可避免把设备级精确位置长期写入磁盘。
每日简报的去重标记(仅日期与时段,如 dsh-weather-brief-2026-09-05-morning=1)会写入浏览器
localStorage,不含位置、天气内容或任何可识别信息。
开发者
构建、调试与二次开发说明见 docs/DEVELOPMENT.md。
License
MIT
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 8978
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 8978
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 5292
A fixed-corner whale widget for the DSH web GUI — balance, today's usage and per-turn cost with peak/off-peak pricing, editable balance-alert and daily-budget bubbles, a module-based custom bubble queue with A/B weighted choices and random lines or images, 30+ vendor templates (OpenAI, OpenRouter, Kimi, SiliconFlow, Ark, Zhipu, MiniMax and more) with per-model balance and subscription quota, plus task-end sound, imported audio, custom roles and a resource manager. Local-only, no telemetry.
ccch1mneyyy/dsh-TUI★ 4819
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
omdsh-dev/DSH-better-sidebar★ 4290
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1478
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.