linecast
Weather, tides, the sun, the moon, maps, and a planetarium, in your terminal. The Old Farmer's Almanac meets Minitel.
English | 日本語
Seven live terminal apps built on free public data. Pure Python, no dependencies, no accounts or API keys. Colors come from your terminal theme, and the mouse works. Runs on macOS, Linux, and Windows, over SSH, and in tmux.
| Command | Shows |
|---|---|
linecast weather |
Current conditions, hourly and seven-day forecasts, and official alerts for 45 countries |
linecast sunshine |
The sun's path today, and daylight through the year |
linecast moon |
The Moon's phase as you see it, with rise, set, and a month calendar |
linecast sky |
A planetarium: stars, constellations, planets, and the Milky Way over you |
linecast tides |
A tide curve for the nearest station |
linecast radar |
Animated weather radar for the whole world |
linecast maps |
Street maps, terrain, directions, and a globe with live daylight and clouds |
Install · Using it · The apps · Settings · Contributing
Install
brew install linecast # Homebrew
uv tool install linecast # uv
uvx linecast weather # try it without installing
curl -sL https://raw.githubusercontent.com/ashuttl/linecast/main/get.sh | sh # with nothing but curl
pipx and pip work too, and there are community packages in the AUR and nixpkgs. linecast needs Python 3.10 or newer. On Windows, use Windows Terminal.
Using it
Every command opens live. Press ? for the keys. Add --print for one static frame, --json for raw data, or --oneline for a status bar.
linecast weather --location "quebec"
linecast sky --culture hawaiian
linecast sunshine --year
linecast maps --from "portland, maine" --to "portland head light" --profile bike
linecast maps --view now
The apps
The gallery shows each one in more of its states.
Weather
An hourly chart on the scale of a typical year where you are, so a mild day looks mild, with a forecast in words. Click an alert to read it.
Reykjavík in Icelandic, and Kyoto in Japanese:
Sunshine
The sun on its arc through dawn, day, and dusk. Press v for the whole year. --hours reads the day in traditional hours: halachic, Roman, Edo, Islamic, or Swahili.
Dawn and dusk on the June solstice:
The year in Reykjavík, in Icelandic:
Polar night and midnight sun, at 78° north and 78° south:
Moon
The phase as you see it, with the real stars behind. Drag to see the far side; press v for the month. --calendar adds a traditional calendar and its festivals.
Okinawa after the mid-autumn full moon, in Japanese, and the month around it:
Sky
The sky over you, now or at any hour. Drag to look around, / to find a star or planet, t to choose among 22 sky cultures.
The whole August sky, and a January evening drawn the Hawaiian way:
Tides
National tide services in the US, Canada, Queensland, and Hong Kong, and a global model elsewhere. --nearby lists stations.
Radar
The last hour and the next, with US warnings on top. S switches to satellite, t changes the colors.
Maps
Streets or terrain; press v to switch, / to search, D for directions. Zoom out to the globe, and press S for daylight and c for clouds.
The labels change with the zoom:
The globe in daylight, and with the hour's clouds:
Settings
Run a setting alone to see it, with a value to save it, or with auto to reset it.
| Setting | Values | For one run |
|---|---|---|
linecast location |
set "Portland, Maine", set 44.54,-68.42, search NAME |
--location |
linecast language |
one of 29 languages | --lang |
linecast units |
metric, imperial |
--metric, --imperial |
linecast clock |
12, 24 |
--12h, --24h |
linecast week |
monday, sunday, saturday |
--week-start |
linecast calendar |
chinese, hebrew, islamic, … |
--calendar |
linecast culture |
chinese, hawaiian, norse, … |
--culture |
linecast hours |
halachic, roman, japanese, … |
--hours |
linecast icons |
nerd, emoji, plain |
--icons |
linecast dates |
gregorian, solar-hijri |
|
linecast digits |
latin, native |
Without a saved location, linecast guesses from your IP address, which can be far off on a VPN or over SSH.
Persian support is experimental. It works in Ghostty, Alacritty, and foot, but not well in the Mac's Terminal or iTerm2. See docs/languages.md.
Environment variables are in docs/configuration.md, and data sources and credits in docs/sources.md.
Extras
linecast link # add weather, moon, … as short commands
source <(linecast completion zsh) # shell completion: bash, zsh, fish, nu
linecast doctor # when something looks wrong
Contributing
Questions and ideas are welcome in Discussions, and pull requests too; see CONTRIBUTING.md.
Lineage
Prior art.
A Telic-Alcatel videotex terminal draws the weather, circa 1990. Photograph from the collection at minitel-alcatel.fr.
License
Release files for linecast 2.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| linecast-2.8.0.tar.gz | 9.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| linecast-2.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.4 MB
Release files / linecast-2.8.0.tar.gz
| Download URL | linecast-2.8.0.tar.gz |
|---|---|
| Size | 9.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0f1b7c8ce4a6ef7c31e8180ceb5ed8228685361030e9b33282199dc95940d09a
|
|
BLAKE2b-256 checksum How to use checksums |
baba227c1df8ac84a934845681095ed54f9d22029b23c43bb19d1739addf244a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency logRelease files / linecast-2.8.0-py3-none-any.whl
| Download URL | linecast-2.8.0-py3-none-any.whl |
|---|---|
| Size | 8.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
73635e09e44c08d0791c7ec41ede4dfeea55548319a7cd79045745b020134271
|
|
BLAKE2b-256 checksum How to use checksums |
342bbdfe03260bd59d2d01f3cb716ca26eb0de2ece65addf00d7c00b9263eee2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency log