Skip to content
steffenwoellPublic

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

Dusty 1.4 "Intercept"

The wonder of nature, displayed in your terminal.

Dusty is a lightweight, configurable terminal weather forecast for macOS, written in Swift. It resolves place names and retrieves forecasts from the Open-Meteo APIs.

Dusty screenshot

Features

  • Search and save a default location
  • Use a different location for a single request
  • Current conditions and today's forecast
  • Next 8 hours
  • Multi-day forecasts with 4, 8, or 15 API days
  • Temperature trend graph
  • ANSI colors and terminal-friendly weather icons
  • Six-hour offline fallback from the local cache
  • No third-party dependencies

Requirements

  • macOS 13 or later
  • Swift 6.1 or later when building from source
  • Internet access for location search and fresh forecasts

Build

git clone https://github.com/steffenwoell/dusty.git
cd dusty
./build.zsh

The build script creates an optimized, locally ad-hoc-signed executable at dist/dusty, verifies it, and retains an existing successful build until its replacement passes validation. Build a universal Apple Silicon and Intel executable with:

./build.zsh --universal

Select a different destination with --output PATH. A signing certificate can be supplied through APPLE_SIGN_IDENTITY; the default ad-hoc signature is intended for local builds and is not notarized distribution.

Install the resulting executable in a directory on your PATH, for example:

install -m 755 dist/dusty "$HOME/bin/dusty"

First Run

Set a default location:

dusty --set-location "Leipzig"

The first matching place returned by Open-Meteo is stored. Confirm the resolved place with:

dusty --show-location

Usage

dusty
dusty --current
dusty 7
dusty 14
dusty --location "Berlin"
dusty --location "New York" --current
dusty --location "London" 7

--location applies only to that invocation and does not change the saved default. If you prefer the shorter command d, define it in your shell configuration:

alias d=dusty

Local Data

Dusty stores only the selected default location and a short-lived forecast cache on your Mac. No API key is required for non-commercial use. It follows the XDG base-directory variables when they are set. Otherwise it uses:

~/.config/dusty/config.json
~/.cache/dusty/

The configuration contains the selected place name, coordinates, and time zone. Forecast cache entries are kept separately for each location.

Development

Run the network-independent smoke checks:

./tests/smoke.zsh

Data Source and Licence

Location and forecast data are provided by Open-Meteo.com under the Creative Commons Attribution 4.0 International licence. Dusty displays attribution alongside forecast data. The free Open-Meteo endpoint is intended for non-commercial use and is subject to its published limits and terms.

Author

Created by Steffen Wöll, 2026.

License

MIT License.

Contributors

Languages