Terminal weather, solar arc, and tide visualizations
Project description
linecast
Terminal weather, solar arc, and tide visualizations. Pure Python, zero dependencies.
Three commands that turn your terminal into a living dashboard — temperature-colored braille curves, half-block pixel art, true color gradients, and Nerd Font icons. All data comes from free public APIs with no keys required.
Commands
weather — Current conditions, hourly braille temperature curve, 7-day forecast with color range bars, precipitation sparkline, natural language comparisons, and NWS/Environment Canada weather alerts.
sunshine — Solar arc inspired by the Apple Watch Solar face. Shows the sun's position on its daily arc with sky color gradients, day length with daily delta, and moon phase.
tides — NOAA tide predictions rendered as an ocean-themed half-block chart with gradient fill, current water level, and high/low extremes.
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 --celsius # metric units (°C, km/h, mm)
weather --live # full-screen, auto-refresh
sunshine # solar arc for today
sunshine --live # full-screen with time scrubbing
tides # nearest NOAA station
tides --station 8413320 # specific station ID
tides --search "Bar Harbor" # find stations by name
tides --live # full-screen
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 your location:
- US — National Weather Service (api.weather.gov)
- Canada — Environment and Climate Change Canada (api.weather.gc.ca)
Other regions get forecasts but no alerts yet.
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) |
WEATHER_UNITS |
Set to metric for Celsius, km/h, and mm (same as --celsius) |
LINECAST_ICONS |
Set to emoji to use standard emoji instead of Nerd Font icons |
Requirements
- Python 3.10+
- A terminal with true color support (iTerm2, Ghostty, Kitty, WezTerm, etc.)
- A Nerd Font for best icon rendering (optional — use
--emojifor standard emoji fallback) - macOS or Linux (uses
termiosfor live mode)
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file linecast-1.1.2.tar.gz.
File metadata
- Download URL: linecast-1.1.2.tar.gz
- Upload date:
- Size: 1.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de5f2c186580a739e3999c140487885a5959cb2acb8cc620a6616451c5d2aa81
|
|
| MD5 |
4824394ed0cc4ba378e96239c214e48e
|
|
| BLAKE2b-256 |
c29c0ca3ba84f2b62d3ee3a352d4ca3ca0cc8c3b70dcfce68ad52cc10effb6c3
|
Provenance
The following attestation bundles were made for linecast-1.1.2.tar.gz:
Publisher:
publish.yml on ashuttl/linecast
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
linecast-1.1.2.tar.gz -
Subject digest:
de5f2c186580a739e3999c140487885a5959cb2acb8cc620a6616451c5d2aa81 - Sigstore transparency entry: 1046816348
- Sigstore integration time:
-
Permalink:
ashuttl/linecast@0343f530a9f452a519c8e2120558ed9b78580d3b -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/ashuttl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0343f530a9f452a519c8e2120558ed9b78580d3b -
Trigger Event:
push
-
Statement type:
File details
Details for the file linecast-1.1.2-py3-none-any.whl.
File metadata
- Download URL: linecast-1.1.2-py3-none-any.whl
- Upload date:
- Size: 39.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
911a9b8ce72ffb6ffdb63755903e5042249685626ff8532820408a2a5ef9c4af
|
|
| MD5 |
13e2e293069862bb12cde28f8ca06b53
|
|
| BLAKE2b-256 |
a51c43ef7054306dc0a4c4a5f5eeaa640eccc6acdb0099c267b80f6523de8c32
|
Provenance
The following attestation bundles were made for linecast-1.1.2-py3-none-any.whl:
Publisher:
publish.yml on ashuttl/linecast
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
linecast-1.1.2-py3-none-any.whl -
Subject digest:
911a9b8ce72ffb6ffdb63755903e5042249685626ff8532820408a2a5ef9c4af - Sigstore transparency entry: 1046816352
- Sigstore integration time:
-
Permalink:
ashuttl/linecast@0343f530a9f452a519c8e2120558ed9b78580d3b -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/ashuttl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@0343f530a9f452a519c8e2120558ed9b78580d3b -
Trigger Event:
push
-
Statement type: