Omahub
← All plugins
O

Hurricane Tracker

by Olivier Melcher

A calm, native Omarchy hurricane tracker for NHC cyclones, regional outlooks, forecast tracks, and discussions.

Security review

Review recommended · 1 finding

Deterministic scan — not a security guarantee

Low
Risk level
Low
Analyzed commit
a611893
Scanned
1 month ago

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

None
AI risk level
None
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
a611893
Reviewed
1 month ago

The plugin is a conventional weather tracker: QML UI shells call a Python helper that fetches NHC, Open-Meteo, and Nominatim data, caches it under XDG directories, and manages a marker-guarded desktop entry. No malicious, destructive, or hidden behavior was found in the sampled entry points, launcher logic, or backend tests. The deterministic obfuscation finding appears to be a false positive from an accented string in a test file, not from executable runtime code.

How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/olivoil/omarchy-hurricane-tracker --enable
Widgets #bar #quickshell

Hurricane Tracker

Hurricane Tracker adds a tropical-weather icon to your Omarchy bar. Open it to see what the National Hurricane Center (NHC) is tracking: active storms, forecast paths, uncertainty cones, and areas that may develop.

Hurricane Tracker showing Tropical Storm Karina's forecast cone, nearby systems, and NHC forecast discussion

The plugin covers the Atlantic, Eastern Pacific, and Central Pacific basins. It does not currently include storms tracked by the JTWC or other agencies.

Features

  • Active storms and developing systems, grouped by basin
  • Official forecast tracks and cones of uncertainty
  • Past tracks and intensity history
  • Two-day and seven-day formation chances for NHC outlook areas
  • Forecast intensity shown with both labels and color
  • Excerpts from the latest NHC discussions, with links to the full advisories
  • Optional notifications for new cyclones and rising formation chances
  • A global Alerts destination for locally saved locations and proximity notifications
  • Typed city, region, and postal-code search while positioning an alert destination
  • Keyboard navigation, map controls, and support for reduced motion
  • Cached data when the NHC is temporarily unavailable

The map is rendered locally in QML using bundled Natural Earth geometry. The plugin does not need an API key or extra Python packages, and it does not install a background daemon.

Install

Hurricane Tracker requires Omarchy Quattro with Quickshell plugin support and Python 3.

omarchy plugin add https://github.com/olivoil/omarchy-hurricane-tracker.git --enable

Once enabled, open it from Super+Space by searching for Hurricane Tracker. The plugin removes its launcher entry when it is disabled or uninstalled.

It also needs HTTPS access to nhc.noaa.gov and www.nhc.noaa.gov to download advisories and outlooks. Typed place search uses geocoding-api.open-meteo.com; map placement still works when online place search is disabled.

Settings and notifications

Hurricane Tracker checks for new NHC data every 15 minutes by default. You can change the interval in Omarchy's bar settings.

Distances and speeds automatically follow the system measurement convention inherited from Omarchy: miles and mph for imperial locales, kilometres and km/h for metric locales. Alert radii stay stored in kilometres internally, so changing the display convention does not change an alert area. A manual unit override is not exposed yet.

Broad basin notifications are off until you choose a basin. You can be notified when:

  • an outlook area's seven-day formation chance reaches 20%, 40%, or 70%; or
  • the NHC begins issuing advisories for a new cyclone.

Alerts can cover the Atlantic, Eastern Pacific, Central Pacific, or all three. When you turn them on, existing systems are treated as the starting point, so you will not get a burst of notifications for storms already underway.

Open Alerts in the app header to save up to 12 locations such as home, family, or a destination. Search for a city, region, or postal code, or click its position directly on the globe. Give each location a watch radius from 250 km to 2,000 km, shown in the system's preferred units. A search result or nearby map place supplies the initial name, then the separate Name field lets you personalize it, so Sarasota can still be saved as “Mom’s Place.” The map keeps saved locations quiet as dots and reveals their alert areas while editing. Location notifications are sent when:

  • an NHC formation area within that radius reaches your formation threshold; or
  • an official NHC forecast cone or center track enters the radius.

Formation notifications are early awareness only. They do not claim that a developing system will affect the saved place. Place notifications use the same quiet starting baseline as basin notifications and are grouped when one refresh produces several updates.

Watch places are stored locally in ~/.config/hurricane-tracker/watch-places.json, or under $XDG_CONFIG_HOME when set. The file is written with user-only permissions. Current source coverage is limited to NHC basins; a place elsewhere remains saved but is marked as outside the current source coverage.

Online place lookup waits until typing pauses, then sends only the geographic search text to Open-Meteo. Choosing a point on the globe sends that coordinate to OpenStreetMap's Nominatim service once to suggest a nearby place name. Personal labels, saved watch-place lists, and alert radii are never included. Turn off Online place lookup in the plugin settings to keep globe placement entirely local; coordinate labels remain available as a fallback.

Controls

Input Action
Left-click the bar icon Open or close Hurricane Tracker
Middle-click the bar icon Refresh NHC data
Right-click the bar icon Open the NHC website
Click Cyclones Open the tracker menu
Click Alerts View, add, edit, or remove watched locations
Click a system or map marker Select it and fit it on the map
Click View all beside a basin Fit every system in that always-open basin on the map
Click a watched location Select it and fit it on the map
Click the map while adding a location Set or move the watch point
Drag the map Move around the globe
Mouse wheel Zoom at the pointer
Up / Down Select the previous or next system
+ / - Zoom in or out
F Fit the selected system
G or 0 Show the whole globe
R Refresh
O Open the selected system's official advisory
Escape Close the current menu or alert view, then close Hurricane Tracker

Data and safety

Active storm data comes from the NHC's CurrentStorms.json feed. The plugin follows the KMZ links in that feed for forecast tracks, cones, and preliminary best tracks. Formation areas and probabilities come from the NHC's Graphical Tropical Weather Outlook products. It also fetches the linked text products for forecast discussion excerpts.

Cyclone requests are limited to NHC-owned HTTPS hosts. Place lookups use only Open-Meteo's fixed HTTPS search endpoint and OpenStreetMap Nominatim's fixed HTTPS reverse endpoint. All interfaces refuse redirects and non-success responses and enforce streaming response limits before parsing. Place-name responses are capped at 64 KiB, Open-Meteo results are capped at eight, and remote display fields and coordinates are validated again before QML renders them. Reverse lookups are debounced, serialized, and discarded when they no longer match the selected point.

Location results are provided by Open-Meteo using GeoNames place data. Map-click place names are provided by OpenStreetMap contributors through Nominatim.

The latest data is cached at ~/.cache/hurricane-tracker/storms.json. If you have set $XDG_CACHE_HOME, the cache is stored in $XDG_CACHE_HOME/hurricane-tracker/storms.json instead. It contains public weather data only.

Hurricane Tracker is an awareness tool, not an emergency warning system. The forecast cone shows the probable path of the storm's center; dangerous wind, rain, storm surge, and tornadoes can occur well outside it. Follow guidance from local authorities and official weather services.

Update

omarchy plugin update io.github.olivoil.hurricane-tracker
omarchy restart shell

Restarting the shell makes sure the QML interface and data helper are updated together. Your alert settings and watch places are preserved. Version 0.0.1 used a different cache location, so its first update starts a fresh weather cache; later updates preserve the cache at the path above.

Uninstall

omarchy plugin remove io.github.olivoil.hurricane-tracker

Omarchy leaves cached weather data and saved watch places behind. If you want to remove them as well, delete ~/.cache/hurricane-tracker/storms.json and ~/.config/hurricane-tracker/watch-places.json, or their equivalents under your custom XDG directories.

Development

Run the full test suite with:

./tests/run

For live development, link the checkout into your Omarchy plugin directory:

ln -s "$PWD" ~/.config/omarchy/plugins/io.github.olivoil.hurricane-tracker
omarchy-shell shell rescanPlugins
omarchy plugin enable io.github.olivoil.hurricane-tracker center
omarchy-shell shell summon io.github.olivoil.hurricane-tracker '{}'

The shell watches the linked directory and reloads saved QML files automatically. See docs/architecture.md for an overview of the data pipeline and UI.

License

Hurricane Tracker is licensed under the MIT License. The bundled Natural Earth geometry is public domain; see assets/NATURAL_EARTH.md and THIRD_PARTY_NOTICES.md for details.