A visually pleasing terminal weather tool focusing on Real Feel and Windchill.
Project description
Isobar CLI
A terminal weather tool designed to give you a fast, clean sense of what the weather feels like outside; right now and for the week ahead. Built with Python and Rich.
Philosophy
Isobar CLI answers a simple question: "What does it feel like outside right now, and how do I prepare to be outside?"
Most weather apps overwhelm you with data. Isobar strips away everything except what matters when you're deciding whether to grab a jacket.
Design Principles
- Essential over comprehensive — Show Real Feel, not 47 data points
- Terminal-native — Built for quick checks in your workflow
- Zero friction — No API keys, no config files
- Information density — Clean, borderless UI
- Intentional features — Each must answer: "Does this help understand what it feels like outside?"
✨ Features
- Auto-Location —
isobardetects your city automatically 🌍 - Weather Condition Icons — WMO-standard emoji + plain-English description (☀️ Clear sky, 🌨️ Moderate snow, ⛈️ Thunderstorm)
- Real Feel — Apparent temperature (what it feels like)
- Air Quality Index — US AQI with health classifications 😷
- 7-Day Forecast — Full week outlook with color-coded highs/lows and daily rain %
- Hourly Outlook — Next 12 hours of temp and rain chance (
--hourly) - Multiple Cities — Compare weather across several cities at once (side-by-side)
- Smart Suggestions — Fuzzy city name matching if you make a typo
- Shell Completion — Tab-complete city names from your search history
- Dynamic Timezone — Sunrise/sunset always shown in the city's local time, not yours
- Precipitation Forecast — Next 6h rain/snow chance + totals
- Smart Caching — 15-min cache per city (
~/.cache/isobar/) - Color-Coded Temps — Cyan → Blue → Green → Yellow → Red
- Metric Support —
--metricor-mfor Celsius, km/h, and mm - No API Keys — Free Open-Meteo + ip-api.com
- Zero Config — Works instantly after
pip install .
🚀 Installation
git clone https://github.com/KnowOneActual/isobar-cli.git
cd isobar-cli
pip install .
📱 Usage
# Auto-detect your location
isobar
# Specify a city
isobar Chicago
isobar London Tokyo Paris # Multiple cities
isobar "New York" # Use quotes for multi-word cities
# Hourly outlook (next 12h)
isobar --hourly
isobar -H
# 7-day forecast
isobar --forecast
isobar -f
isobar "San Francisco" --forecast
isobar -f Sydney
# Metric units (Celsius, km/h, mm)
isobar --metric
isobar -m
isobar Tokyo -m
⌨️ Shell Completion
Isobar supports tab-completion for city names based on your search history. To enable it for your shell:
Zsh:
isobar --install-completion zsh
Bash:
isobar --install-completion bash
(Note: You may need to restart your terminal after installing completion).
🖥️ Example Output
Chicago, Illinois Weather
☀️ Conditions: Mainly clear
🌡️ Temperature: 37.1°F
🤔 Real Feel: 30.4°F
💨 Wind Speed: 4.3 mph
💧 Humidity: 58%
☔ Precip Chance: 0% (6h) | Dry conditions expected
🌅 Sunrise: 6:29 AM
🌇 Sunset: 5:37 PM
7-Day Forecast — Chicago, Illinois
Day Conditions High Low Rain%
Today ☁️ Overcast 41.7°F 23.9°F 1%
Fri Feb 27 ⛅ Partly cloudy 66.4°F 32.4°F 2%
Sat Feb 28 🌨️ Moderate snow 44.0°F 26.5°F 38%
Sun Mar 1 ☁️ Overcast 29.0°F 26.6°F 36%
Mon Mar 2 ☁️ Overcast 33.6°F 27.1°F 36%
Tue Mar 3 🌦️ Light drizzle 36.8°F 30.9°F 27%
Wed Mar 4 🌦️ Moderate drizzle 41.3°F 33.5°F 46%
🛠 Tech Stack
| Tool | Purpose |
|---|---|
| Typer | CLI framework |
| Rich | Terminal UI |
| Open-Meteo | Weather + forecast data (free, no key) |
| ip-api.com | Auto-location detection (free) |
| timezonefinder | Dynamic timezone from coordinates (offline) |
| pytest | Unit testing framework |
| requests-mock | Mocking for API testing |
| Ruff | Linting + formatting |
| pip-audit | Dependency security scanning (CI) |
📈 Project Status
✅ Phase 1 Complete — Caching + Auto-Location
✅ Phase 2 Complete — Precipitation, Sunrise/Sunset, Condition Icons
✅ Phase 3 Complete — 7-Day Forecast, Dynamic Timezone, --city flag
✅ CI/CD — Ruff lint + security audit on every push and PR
See ROADMAP.md and CHANGELOG.md
🤝 Contributing
See CONTRIBUTING.md. New features must answer: "Does this help understand what it feels like outside?"
📄 License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file isobar_cli-1.0.0.tar.gz.
File metadata
- Download URL: isobar_cli-1.0.0.tar.gz
- Upload date:
- Size: 20.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62b28d4f97ae0efced4d18d82e23b636252a9aac74a4a8b2ff8f362c98399f40
|
|
| MD5 |
53af861a589b05489877e7c97998f7a2
|
|
| BLAKE2b-256 |
151806bf59f59c673bd93d747ab73074353d718d52be6a5d695813bbef8f6d26
|
Provenance
The following attestation bundles were made for isobar_cli-1.0.0.tar.gz:
Publisher:
publish.yml on KnowOneActual/isobar-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isobar_cli-1.0.0.tar.gz -
Subject digest:
62b28d4f97ae0efced4d18d82e23b636252a9aac74a4a8b2ff8f362c98399f40 - Sigstore transparency entry: 1011138351
- Sigstore integration time:
-
Permalink:
KnowOneActual/isobar-cli@86cc12128dd2c82a9d4989058d0bc4c4f389b9d6 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/KnowOneActual
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@86cc12128dd2c82a9d4989058d0bc4c4f389b9d6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file isobar_cli-1.0.0-py3-none-any.whl.
File metadata
- Download URL: isobar_cli-1.0.0-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0547a16a96b176bb42688b8af9de571dc5e8a29785b306e9c4453ae3525b96c
|
|
| MD5 |
4882e8d17264507a64fdcde7b0110452
|
|
| BLAKE2b-256 |
b27ef572ff5d168daf9b41a325b6c04baec652a4ac7b75b8d00a59a9d154e7d0
|
Provenance
The following attestation bundles were made for isobar_cli-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on KnowOneActual/isobar-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isobar_cli-1.0.0-py3-none-any.whl -
Subject digest:
b0547a16a96b176bb42688b8af9de571dc5e8a29785b306e9c4453ae3525b96c - Sigstore transparency entry: 1011138407
- Sigstore integration time:
-
Permalink:
KnowOneActual/isobar-cli@86cc12128dd2c82a9d4989058d0bc4c4f389b9d6 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/KnowOneActual
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@86cc12128dd2c82a9d4989058d0bc4c4f389b9d6 -
Trigger Event:
push
-
Statement type: