Skip to main content

A GitHub-style heatmap of commits for your terminal

Project description

git-ember

A GitHub-style heatmap of commit activity for your terminal.

Overview

git-ember displays a colored grid representing commit activity over time, similar to the contribution graph shown on GitHub profiles. It reads directly from your local Git history—no external APIs or network requests required.

The tool supports multiple color schemes, branch filtering, custom date ranges, and can display repository statistics, recent commits, and top contributors.

Prerequisites

  • Python 3.11 or higher
  • Git installed and available in PATH

Installation

  1. Clone the repository:

    git clone https://codeberg.org/lukavr05/git-ember.git
    cd git-ember
    
  2. Install the package:

    pip install -e .
    

Running without installation

If you prefer not to install the package, run directly:

PYTHONPATH=src python3 main.py .

To verify the installation:

git-ember --version

To uninstall:

pip uninstall git-ember

Configuration

git-ember reads configuration from ~/.config/git-ember/config.toml. CLI arguments take precedence over config values.

Variable Required Default Description
color No green Color scheme name
border No = Border character

Usage

Show commit heatmap for the current year:

git-ember

Show heatmap for a specific repository:

git-ember /path/to/repo

Show multiple years:

git-ember --years 2
git-ember -y 3

Use different color schemes:

git-ember --color blue
git-ember --color orange
git-ember --color purple
git-ember --color mono

Show heatmap for a specific branch:

git-ember --branch feature-x

Display branch tree visualization:

git-ember --tree
git-ember --branch feature-x --tree

Show custom date range:

git-ember --after 2025-01-01 --before 2025-06-30
git-ember --after 2025-01-01

Show extended report with recent commits and top contributors:

git-ember --extended
git-ember -e

Show repository statistics:

git-ember --stats
git-ember -S

Command-line options

Flag Alias Description Default
--color -c Color scheme green
--years -y Number of years to show 1
--border -b Border character =
--extended -e Show recent commits and top contributors false
--stats -S Show repository statistics false
--ascii -a Use ASCII characters instead of Unicode false
--compact - Show last 4 months only false
--branch - Show heatmap for specific branch all branches
--tree -t Show branch tree under heatmap false
--scale - Intensity scaling: auto or adaptive auto
--after - Show commits after date (YYYY-MM-DD) -
--before - Show commits before date (YYYY-MM-DD) -
--version -V Show version -
--help -h Show help -

Project Structure

git-ember/
├── main.py                 # Entry point
├── pyproject.toml         # Package configuration
├── Makefile              # Build targets
├── .python-version       # Python version (3.11)
├── README.md            # This file
├── docs/
│   ├── CHANGELOG.md    # Version history
│   └── PLAN.md         # Feature planning
└── src/
    └── gitember/
        ├── __init__.py   # Package version
        ├── cli.py        # CLI argument parsing and config
        ├── git.py        # Git command execution and parsing
        ├── render.py    # Grid and branch tree rendering
        └── colors.py     # ANSI color scheme definitions

Development

Run the linter:

make lint

⚠️ Note: No test suite exists currently.

License

No LICENSE file exists in this repository.

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

git_ember-1.2.1.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

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

git_ember-1.2.1-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file git_ember-1.2.1.tar.gz.

File metadata

  • Download URL: git_ember-1.2.1.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for git_ember-1.2.1.tar.gz
Algorithm Hash digest
SHA256 a3de6b8bf0cb455de1d0e581f90bd65400022ef1b6072e3578ceffacae64e10a
MD5 d8c64f5714a3769ae6bb69209834393d
BLAKE2b-256 070ea34de64f7ecb71e48a027ee222258671d6487000e570b871509717b91b80

See more details on using hashes here.

File details

Details for the file git_ember-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: git_ember-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for git_ember-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f88b6e173ee3dd9dbe743872da5eca8741772cb87d5c4aec7cb8de51e7ed2c50
MD5 28190803c748499b1ca138bfeb9abc59
BLAKE2b-256 c443e98e2f64edac0bfd04eb7c7f22892f01043f3ed498403205c79f095af155

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