Zurück zum Ranking

Veirt/weathr

Rust

a terminal weather app with ascii animation

cliterminaltuiweatherrust-lang
Sterne-Wachstum
Sterne
2.9k
Forks
115
Wochenwachstum
Issues
11
2.6k2.8k
Feb. 26März 26Mai 26Juli 26
Artefaktecrates.iocargo add weathr
README

weathr

Crates.io Downloads License

A terminal weather app with ASCII animations driven by real-time weather data.

Features real-time weather from Open-Meteo with animated rain, snow, thunderstorms, flying airplanes, day/night cycles, and auto-location detection.

Demo

Thunderstorm Night

Thunderstorm night demo

Snow

Snow demo

Night

Night demo

Contents

Packaging Status

Packaging status
Winget

Installation

Quick Install (macOS, Linux, FreeBSD)

Download and install the latest binary with one command:

curl -fsSL https://raw.githubusercontent.com/Veirt/weathr/main/install.sh | sh

Via Cargo

cargo install weathr

Build from Source

You need Rust installed.

git clone https://github.com/veirt/weathr.git
cd weathr
cargo install --path .

Docker

Run the published image from GHCR:

docker run --rm -it ghcr.io/veirt/weathr:latest

Mount your config if you want to use your existing settings:

docker run --rm -it \
  -v "$HOME/.config/weathr:/.config/weathr:ro" \
  ghcr.io/veirt/weathr:latest

Build the image locally:

docker build -t weathr .

Run it interactively so the TUI can access your terminal:

docker run --rm -it weathr

Mount your config if you want to use your existing settings:

docker run --rm -it \
  -v "$HOME/.config/weathr:/.config/weathr:ro" \
  weathr

Homebrew (macOS)

brew install Veirt/veirt/weathr

MacPorts (macOS)

sudo port install weathr

Arch Linux

Available in AUR:

yay -S weathr

or

yay -S weathr-bin

Nix flake (NixOS)

Available as a flake:

inputs = {
    weathr.url = "github:Veirt/weathr";
};

Add to packages:

environment.systemPackages = [
    inputs.weathr.packages.${system}.default
];

or use home-manager module option:

imports = [
    inputs.weathr.homeModules.weathr
];

programs.weathr = {
    enable = true;
    settings = {
        hide_hud = true;
    };
};

Windows

Available through Winget:

winget install -i Veirt.weathr

Configuration

The config file location depends on your platform:

  • Linux: ~/.config/weathr/config.toml (or $XDG_CONFIG_HOME/weathr/config.toml)
  • macOS: ~/Library/Application Support/weathr/config.toml
  • Windows: ~/AppData/Roaming/weathr/config.toml

Setup

# Linux
mkdir -p ~/.config/weathr

# macOS
mkdir -p ~/Library/Application\ Support/weathr

# Windows (PowerShell)
New-Item -Path $env:APPDATA/weathr -Type Directory

# Windows (Command Prompt)
mkdir %APPDATA%/weathr

Edit the config file at the appropriate path for your platform:

# Hide the HUD (Heads Up Display) with weather details
hide_hud = false

# Run silently without startup messages (errors still shown)
silent = false

[location]
# Location coordinates (overridden if auto = true)
latitude = 52.5200
longitude = 13.4050

# Auto-detect location via IP (defaults to true if config missing)
auto = false

# Hide the location name in the UI
hide = false

# How to display the location in the HUD: "coordinates" | "city" | "mixed"
display = "mixed"

# Optional: manually override the city name shown in the HUD.
# When set, skips reverse geocoding entirely.
# city = "Berlin"

# Language for the resolved city name. "auto" uses the locale of the coordinates.
# Accepts BCP-47 language tags: "en", "de", "ru", "ja", etc.
# city_name_language = "auto"

[units]
# Temperature unit: "celsius" or "fahrenheit"
temperature = "celsius"

# Wind speed unit: "kmh", "ms", "mph", or "kn"
wind_speed = "kmh"

# Precipitation unit: "mm" or "inch"
precipitation = "mm"

Location Display Modes

The display option controls how the location appears in the HUD. City names are resolved via reverse geocoding (Nominatim/OpenStreetMap). When a city cannot be resolved (e.g. open sea or no Nominatim match), all modes fall back to showing coordinates.

Mode City resolved City not resolved
coordinates Location: 52.52°N, 13.41°E Location: 52.52°N, 13.41°E
city Location: Berlin Location: 52.52°N, 13.41°E
mixed Location: Berlin (52.52°N, 13.41°E) Location: 52.52°N, 13.41°E

Example Locations

# Tokyo, Japan
latitude = 35.6762
longitude = 139.6503

# Sydney, Australia
latitude = -33.8688
longitude = 151.2093

Usage

Run with real-time weather:

weathr

CLI Options

Simulate weather conditions for testing:

# Simulate rain
weathr --simulate rain

# Simulate snow at night
weathr --simulate snow --night

# Clear day with falling leaves
weathr --simulate clear --leaves

Available weather conditions:

  • Clear Skies: clear, partly-cloudy, cloudy, overcast
  • Precipitation: fog, drizzle, rain, freezing-rain, rain-showers
  • Snow: snow, snow-grains, snow-showers
  • Storms: thunderstorm, thunderstorm-hail

Override configuration:

# Use imperial units (°F, mph, inch)
weathr --imperial

# Use metric units (°C, km/h, mm) - default
weathr --metric

# Auto-detect location via IP
weathr --auto-location

# Hide location coordinates
weathr --hide-location

# Hide status HUD
weathr --hide-hud

# Run silently (suppress non-error output)
weathr --silent

# Combine flags
weathr --imperial --auto-location

Keyboard Controls

  • q or Q - Quit
  • Ctrl+C - Exit

Environment Variables

The application respects several environment variables:

  • NO_COLOR - When set, disables all color output (accessibility feature)
  • COLORTERM - Detects truecolor support (values: "truecolor", "24bit")
  • TERM - Used for terminal capability detection (e.g., "xterm-256color")

Examples:

# Disable colors for accessibility
NO_COLOR=1 weathr

Privacy

Location Detection

When using auto = true in config or the --auto-location flag, the application makes a request to ipinfo.io to detect your approximate location based on your IP address.

This is optional. You can disable auto-location and manually specify coordinates in your config file to avoid external API calls.

Roadmap

  • Support for OpenWeatherMap, WeatherAPI, etc.
  • Installation via AUR.
  • Key bindings for manual refresh, speed up animations, pause animations, and toggle HUD.

License

GPL-3.0-or-later

Credits

Weather Data

Weather data provided by Open-Meteo.com under the CC BY 4.0 license.

Geocoding

City name resolution powered by Nominatim (OpenStreetMap). Data © OpenStreetMap contributors, licensed under ODbL.

ASCII Art

  • Source: https://www.asciiart.eu/
  • House: Joan G. Stark
  • Airplane: Joan G. Stark
  • Sun: Hayley Jane Wakenshaw (Flump)
  • Moon: Joan G. Stark

Note: If any ASCII art is uncredited or misattributed, it belongs to the original owner.

Ähnliche Repositories
n8n-io/n8n

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

TypeScriptnpmOtherautomationipaas
n8n.io
197.4k59.5k
ohmyzsh/ohmyzsh

🙃 A delightful community-driven (with 2,500+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool that makes it easy to keep up with the latest updates from the community.

ShellMIT Licenseshellzsh-configuration
ohmyz.sh
188.7k26.5k
yt-dlp/yt-dlp

A feature-rich command-line audio/video downloader

PythonPyPIThe Unlicenseyoutube-dlpython
discord.gg/H5MNcFW63r
179.4k15.3k
google-gemini/gemini-cli

An open-source AI agent that brings the power of Gemini directly into your terminal.

TypeScriptnpmApache License 2.0geminigemini-api
geminicli.com
106.1k14.3k
sherlock-project/sherlock

Hunt down social media accounts by username across social networks

PythonPyPIMIT Licenseosintreconnaissance
sherlockproject.xyz
86.9k10.2k
junegunn/fzf

:cherry_blossom: A command-line fuzzy finder

GoGo ModulesMIT Licensefzfgo
junegunn.github.io/fzf/
81.9k2.8k
OpenHands/OpenHands

🙌 OpenHands: AI-Driven Development

PythonPyPIOtheragentartificial-intelligence
openhands.dev
81.6k10.4k
jesseduffield/lazygit

simple terminal UI for git commands

GoGo ModulesMIT Licensecligit
80.6k2.9k
rtk-ai/rtk

CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies

Rustcrates.ioApache License 2.0agentic-codingai-coding
rtk-ai.app
72.4k4.5k
BurntSushi/ripgrep

ripgrep recursively searches directories for a regex pattern while respecting your gitignore

Rustcrates.ioThe Unlicenseripgreprecursively-search
66.4k2.7k
tldr-pages/tldr

Collaborative cheatsheets for console commands 📚.

MarkdownOthershellman-page
tldr.sh
63.2k5.3k
santifer/career-ops

Open-source AI job search: scan job portals, evaluate listings with a structured A-F rubric into a 1.0-5.0 score, tailor your CV, track applications — runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravity…)

JavaScriptnpmMIT Licenseai-agentanthropic
career-ops.org
60.9k12k