Skip to main content

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

  1. Collect — reads your git history, tracked files, and git grep output (no filesystem walk, only tracked files are analyzed)
  2. Score — converts raw numbers to normalized [0.0, 1.0] scores using log scales
  3. Forecast — maps scores to weather conditions via a priority cascade
  4. 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


Download files

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

Source Distribution

codeweather-0.1.0.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

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

codeweather-0.1.0-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

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

Hashes for codeweather-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8c5d8294831c846dac18e45515b027e46036f0d0b6133a93aeee50b0501d01da
MD5 3b635eb17cb3806cd8dd42e21c028994
BLAKE2b-256 3cb20c814c21912588a5683493232aa7e1ebbbb53deb98e0f596ebcccfe86ce4

See more details on using hashes here.

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

Hashes for codeweather-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f98233839d2a05776abd80aab6d3de578713a24b90127c59aa093baec674d0d
MD5 0569f3fae23aff7ceb25c090e35f4399
BLAKE2b-256 9606839a9cfa61b1b5f9915c825061cc67df165ede182c632ecd95b535648510

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