A weather forecast for your codebase health
Project description
codeweather
A weather forecast for your codebase health.
Point codeweather at any git repository and get a fun, accurate "weather report" based on real code metrics — commit activity, technical debt, test coverage, and churn. No API keys, no config, no nonsense.
CODEWEATHER REPORT
repo: myproject | branch: main | April 10, 2026
╭────── CLOUDY ──────╮ ╭──────────────────── Metrics ────────────────────╮
│ ___ │ │ Temperature 57 F (Cool) │
│ .-' '-. │ │ Wind 8 mph (Breeze) │
│ .' ___ '. │ │ Fog / Tech Debt Hazy │
│ ( .' '. ) │ │ Sunshine / Tests 23% (Cloudy) │
│ '. .' │ │ Storm Watch None │
│ '-----' │ ╰─────────────────────────────────────────────────╯
╰────────────────────╯
╭────────────────────────── Forecast ───────────────────────────╮
│ Overcast conditions with pockets of uncertainty. A moderate │
│ pace of commits keeps things moving. A handful of TODO and │
│ FIXME markers are floating around - worth scheduling a │
│ cleanup sprint. Test coverage is sparse... │
╰───────────────────────────────────────────────────────────────╯
Installation
pip install codeweather
Or install from source:
git clone https://github.com/ParamChordiya/codeweather
cd codeweather
pip install -e .
Usage
# Forecast for the current directory
codeweather
# Forecast for a specific repo
codeweather /path/to/your/repo
# Or run as a module
python -m codeweather /path/to/your/repo
Weather Conditions
| Condition | Trigger |
|---|---|
| STORMY | High ratio of fix/bug/hotfix commits (>=70% of threshold) |
| FROZEN | Near-zero commits in the last 30 days |
| FOGGY | High TODO/FIXME density + low test coverage |
| SUNNY | Strong test coverage + clean codebase |
| RAINY | High churn + moderate storm index |
| WINDY | High commit velocity + high churn |
| CLOUDY | Elevated technical debt fog |
| PARTLY CLOUDY | Mixed signals, typical working repo |
Metrics Explained
| Metric | What it measures | Weather analogy |
|---|---|---|
| Temperature | Commits in the last 30 days (log scale) | Project activity level |
| Fog | TODO/FIXME/HACK density per tracked file | Technical debt visibility |
| Sunshine | Ratio of test files to total files | Code confidence |
| Wind | Lines changed in the last 30 days (log scale) | Code churn / volatility |
| Storm Watch | Ratio of fix/bug/hotfix commits | Firefighting mode |
All scores use a log scale where appropriate, so both small hobby projects and large monorepos get meaningful readings.
Requirements
- Python 3.9+
- A git repository with at least one commit
- Dependencies:
gitpython,rich
How It Works
- Collect — reads your git history, tracked files, and
git grepoutput (no filesystem walk, only tracked files are analyzed) - Score — converts raw numbers to normalized
[0.0, 1.0]scores using log scales - Forecast — maps scores to weather conditions via a priority cascade
- Display — renders the ASCII art, metrics table, and narrative paragraph with
rich
The narrative is fully deterministic — running codeweather twice on the same repo gives the same output.
License
MIT
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 codeweather-0.1.0.tar.gz.
File metadata
- Download URL: codeweather-0.1.0.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c5d8294831c846dac18e45515b027e46036f0d0b6133a93aeee50b0501d01da
|
|
| MD5 |
3b635eb17cb3806cd8dd42e21c028994
|
|
| BLAKE2b-256 |
3cb20c814c21912588a5683493232aa7e1ebbbb53deb98e0f596ebcccfe86ce4
|
File details
Details for the file codeweather-0.1.0-py3-none-any.whl.
File metadata
- Download URL: codeweather-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f98233839d2a05776abd80aab6d3de578713a24b90127c59aa093baec674d0d
|
|
| MD5 |
0569f3fae23aff7ceb25c090e35f4399
|
|
| BLAKE2b-256 |
9606839a9cfa61b1b5f9915c825061cc67df165ede182c632ecd95b535648510
|