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 branch tree visualizations.

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 .
    
  3. Verify the installation:

    git-ember --version
    

Running without installation

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

PYTHONPATH=src python3 main.py /path/to/repo

Uninstall

pip uninstall git-ember

Configuration

git-ember reads configuration from ~/.config/git-ember/config.toml (or platform-specific config directory). CLI arguments take precedence over config values.

Variable Required Default Description
color No green Color scheme name
border No = Border character
week_start No Sunday Week start day (Sunday/Monday)

Example config file

color = "blue"
border = "-"
week_start = "Monday"

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 green    # default
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
└── tests/
    ├── conftest.py      # Pytest fixtures
    ├── test_config.py # Config tests
    ├── test_git.py    # Git operations tests
    └── test_render.py # Rendering tests

Development

Run the linter:

make lint

Run tests:

pytest

⚠️ Note: Code coverage is not configured.

License

MIT License — see LICENSE for details.

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.3.1.tar.gz (16.3 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.3.1-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: git_ember-1.3.1.tar.gz
  • Upload date:
  • Size: 16.3 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.3.1.tar.gz
Algorithm Hash digest
SHA256 04342e2cd68bec28eb8deb751d7033f3f1ab3b4407d05d36e7f6b74089cd9665
MD5 a800e6dad72e0eb0251c85a02e0b9b28
BLAKE2b-256 1e7bfb73a6b60e1b5031f37d9867d8143c1648a89578677c8e87e36991ade241

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_ember-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 16.1 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.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 11b1080cd1ed72f0a43d1eae4cf1efcd47db5d51c9c4747b6447b0eb86d7761e
MD5 aaae5731f293e7872eaf1b7cb94b0f36
BLAKE2b-256 2aefba6a98d417e40cff7450af06a56c57350a1c3a743d110f9dd534ee00da51

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