Weather in terminal, with ANSI colors and Unicode symbols
1,948
stars
324
commits
Shell
primary language
Jul 24, 2026
updated
AnsiWeather is a Shell script for displaying the current weather conditions in your terminal, with support for ANSI colors and Unicode symbols.

Weather data comes from the OpenWeatherMap free weather API.
AnsiWeather requires the following dependencies:
After cloning the repository, simply invoke the script by typing:
./ansiweather
AnsiWeather packages are available for:
ansiweather [-l location] [-u system] [-f days] [-F] [-a value]
[-s value] [-k key] [-i value] [-w value] [-h value]
[-H value] [-p value] [-d value] [-v]
-l location
Specify location.
-u system
Specify unit system to use ( metric or imperial ).
-f days
Toggle forecast mode for the specified number of upcoming days.
-F Toggle forecast mode for the next five days.
-a value
Toggle ANSI colors display ( true or false ).
-s value
Toggle symbols display ( true or false ).
-k key Specify OpenWeatherMap API key.
-i value
Toggle UV Index display ( true or false ).
-w value
Toggle wind data display ( true or false ).
-h value
Toggle humidity data display ( true or false ).
-H value
Toggle Feels like display ( true or false ).
-p value
Toggle pressure data display ( true or false ).
-d value
Toggle daylight data display ( true or false ).
-v Display version.
Display forecast using metric units for the next five days (showing symbols and daylight data) for Rzeszow, Poland:
ansiweather -l "Rzeszow,PL" -u metric -s true -f 5 -d true
Configuration is loaded from the following locations, in order:
ANSIWEATHERRC environment variable, if set.$XDG_CONFIG_HOME/ansiweather/config~/.config/ansiweather/config~/.ansiweatherrcThe following configuration options (detailed below) are available and should be set according to your location and preferences.
Example: ~/.config/ansiweather/config
location:Rzeszow,PL
fetch_cmd:ftp -V -o -
units:metric
show_daylight:true
The file ansiweatherrc.example contains all available configuration
variables.
Location format is city,CC where CC is a two-letter ISO 3166-1 alpha-2
country code. A list of country codes is available here.
Alternatively, it's also possible to specify locations by their ID, a city
list is available here.
In case no location is specified, AnsiWeather will fallback to the default location.
Example: Rzeszow,PL
location:Rzeszow,PL
Various tools can be used to fetch data: curl, wget, ftp.
Please note that ftp flags and options might differ among implementations
and versions, and the example provided here is known to work only on OpenBSD
and NetBSD.
Example: curl -sf
fetch_cmd:curl -sf
Example: wget -qO-
fetch_cmd:wget -qO-
Example: ftp -V -o -
fetch_cmd:ftp -V -o -
Default: curl -sf
Both metric and imperial systems are supported.
units:metric
Default: metric
Toggle ANSI sequences display. Value can be either true (requires an ANSI
capable display) or false.
ansi:true
Default: true
Toggle Unicode symbols display. Value can be either true (requires a
Unicode capable display) or false.
symbols:true
Default: false
Symbols can be configured or replaced by custom text using the following
configuration variables: sun, moon, clouds, rain, fog, mist,
haze, snow, thunderstorm.
Show upcoming forecast for the next N days (for 0 <= N <= 7). 0 will
show standard output.
forecast:5
Default: 0
Toggle "Feels like" display. Value can be either true or false.
show_feels_like:false
Default: false
Toggle UV Index, wind, humidity, and/or pressure display. Values can be either
true or false.
The UV Index represents a single daily value rather than the UV Index at the current time.
show_uvi:true
show_wind:true
show_humidity:true
show_pressure:true
Default: true
Toggle daylight display. Value can be either true or false.
show_daylight:false
Default: false
Configure the date format used for forecast entries. See Unix date formatting documentation for details.
dateformat:%a %b %d
Default: %a %b %d
Configure the time format used for sunrise and sunset. See Unix date formatting documentation for details.
timeformat:%b %d %r
Default: %b %d %r
Specify an OpenWeatherMap API key. By default AnsiWeather uses its own key, but users can optionally get their own one by creating a free OpenWeatherMap account.
api_key:85a4e3c55b73909f42c6a23ec35b7147
AnsiWeather is released under the BSD 2-Clause license. See LICENSE file
for details.
AnsiWeather is developed by Frederic Cambus.
Shell
75.5%
Roff
24.5%
Weather in terminal, with ANSI colors and Unicode symbols
1,948
stars
324
commits
Shell
primary language
Jul 24, 2026
updated
AnsiWeather is a Shell script for displaying the current weather conditions in your terminal, with support for ANSI colors and Unicode symbols.

Weather data comes from the OpenWeatherMap free weather API.
AnsiWeather requires the following dependencies:
After cloning the repository, simply invoke the script by typing:
./ansiweather
AnsiWeather packages are available for:
ansiweather [-l location] [-u system] [-f days] [-F] [-a value]
[-s value] [-k key] [-i value] [-w value] [-h value]
[-H value] [-p value] [-d value] [-v]
-l location
Specify location.
-u system
Specify unit system to use ( metric or imperial ).
-f days
Toggle forecast mode for the specified number of upcoming days.
-F Toggle forecast mode for the next five days.
-a value
Toggle ANSI colors display ( true or false ).
-s value
Toggle symbols display ( true or false ).
-k key Specify OpenWeatherMap API key.
-i value
Toggle UV Index display ( true or false ).
-w value
Toggle wind data display ( true or false ).
-h value
Toggle humidity data display ( true or false ).
-H value
Toggle Feels like display ( true or false ).
-p value
Toggle pressure data display ( true or false ).
-d value
Toggle daylight data display ( true or false ).
-v Display version.
Display forecast using metric units for the next five days (showing symbols and daylight data) for Rzeszow, Poland:
ansiweather -l "Rzeszow,PL" -u metric -s true -f 5 -d true
Configuration is loaded from the following locations, in order:
ANSIWEATHERRC environment variable, if set.$XDG_CONFIG_HOME/ansiweather/config~/.config/ansiweather/config~/.ansiweatherrcThe following configuration options (detailed below) are available and should be set according to your location and preferences.
Example: ~/.config/ansiweather/config
location:Rzeszow,PL
fetch_cmd:ftp -V -o -
units:metric
show_daylight:true
The file ansiweatherrc.example contains all available configuration
variables.
Location format is city,CC where CC is a two-letter ISO 3166-1 alpha-2
country code. A list of country codes is available here.
Alternatively, it's also possible to specify locations by their ID, a city
list is available here.
In case no location is specified, AnsiWeather will fallback to the default location.
Example: Rzeszow,PL
location:Rzeszow,PL
Various tools can be used to fetch data: curl, wget, ftp.
Please note that ftp flags and options might differ among implementations
and versions, and the example provided here is known to work only on OpenBSD
and NetBSD.
Example: curl -sf
fetch_cmd:curl -sf
Example: wget -qO-
fetch_cmd:wget -qO-
Example: ftp -V -o -
fetch_cmd:ftp -V -o -
Default: curl -sf
Both metric and imperial systems are supported.
units:metric
Default: metric
Toggle ANSI sequences display. Value can be either true (requires an ANSI
capable display) or false.
ansi:true
Default: true
Toggle Unicode symbols display. Value can be either true (requires a
Unicode capable display) or false.
symbols:true
Default: false
Symbols can be configured or replaced by custom text using the following
configuration variables: sun, moon, clouds, rain, fog, mist,
haze, snow, thunderstorm.
Show upcoming forecast for the next N days (for 0 <= N <= 7). 0 will
show standard output.
forecast:5
Default: 0
Toggle "Feels like" display. Value can be either true or false.
show_feels_like:false
Default: false
Toggle UV Index, wind, humidity, and/or pressure display. Values can be either
true or false.
The UV Index represents a single daily value rather than the UV Index at the current time.
show_uvi:true
show_wind:true
show_humidity:true
show_pressure:true
Default: true
Toggle daylight display. Value can be either true or false.
show_daylight:false
Default: false
Configure the date format used for forecast entries. See Unix date formatting documentation for details.
dateformat:%a %b %d
Default: %a %b %d
Configure the time format used for sunrise and sunset. See Unix date formatting documentation for details.
timeformat:%b %d %r
Default: %b %d %r
Specify an OpenWeatherMap API key. By default AnsiWeather uses its own key, but users can optionally get their own one by creating a free OpenWeatherMap account.
api_key:85a4e3c55b73909f42c6a23ec35b7147
AnsiWeather is released under the BSD 2-Clause license. See LICENSE file
for details.
AnsiWeather is developed by Frederic Cambus.
Shell
75.5%
Roff
24.5%