Skip to main content

Tiny CLI to print today's weather for your terminal (Open-Meteo, zero API key).

Project description

🌦️ weather-tty

Tiny CLI to print today's weather for your terminal — zero API keys, just vibes.

CI Status PyPI License Code style: Ruff

Coverage shrug Build success (usually, ask ChatGPT) Type checked LOL PRs welcome (but judged) Maintainer sleep deprived Made with love and Python Runs on UV Async all the things Emoji support Works on my machine Built with anger and coffee Weather probably fine Terminal approved

Preview

weather-tty terminal output: single line, verbose panel and 5-day forecast table

Features

  • Zero-config: just type weather-tty and it will guess your city by IP.
  • Single-line summary: 🌤️ Pamplona, ES: 25°C/12°C · rain 0.0mm · wind 18 km/h · sun 08:10–19:14
  • Multi-day forecast: weather-tty --forecast for a 5-day table.
  • --city geocoding (Open-Meteo) or --lat/--lon.
  • Units: metric (default) or imperial.
  • --timezone to override the auto-detected IANA timezone.
  • --no-emoji for boring terminals.
  • --verbose pretty panel for humans.
  • --version to print the installed version.

Install

Requires Python 3.10+

Recommended (pipx)

The easiest way to install weather-tty as a CLI tool:

brew install pipx  # if you don't have pipx
pipx install weather-tty

This installs weather-tty in an isolated environment and makes it available globally.

Alternative (pip)

pip install weather-tty

⚠️ On macOS with Homebrew Python, you may get an externally-managed-environment error. Use pipx instead, or create a virtual environment.

Usage

# auto-detect city by IP
weather-tty

# by city
weather-tty --city "Pamplona"

# 5-day forecast table
weather-tty --city "Pamplona" --forecast

# coordinates (overrides city)
weather-tty --lat 40.4168 --lon -3.7038

# imperial units
weather-tty --city "New York" --units imperial

# pretty panel
weather-tty --city "Pamplona" --verbose

# override the timezone
weather-tty --city "Pamplona" --timezone Europe/Madrid

# print version
weather-tty --version

Pro Tip: Terminal Greeting

Add weather-tty to the end of your .zshrc, .bashrc, or .bash_profile to get a fresh weather report every time you open a new terminal session:

# Add this to ~/.zshrc or ~/.bashrc
weather-tty

Notes

  • Data source: Open-Meteo
  • No API keys required.
  • Default view is today's summary; pass --forecast for a 5-day table.
  • Location is resolved via IP by default; override with --city or --lat/--lon.

Development

uv sync --group dev
uv run ruff check .            # lint
uv run ruff check . --fix      # autofix
uv run ty check                # type check (Astral ty)
uv run pytest --cov=weather_tty --cov-report=term-missing  # tests + coverage
uv run weather-tty --city "Pamplona"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

weather_tty-0.3.1.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

weather_tty-0.3.1-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file weather_tty-0.3.1.tar.gz.

File metadata

  • Download URL: weather_tty-0.3.1.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for weather_tty-0.3.1.tar.gz
Algorithm Hash digest
SHA256 186b6ba18a0a730006ad2e42ea092a4ba37e74c9f772a8eea6a2941132aaadbb
MD5 7333af858058db44b950902c91127059
BLAKE2b-256 c377d57424d93ae46b6b92ae5ba087c41182ff2400eabe6b32213e9a43981cf4

See more details on using hashes here.

File details

Details for the file weather_tty-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: weather_tty-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for weather_tty-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 362a73f68ad59dc5ae6721b97fb282ab538332404ca0a14808ba5e9e79c59d9e
MD5 6162d791bc2f2bd10738d97dc25ae43a
BLAKE2b-256 765d594ea1bc89e4bdef50f25d1a126db11f262417f04d805487fad3d94fc4fc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page