Skip to main content

A beautiful, feature-rich weather CLI for your terminal

Project description

Raindrop

Raindrop

A beautiful, feature-rich weather CLI for your terminal.
Sparklines, route planning, live dashboards, marine forecasts, and more — all without an API key.

Python 3.12+ 17 Commands Open-Meteo MIT License 2 Dependencies


raindrop current Seattle


Why Raindrop?

Most weather CLIs give you temperature and a condition. Raindrop gives you everything:

  • Sparkline graphs▁▂▃▅▇█▅▃ temperature and precipitation trends at a glance
  • Technical analysis — EMA crossovers, rate-of-change, and volatility on forecasts
  • Real driving routes — weather checkpoints along actual roads via OpenStreetMap
  • Full-screen dashboard — live TUI with auto-refresh
  • Astronomical data — moon phases, golden hour, blue hour, daylight tracking
  • Marine forecasts — wave height, swell, water temp for coastal trips
  • Zero API keys — entirely free, open APIs

Installation

Requirements: Python 3.12+

# pip
pip install rdrop

# From source
git clone https://github.com/binarydoubling/raindrop.git
cd raindrop
pip install -e .

Quick Start

raindrop current Seattle                          # current conditions
raindrop hourly "New York" --spark --hours 12     # sparkline forecast
raindrop daily Portland                           # 10-day with trend analysis
raindrop dashboard Seattle --refresh 300          # live full-screen TUI
raindrop route "Seattle" "San Francisco" -i 100   # road trip weather
raindrop aqi Beijing                              # air quality index
raindrop favorites add home "Seattle, WA"         # save a location
raindrop current home                             # use it anywhere

Features

Current Weather

raindrop current Seattle

Hourly Forecast with Sparklines

raindrop hourly Seattle

10-Day Forecast with Technical Analysis

EMA crossovers, rate-of-change indicators, and trend detection applied to weather data.

raindrop daily Seattle

Route Weather Planning

Plan road trips with weather at every checkpoint along the actual driving route.

raindrop route Seattle San Francisco

Compare Multiple Locations

raindrop compare

Air Quality Index

raindrop aqi Seattle

Astronomical Data

Moon phases, golden hour, blue hour, and weekly daylight tracking.

raindrop astro Seattle

Marine Forecasts

raindrop marine San Diego

Clothing Recommendations

raindrop clothing Seattle

Live Dashboard

Full-screen TUI powered by Rich with automatic refresh.

raindrop dashboard Seattle --refresh 300

Commands

Command Description Example
current Current conditions raindrop current Seattle
hourly Hourly forecast (48h) raindrop hourly Seattle --spark
daily 10-day forecast with trends raindrop daily Seattle
dashboard Full-screen live TUI raindrop dashboard Seattle
route Weather along a driving route raindrop route "A" "B" -i 50
compare Compare multiple locations raindrop compare NYC LA Chicago
alerts NWS weather alerts (US) raindrop alerts Seattle
aqi Air quality index raindrop aqi Seattle
astro Moon phase, golden hour raindrop astro Seattle
marine Ocean/wave forecasts raindrop marine "San Diego"
clothing What to wear raindrop clothing Seattle
history Compare with past years raindrop history Seattle
discussion NWS forecast discussion raindrop discussion Seattle
precip Precipitation totals raindrop precip Seattle --days 7
favorites Manage saved locations raindrop favorites list
config View/edit settings raindrop config show
completions Shell completions raindrop completions bash

Global Options

--units metric|imperial    Set temperature and distance units (default: imperial)
--no-cache                 Bypass cache for fresh data
--json                     Output raw JSON for scripting
--help                     Show help for any command

Configuration

Settings live at ~/.config/raindrop/config.json.

raindrop config show                  # view current settings
raindrop config set units metric      # switch to metric
raindrop config set location "NYC"    # set default location
raindrop config cache                 # view cache stats
raindrop config cache --clear         # clear cache
Setting Values Default Description
units imperial, metric imperial Temperature and distance units
location any string none Default location
cache_ttl seconds 600 Cache lifetime

Shell Completions

# Bash
raindrop completions bash >> ~/.bashrc && source ~/.bashrc

# Zsh
raindrop completions zsh >> ~/.zshrc && source ~/.zshrc

# Fish
raindrop completions fish > ~/.config/fish/completions/raindrop.fish

How It Works

Raindrop combines several free, open APIs — no keys required:

API Purpose
Open-Meteo Forecasts, historical data, air quality, geocoding
OSRM Real driving routes via OpenStreetMap
NWS Weather alerts and forecast discussions (US)

The entire project has only 2 runtime dependencies (Click and Rich). HTTP, caching, geocoding, and astronomical calculations are all handled with Python's standard library.

Technical Highlights

  • Sparklines via Unicode block characters (▁▂▃▄▅▆▇█)
  • EMA crossovers and rate-of-change analysis on temperature data
  • Pure-Python astronomy — moon phases, Julian day, daylight duration with no external libs
  • Haversine sampling along OSRM polylines for route weather checkpoints
  • File-based cache with SHA256 keys and configurable TTL
  • 14 weather models selectable: ECMWF, GFS, HRRR, ICON, ARPEGE, AROME, UKMO, GEM, JMA, MetNo, and more

Regenerating Screenshots

The feature screenshots in this README are real CLI output captured as SVGs:

python scripts/capture.py            # capture all commands
python scripts/capture.py current    # capture a specific command

Contributing

git clone https://github.com/binarydoubling/raindrop.git
cd raindrop
pip install -e ".[dev]"
pytest

License

MIT


Built with coffee and curiosity in the Pacific Northwest — where checking the weather is a lifestyle.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rdrop-0.1.0.tar.gz (73.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rdrop-0.1.0-py3-none-any.whl (69.1 kB view details)

Uploaded Python 3

File details

Details for the file rdrop-0.1.0.tar.gz.

File metadata

  • Download URL: rdrop-0.1.0.tar.gz
  • Upload date:
  • Size: 73.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rdrop-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a76717b925ec36bd38dd80e2f78f595b5247b9038d28ea23363aea24ef15d04c
MD5 7fb6471e5e8d61736ae632eda1211828
BLAKE2b-256 c161f87148ea448ffd9f52f131a36cc1d979dacd51ca25507db9fa8068fb095e

See more details on using hashes here.

File details

Details for the file rdrop-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: rdrop-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 69.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rdrop-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a4998f03c434bbeddfb19b6ac47394ea7ab7bc610cd4a21a1ce001a5c1bf9dc0
MD5 acbda54d77770df81f2b264bced33414
BLAKE2b-256 37bacc738e39f53c4eb9e77c14b0e9068219fd737f7bc708e128f7364f7356fe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page