Skip to main content

Terminal weather, solar arc, and tide visualizations

Project description

linecast

Terminal weather, solar arc, and tide visualizations. Pure Python, zero dependencies.

All data comes from free public APIs with no keys required.

linecast

Commands

weather — Current conditions, hourly braille temperature curve, 7-day forecast with color range bars, precipitation sparkline, natural language comparisons, and weather alerts for 35 countries.

weather

sunshine — Solar arc inspired by the Apple Watch Solar Graph face. Shows the sun's position on its daily arc with sky color gradients, day length with daily delta, and moon phase.

sunshine — midday sunshine — dusk

tides — NOAA tide predictions rendered as an ocean-themed half-block chart with gradient fill, current water level, and high/low extremes.

tides

All three support --live for a full-screen auto-refreshing display. sunshine and tides also support arrow-key time scrubbing.

Install

pip install linecast

Or with a Homebrew tap:

brew tap ashuttl/linecast
brew install linecast

Usage

weather                          # current location via IP geolocation
weather --location 44.54,-68.42  # specific coordinates
weather --search québec          # find coordinates by city name
weather --metric                 # metric units (°C, km/h, mm)
weather --celsius                # celsius only (wind/precip stay imperial)
weather --metric --fahrenheit    # °F with km/h and mm
weather --live                   # full-screen, auto-refresh
weather --lang fr                # interface en français
weather --lang de                # Oberfläche auf Deutsch
weather --lang is                # viðmót á íslensku
weather --lang ja                # 日本語インターフェース

sunshine                         # solar arc for today
sunshine --live                  # full-screen, scrubbable, auto-updating

tides                            # nearest NOAA station
tides --station 8413320          # specific station ID
tides --search "Bar Harbor"      # find stations by name
tides --live                     # full-screen, scrubbable, auto-updating

Language support

--lang (or LINECAST_LANG) switches the full UI — weather descriptions, day names, natural language comparisons, precipitation forecasts, and alert timing — into the chosen language. Non-English languages also use 24-hour time.

Supported: English, French, Spanish, German, Italian, Portuguese, Dutch, Polish, Norwegian, Swedish, Icelandic, Danish, Finnish, Japanese

All commands are also available under the linecast namespace if the short names conflict with other tools on your system:

linecast weather --live
linecast sunshine
linecast tides --station 8413320

Weather alerts

Alerts are sourced automatically based on location from five providers covering 35 countries:

  • US — National Weather Service
  • Canada — Environment and Climate Change Canada
  • Germany — Deutscher Wetterdienst (via BrightSky)
  • Norway — MET Norway
  • Ireland — Met Éireann
  • Japan — Japan Meteorological Agency
  • 30 European countries — MeteoAlarm (Austria, Belgium, Bulgaria, Croatia, Cyprus, Czechia, Denmark, Estonia, Finland, France, Greece, Hungary, Iceland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Poland, Portugal, Romania, Serbia, Slovakia, Slovenia, Spain, Sweden, Switzerland, UK)

Alert text comes from each national weather service in its native language. Where available, alerts are served in your --lang preference.

Environment variables

Variable Description
WEATHER_LOCATION Default lat,lng for weather (e.g., 44.54,-68.42)
TIDE_STATION Default NOAA station ID for tides (e.g., 8413320)
LINECAST_LANG UI language: en, fr, es, de, it, pt, nl, pl, no, sv, is, da, fi, ja
WEATHER_UNITS Set to metric for Celsius, km/h, and mm (same as --metric)
LINECAST_ICONS Set to emoji to use standard emoji instead of Nerd Font icons
LINECAST_COLOR Color mode: auto (default), truecolor, 256, 16, or none
NO_COLOR Any non-empty value disables ANSI colors (standard convention)

Requirements

  • Python 3.10+
  • A terminal with ANSI color support (truecolor looks best; weather remains usable in low/no color)
  • A Nerd Font for best icon rendering (optional — use --emoji for standard emoji fallback)
  • macOS or Linux (uses termios for live mode)

License

MIT

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

linecast-1.1.8.tar.gz (2.9 MB view details)

Uploaded Source

Built Distribution

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

linecast-1.1.8-py3-none-any.whl (75.0 kB view details)

Uploaded Python 3

File details

Details for the file linecast-1.1.8.tar.gz.

File metadata

  • Download URL: linecast-1.1.8.tar.gz
  • Upload date:
  • Size: 2.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for linecast-1.1.8.tar.gz
Algorithm Hash digest
SHA256 8f226f4840d11581eb86592d701f7be1e031f1b12a2474328335db68cea1f162
MD5 d1107435450ab8517d0f4f32e726b442
BLAKE2b-256 03836d7d7099bd8c289276b18b3ba71cc29db0ee8bf1f85ce3a236bfa2d9c43a

See more details on using hashes here.

Provenance

The following attestation bundles were made for linecast-1.1.8.tar.gz:

Publisher: publish.yml on ashuttl/linecast

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file linecast-1.1.8-py3-none-any.whl.

File metadata

  • Download URL: linecast-1.1.8-py3-none-any.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for linecast-1.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 0c7fd91621d7de44716cf3463a387f5a0307ae6c0f38e72ec8c835defe4fa122
MD5 df89acb6328dbc1deb3b99416b81a891
BLAKE2b-256 2adf42b2d24bdea22d276d5777ad0d4266ca94632cf49293a950d992aafef684

See more details on using hashes here.

Provenance

The following attestation bundles were made for linecast-1.1.8-py3-none-any.whl:

Publisher: publish.yml on ashuttl/linecast

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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