d4vid87/stormdesk

Your weather station, made clear — live conditions, forecasts, alerts, radar, and history on every screen.

JavaScript

47

150 commits

updated Sep 17, 2026

See the code
home-assistant
personal-weather-station
stormdesk
weather-alerts
weather-dashboard
weather-radar
weather-station

See what people are saying (1)

SourceMessageScoreDate

I built a free, open-source dashboard for personal weather stations — StormDesk (r/opensource)

Hey everyone! I’ve been building StormDesk, a free and open-source dashboard that turns personal weather-station data into something easier to understand and use every day. It brings together: - Live station conditions and detailed instruments - Forecasts and upcoming weather changes - Animated…

9

Sep 17, 2026

README

StormDesk icon

StormDesk

Your weather station, made clear.

Stormdesk Lite prototype

Stormdesk Lite is a fast, focused interface for current conditions, forecasts, warnings, and on-demand radar. Open Stormdesk Lite or read the design specification.

Stormdesk Lite desktop overview

View the interface tour · View the mobile warning state

StormDesk brings your current weather, forecast, alerts, radar, and history together on one clean screen. Use it on a computer, wall tablet, phone, or another screen in your home.

It works with Tempest, Ecowitt, Ambient Weather, Davis, AcuRite, La Crosse, and many other personal weather stations. You can also use StormDesk without a weather station.

No StormDesk account. No subscription. No ads.

Download StormDesk · Visit the website · Get help

A tour of the redesigned StormDesk dashboard, timeline, local weather, history and radar

Interface preview from the current source. Station readings in these images are labeled demo data; radar comes from HookEcho. Downloaded releases may precede this redesign.

Install StormDesk

Open the latest release, then choose the file for your device.

Your deviceFile to chooseWhat to do
Windows 10 or 11StormDesk_*_x64-setup.exeOpen the file and follow the installer. Allow access on private networks when Windows asks.
MacStormDesk_*_universal.dmgOpen the file, then drag StormDesk into Applications.
Ubuntu, Debian, or Linux MintStormDesk_*_amd64.debDouble-click the file, or use the short command below.
Other 64-bit Linux computersStormDesk_*_amd64.AppImageMake the file runnable, then open it. See the short command below.
Raspberry Pi 4 or 5StormDesk_*_arm64.debUse a 64-bit Raspberry Pi system, then install it with the short command below.
Android or Fire tabletStormDesk_v*.apkOpen the file and allow installation from your browser or Files app when asked.

If a Mac says it cannot verify StormDesk, open System Settings → Privacy & Security and choose Open Anyway.

Linux commands

For the optional natural male voice (Kokoro Michael), install uv, then run python3 scripts/install-natural-voice.py from this repository. Setup downloads about 350 MB once; speech then runs locally on the CPU without an account or cloud service. An installed pw-play, paplay, or aplay provides audio playback. Restart StormDesk and use Enable / Test voice; the setting shows Natural male voice · local when ready. The ordinary system voice remains available on installations without the voice pack. If an installed voice pack fails, the app reports the error instead of silently changing back to the robotic voice.

Spoken watches and warnings: open Settings → Basics → Sounds & notifications, enable Read warnings and watches aloud, then press Enable / Test voice. Keep the dashboard open. The status below the button explains blocked playback or missing voices; the test does not send push notifications.

The Linux app falls back to the local espeak-ng engine when browser speech cannot start. Debian and Arch packages install it as a dependency. AppImage users should install espeak-ng with their package manager (for example, sudo apt install espeak-ng or sudo pacman -S espeak-ng). Browser mode uses the browser's speech engine and may require a system voice and an initial tap. On Linux, browser speech may also require speech-dispatcher and espeak-ng; restart the browser after installing them. An embedded browser without speech support reports an error instead of claiming an announcement played; use the Linux app's native fallback in that case. Warnings and watches bypass quiet hours just as official alert notifications already do; routine advisories stay silent. Closed-app and locked-phone announcements are not supported.

For Ubuntu, Debian, or Linux Mint:

sudo apt install ./StormDesk_*_amd64.deb

For a 64-bit Raspberry Pi:

sudo apt install ./StormDesk_*_arm64.deb

For the AppImage:

chmod +x StormDesk_*_amd64.AppImage
./StormDesk_*_amd64.AppImage

To build a local AppImage from source, run bash scripts/build-appimage.sh with Docker running. It builds in Ubuntu 22.04, matching the release workflow and avoiding Arch's newer GTK loader layout and incompatible bundled strip tool. The unsigned preview is written to src-tauri/target/appimage-ubuntu/release/bundle/appimage/. Build caches stay under ~/.cache/stormdesk-appimage; no host packages are changed. Published, signed updater artifacts still come from the GitHub release workflow.

If the AppImage opens a blank window, use browser mode:

./StormDesk_*_amd64.AppImage --browser

Chromebook

The easiest option is to run StormDesk on another computer in your home, then open the address shown by StormDesk in the Chromebook browser. If Linux is enabled on your Chromebook, you can also download the AppImage and run it with --browser.

Set it up

  1. Open StormDesk.
  2. On the welcome screen, choose your weather-station brand.
  3. Follow the instructions shown for that brand.
  4. StormDesk checks for a real reading and a working forecast before setup finishes.

Tempest owners need a personal-use token from tempestwx.com → Settings → Data Authorizations. StormDesk can find the stations connected to that token, so you do not need to hunt for sensor numbers.

Other supported stations send readings directly from your home network. StormDesk shows the exact address to enter in your station's app or console.

Don't own a weather station? Choose Skip — just show me the weather somewhere, then search for your town or postcode.

Use it around your home

The desktop app shows an address such as http://192.168.1.20:8088 in its window title. Open that address on another device connected to the same Wi-Fi. Leave StormDesk running on the main computer so the other screens can reach it.

Use the address ending in /public for a read-only screen that cannot change settings.

What you get

  • Desk — the weather now, a plain-language summary, the next few days, and the details you care about.
  • Timeline — what happened during the past day and what is expected during the next two days.
  • Radar — live HookEcho radar with warnings and playback.
  • Local Signals — fast wind updates, nearby sensors, lightning, and recent alerts.
  • Data — charts, records, model comparisons, rain totals, and your weather archive.
  • Alerts — built-in warnings plus your own rules for wind, rain, heat, cold, and more.
  • Backup — one complete backup file for your settings and weather history.

On Android

StormDesk conditions and rain history recorded on an Android phone

Recorded on a Samsung Galaxy S24 Ultra. Watch both phone demos.

Screenshots

StormDesk showing current conditions and the local forecast

Storm watchWeather timeline
Radar and local weatherGrouped weather events
Local signalsWeather history
Local outlook and notification controlsStation history charts
Settings and phone layouts

Grouped settings

StormDesk overview on a phone Storm watch on a phone

Supported weather stations

  • WeatherFlow Tempest
  • Ecowitt and Wittboy
  • Ambient Weather
  • Davis WeatherLink Live
  • AcuRite through rtl_433
  • La Crosse Technology
  • WeeWX
  • Many stations that can send data in Weather Underground format
  • Forecast-only mode when no station is available

Brand-by-brand instructions are in the technical guide.

Need help?

Open Settings → Diagnostics or the Health Center. StormDesk checks your station, forecast, alerts, radar, saved history, and other connections. Copy support report creates a safe report you can paste into a GitHub issue without including passwords, tokens, or your location.

Common fixes:

  • No readings: reopen the welcome setup and make sure it receives one real reading.
  • Another screen cannot connect: keep StormDesk running and allow it through the main computer's firewall on private networks.
  • Blank Linux window: start StormDesk with --browser.
  • Old or missing forecast: open the Health Center and choose Retry now.

If you are still stuck, report a problem and include the support report.

For technical users

The technical guide covers Docker, Home Assistant, MQTT, alert services, read-only sharing, station upload formats, building from source, data sources, testing, and troubleshooting.

Privacy

StormDesk stores its settings and weather history on your own computer. It has no user accounts, ads, or app tracking. Forecast and alert providers receive only the information needed to return weather for your area.

The regular home-network dashboard is meant for people you trust. Use /public for guests or any screen that should not see or change private settings.

License

StormDesk is free and open source under the MIT License.

Contributors

d4vid87/stormdesk

Your weather station, made clear — live conditions, forecasts, alerts, radar, and history on every screen.

JavaScript

47

150 commits

updated Sep 17, 2026

See the code
home-assistant
personal-weather-station
stormdesk
weather-alerts
weather-dashboard
weather-radar
weather-station

See what people are saying (1)

SourceMessageScoreDate

I built a free, open-source dashboard for personal weather stations — StormDesk (r/opensource)

Hey everyone! I’ve been building StormDesk, a free and open-source dashboard that turns personal weather-station data into something easier to understand and use every day. It brings together: - Live station conditions and detailed instruments - Forecasts and upcoming weather changes - Animated…

9

Sep 17, 2026

README

StormDesk icon

StormDesk

Your weather station, made clear.

Stormdesk Lite prototype

Stormdesk Lite is a fast, focused interface for current conditions, forecasts, warnings, and on-demand radar. Open Stormdesk Lite or read the design specification.

Stormdesk Lite desktop overview

View the interface tour · View the mobile warning state

StormDesk brings your current weather, forecast, alerts, radar, and history together on one clean screen. Use it on a computer, wall tablet, phone, or another screen in your home.

It works with Tempest, Ecowitt, Ambient Weather, Davis, AcuRite, La Crosse, and many other personal weather stations. You can also use StormDesk without a weather station.

No StormDesk account. No subscription. No ads.

Download StormDesk · Visit the website · Get help

A tour of the redesigned StormDesk dashboard, timeline, local weather, history and radar

Interface preview from the current source. Station readings in these images are labeled demo data; radar comes from HookEcho. Downloaded releases may precede this redesign.

Install StormDesk

Open the latest release, then choose the file for your device.

Your deviceFile to chooseWhat to do
Windows 10 or 11StormDesk_*_x64-setup.exeOpen the file and follow the installer. Allow access on private networks when Windows asks.
MacStormDesk_*_universal.dmgOpen the file, then drag StormDesk into Applications.
Ubuntu, Debian, or Linux MintStormDesk_*_amd64.debDouble-click the file, or use the short command below.
Other 64-bit Linux computersStormDesk_*_amd64.AppImageMake the file runnable, then open it. See the short command below.
Raspberry Pi 4 or 5StormDesk_*_arm64.debUse a 64-bit Raspberry Pi system, then install it with the short command below.
Android or Fire tabletStormDesk_v*.apkOpen the file and allow installation from your browser or Files app when asked.

If a Mac says it cannot verify StormDesk, open System Settings → Privacy & Security and choose Open Anyway.

Linux commands

For the optional natural male voice (Kokoro Michael), install uv, then run python3 scripts/install-natural-voice.py from this repository. Setup downloads about 350 MB once; speech then runs locally on the CPU without an account or cloud service. An installed pw-play, paplay, or aplay provides audio playback. Restart StormDesk and use Enable / Test voice; the setting shows Natural male voice · local when ready. The ordinary system voice remains available on installations without the voice pack. If an installed voice pack fails, the app reports the error instead of silently changing back to the robotic voice.

Spoken watches and warnings: open Settings → Basics → Sounds & notifications, enable Read warnings and watches aloud, then press Enable / Test voice. Keep the dashboard open. The status below the button explains blocked playback or missing voices; the test does not send push notifications.

The Linux app falls back to the local espeak-ng engine when browser speech cannot start. Debian and Arch packages install it as a dependency. AppImage users should install espeak-ng with their package manager (for example, sudo apt install espeak-ng or sudo pacman -S espeak-ng). Browser mode uses the browser's speech engine and may require a system voice and an initial tap. On Linux, browser speech may also require speech-dispatcher and espeak-ng; restart the browser after installing them. An embedded browser without speech support reports an error instead of claiming an announcement played; use the Linux app's native fallback in that case. Warnings and watches bypass quiet hours just as official alert notifications already do; routine advisories stay silent. Closed-app and locked-phone announcements are not supported.

For Ubuntu, Debian, or Linux Mint:

sudo apt install ./StormDesk_*_amd64.deb

For a 64-bit Raspberry Pi:

sudo apt install ./StormDesk_*_arm64.deb

For the AppImage:

chmod +x StormDesk_*_amd64.AppImage
./StormDesk_*_amd64.AppImage

To build a local AppImage from source, run bash scripts/build-appimage.sh with Docker running. It builds in Ubuntu 22.04, matching the release workflow and avoiding Arch's newer GTK loader layout and incompatible bundled strip tool. The unsigned preview is written to src-tauri/target/appimage-ubuntu/release/bundle/appimage/. Build caches stay under ~/.cache/stormdesk-appimage; no host packages are changed. Published, signed updater artifacts still come from the GitHub release workflow.

If the AppImage opens a blank window, use browser mode:

./StormDesk_*_amd64.AppImage --browser

Chromebook

The easiest option is to run StormDesk on another computer in your home, then open the address shown by StormDesk in the Chromebook browser. If Linux is enabled on your Chromebook, you can also download the AppImage and run it with --browser.

Set it up

  1. Open StormDesk.
  2. On the welcome screen, choose your weather-station brand.
  3. Follow the instructions shown for that brand.
  4. StormDesk checks for a real reading and a working forecast before setup finishes.

Tempest owners need a personal-use token from tempestwx.com → Settings → Data Authorizations. StormDesk can find the stations connected to that token, so you do not need to hunt for sensor numbers.

Other supported stations send readings directly from your home network. StormDesk shows the exact address to enter in your station's app or console.

Don't own a weather station? Choose Skip — just show me the weather somewhere, then search for your town or postcode.

Use it around your home

The desktop app shows an address such as http://192.168.1.20:8088 in its window title. Open that address on another device connected to the same Wi-Fi. Leave StormDesk running on the main computer so the other screens can reach it.

Use the address ending in /public for a read-only screen that cannot change settings.

What you get

  • Desk — the weather now, a plain-language summary, the next few days, and the details you care about.
  • Timeline — what happened during the past day and what is expected during the next two days.
  • Radar — live HookEcho radar with warnings and playback.
  • Local Signals — fast wind updates, nearby sensors, lightning, and recent alerts.
  • Data — charts, records, model comparisons, rain totals, and your weather archive.
  • Alerts — built-in warnings plus your own rules for wind, rain, heat, cold, and more.
  • Backup — one complete backup file for your settings and weather history.

On Android

StormDesk conditions and rain history recorded on an Android phone

Recorded on a Samsung Galaxy S24 Ultra. Watch both phone demos.

Screenshots

StormDesk showing current conditions and the local forecast

Storm watchWeather timeline
Radar and local weatherGrouped weather events
Local signalsWeather history
Local outlook and notification controlsStation history charts
Settings and phone layouts

Grouped settings

StormDesk overview on a phone Storm watch on a phone

Supported weather stations

  • WeatherFlow Tempest
  • Ecowitt and Wittboy
  • Ambient Weather
  • Davis WeatherLink Live
  • AcuRite through rtl_433
  • La Crosse Technology
  • WeeWX
  • Many stations that can send data in Weather Underground format
  • Forecast-only mode when no station is available

Brand-by-brand instructions are in the technical guide.

Need help?

Open Settings → Diagnostics or the Health Center. StormDesk checks your station, forecast, alerts, radar, saved history, and other connections. Copy support report creates a safe report you can paste into a GitHub issue without including passwords, tokens, or your location.

Common fixes:

  • No readings: reopen the welcome setup and make sure it receives one real reading.
  • Another screen cannot connect: keep StormDesk running and allow it through the main computer's firewall on private networks.
  • Blank Linux window: start StormDesk with --browser.
  • Old or missing forecast: open the Health Center and choose Retry now.

If you are still stuck, report a problem and include the support report.

For technical users

The technical guide covers Docker, Home Assistant, MQTT, alert services, read-only sharing, station upload formats, building from source, data sources, testing, and troubleshooting.

Privacy

StormDesk stores its settings and weather history on your own computer. It has no user accounts, ads, or app tracking. Forecast and alert providers receive only the information needed to return weather for your area.

The regular home-network dashboard is meant for people you trust. Use /public for guests or any screen that should not see or change private settings.

License

StormDesk is free and open source under the MIT License.

Contributors

Languages

JavaScript

47.2%

Rust

25.4%

HTML

21.3%

CSS

4.3%