linecast: weather, tides and a planetarium that live in your terminal
Weather, tides, the sun, the moon, maps, and a planetarium, in your terminal. The Old Farmer's Almanac meets Minitel.
At a glance
- What is it?
- linecast is a pure Python set of seven terminal applications for weather, sun, moon, tides, radar, maps and a planetarium, built on free public data with no accounts, no API keys and colours taken from your terminal theme.
- Who is it for?
- linecast fits developers who want a live, mouse-driven view of local conditions, tide tables and a sky chart on a machine with no browser, especially over SSH or inside tmux, and who are willing to read its flags rather than expect a scriptable data pipeline everywhere. It does not fit jobs that need historical data at scale, a supported API contract, or JSON from every view.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Seven live terminal apps on free public data
linecast is a single Python package that installs seven separate terminal applications. `linecast weather` shows current conditions, forecasts, official alerts for 46 countries and month and year views of past weather. `linecast sunshine` draws the sun's path through the day and daylight across the year. `linecast moon` shows the phase as you see it with rise and set times and a month calendar. `linecast sky` is a planetarium with stars, constellations, planets and the Milky Way over your position. `linecast tides` gives local tides through the day, month and year and explains what moves them. `linecast radar` renders animated weather radar for the whole world. `linecast maps` handles street maps, terrain, directions and a globe with live daylight and clouds. The data comes from free public sources, the project asks for no accounts and no API keys, and the applications run on macOS, Linux and Windows, over SSH and inside tmux.
Installing with brew, uv or a single curl pipe
The install section gives four routes, and the choice is mostly about which tool you already trust:
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 curlThe uvx line is the one to try first if you are undecided, since it runs the weather app without installing anything. `pipx` and `pip` work as well, and there are community packages in the AUR and in nixpkgs. The requirements are modest: Python 3.10 or newer, and Windows Terminal on Windows, because the applications are interactive and expect a terminal that can pass through colour information. After installation, every command opens live, and pressing `?` inside an app lists the available keys.
The .pyz build and its weekly release check
For a machine without a package manager, the project publishes a zipapp called `linecast.pyz` with each release. You download it from the latest release page and run it directly:
python3 linecast.pyz weatherOn macOS or Linux you can also make it executable with `chmod +x linecast.pyz` and put it on your PATH as `linecast`. The trade-off is updates. The zipapp checks weekly for a newer release, so it stays roughly current without any tooling, and the documentation says to use a package manager if you want the update process managed for you. That is a real choice rather than a convenience difference: the standalone file is easy to copy between machines and easy to lose track of, while a package manager gives you a version you can pin and a changelog you can read.
Flags decide whether an app is live or a static frame
The output modes are the part of the interface worth learning first. Every command opens live by default. Adding `--print` gives one static frame, and the weather, sunshine, moon, sky and tides apps also offer `--json` for raw data and `--oneline` for a status bar. The weather app adds `--prose`, which prints the forecast paragraph, and you can combine that with `--oneline` to put current conditions above it. Size is set with `--width` and `--height` in columns and rows, or as a percentage of the terminal, and those sizes imply `--print`, which is how you would use it in a shell startup greeting. One asymmetry catches people: the month, year and tide makeup views work with `--print` but have no `--json`, `--oneline` or `--prose` output at all. Those views are for reading, not for piping.
Theme colours, tmux 3.6 and the linecast doctor command
The applications take their colours from the terminal's own colour scheme rather than shipping a palette. If you change the scheme while an app is open, the app redraws itself in the new colours, and the project shows the same desktop across ten themes. tmux is the weak spot. Inside tmux this needs tmux 3.6 or newer, because older versions do not pass the terminal's colours on and linecast falls back to its own fixed palette. A theme change also only reaches the app through tmux if the terminal reports it, and the documented remedy is to detach and reattach. When something looks wrong, `linecast doctor` reports which palette is in use, which is faster than guessing. The mouse is supported as well, so clicking an alert opens it and clicking points at chart values.
The weather app compares an hour with a ten year average
The weather view is built around comparison rather than around a single number. The default screen is an hourly chart on the scale of a typical year, so a mild day looks mild, with the forecast written out in words next to it. The month view lays days down the chart and hours across it, with sunrise and sunset tracing the changing daylight, and pressing `c` compares each hour against the ten-year average with the numbers on hover. The year view follows the New York City weather chart after Edward Tufte, showing each day's high and low against the last ten years and each month's precipitation against its average, and `c` switches between comparison colours, temperature colours and plain. It opens on the previous calendar month and lets you browse the past ten years and the current year so far.
One console script that dispatches on how you call it
The packaging is unusual in a way that matters if you script around it. Only `linecast` is installed as a command, and the short names such as weather, sunshine, moon, tides, radar and maps are deliberately left free because other packages already claim them, with the Sunshine streaming server named in the explanation. The binary dispatches on argv[0], so a symlink or alias named `weather` runs the weather command. The project metadata in pyproject.toml is equally spare:
[project]
name = "linecast"
version = "2.10.2"
license = "MIT"
requires-python = ">=3.10"The only runtime dependencies are markers for Windows: tzdata, because Windows ships no IANA time zone database, and truststore, because Windows caches trusted roots lazily and the certificate check has to go through the operating system. On macOS and Linux there is nothing to install but Python.
Where linecast is the wrong tool
Two boundaries stand out. The first is data volume. The applications are built to draw one location on one screen, with a chart of the last ten years for a single point, and the historical views are for reading rather than for export. If your job is to pull decades of observations for many stations into your own pipeline, this is not the tool, and the missing --json on the month and year views is a symptom of that rather than an oversight you can work around. The second is the surface. linecast assumes an interactive terminal that can pass colours, support the mouse and redraw on a theme change, and inside an old tmux or a plain pipe it degrades to a fixed palette and a static frame. Calling the same public data yourself with curl and a JSON parser remains the better route when you need raw fields and machine-readable output.
Editorial conclusion
linecast fits developers who want a live, mouse-driven view of local conditions, tide tables and a sky chart on a machine with no browser, especially over SSH or inside tmux, and who are willing to read its flags rather than expect a scriptable data pipeline everywhere. It does not fit jobs that need historical data at scale, a supported API contract, or JSON from every view. Before adopting it, check the flag matrix, because month, year and tide makeup views have no --json, --oneline or --prose output, confirm you run tmux 3.6 or newer for theme colours, and note that the single console script dispatches on argv[0], so a symlink named weather runs the weather app.
Frequently asked questions
How do I install linecast?
You can use Homebrew, uv, pipx or pip, run it once with uvx linecast weather, or install it with the get.sh script and curl alone. Community packages exist in the AUR and in nixpkgs, and linecast needs Python 3.10 or newer with Windows Terminal on Windows.
Does linecast need an account or an API key?
No. The seven terminal applications are built on free public data and the project states that no accounts or API keys are required.
Which commands does linecast provide?
There are seven: weather for conditions, forecasts and alerts for 46 countries, sunshine for the sun's path, moon for phase and rise and set, sky for a planetarium, tides for local tide tables, radar for animated worldwide radar, and maps for street maps, terrain, directions and a globe.
Can linecast output JSON?
The weather, sunshine, moon, sky and tides apps offer --json and --oneline, and the weather app also has --prose for the forecast paragraph. The month, year and tide makeup views work with --print but have no --json, --oneline or --prose output.
How does linecast stay up to date?
The portable linecast.pyz build checks weekly for a newer release. The documentation recommends a package manager if you want updates managed for you instead.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/ashuttl-linecast)Was this useful?