A terminal weather app written in Rust that shows real-time conditions as ASCII animations like rain, snow and thunderstorms.
schachmat/wego
A terminal weather client that shows 1 to 7 day forecasts from several weather APIs, rendered as ASCII tables, emoji, Markdown or JSON.
- Stars
- 8,563
- Forks
- 506
- Open issues
- 16
- Last commit
- 26 days ago
What is it?
wego is a command-line weather client written in Go. It fetches forecasts for a given location and prints them directly in the terminal, covering temperature ranges (both measured and felt), wind speed and direction, visibility, precipitation amount and probability, and humidity.
It supports several backends, including Open-Meteo and SMHI, which need no API key, as well as OpenWeatherMap, WeatherAPI, Caiyun, Pirate Weather and a local JSON file. Output can be shown as a colored ASCII art table (the default), emoji, Markdown, or JSON, and the JSON frontend can be piped into other tools. Unit systems, disk caching with a configurable TTL, and a config file for a default location are also included.
Key features
- 01Shows forecasts for 1 to 7 days from the command line.
- 02Supports Open-Meteo, SMHI, OpenWeatherMap, WeatherAPI, Caiyun, Pirate Weather and a local JSON backend.
- 03Offers ascii-art-table, emoji, markdown and json output frontends.
- 04Caches weather data on disk with a configurable TTL.
- 05Reads a config file for the default location, which command-line arguments can override.
Use cases
- Checking the forecast for a city from a terminal or SSH session.
- Adding weather to a shell prompt, status bar or script via JSON output.
- Running a free, keyless weather lookup with Open-Meteo or SMHI.
- Testing or working offline using a saved JSON weather file.
Quick start
- 1
Install wego with the Go toolchain
go install github.com/schachmat/wego@latest - 2
Run wego once to generate the config file, then edit it to set a backend and location
wego - 3
Run wego to see the forecast for your location
wego London 4
Things to know
- Most backends need an API key, though Open-Meteo and SMHI are free and keyless.
- Worldweatheronline no longer offers free API keys.
- Requires a Go 1.20 environment and a UTF-8 terminal with 256 colors for the default frontends.
Topics
FAQ
- What is wego?
- A terminal weather client that shows 1 to 7 day forecasts from several weather APIs, rendered as ASCII tables, emoji, Markdown or JSON. wego is a command-line weather client written in Go. It fetches forecasts for a given location and prints them directly in the terminal, covering temperature ranges (both measured and felt), wind speed and direction, visibility, precipitation amount and probability, and humidity.
- Is wego free to use? What license does it have?
- wego is open source under the ISC license. Check the license terms before using it in commercial products.
- Is wego still maintained?
- Actively maintained. The last commit to wego was on Sep 26, 2026.
- What can I use wego for?
- Checking the forecast for a city from a terminal or SSH session. Adding weather to a shell prompt, status bar or script via JSON output. Running a free, keyless weather lookup with Open-Meteo or SMHI. Testing or working offline using a saved JSON weather file.
- How do I install wego?
- Install wego with the Go toolchain: go install github.com/schachmat/wego@latest Run wego once to generate the config file, then edit it to set a backend and location: wego Run wego to see the forecast for your location: wego London 4
- Where can I get wego?
- The source code and installation instructions are on GitHub: https://github.com/schachmat/wego
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open-source weather forecast API offering free non-commercial access with no API key, built on national weather service models.
A header-based C++ library for building terminal user interfaces with a functional, component-driven style, with no external dependencies.
A keyboard-driven terminal download manager in Go that splits files into parallel chunks and can download from multiple mirrors.
A modern terminal file manager written in Go, built with Bubble Tea, for browsing and managing files from the command line.
Go library for styling and laying out text-based terminal user interfaces with CSS-like declarative style definitions.