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.3.0.tar.gz (15.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.0-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: git_ember-1.3.0.tar.gz
  • Upload date:
  • Size: 15.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.0.tar.gz
Algorithm Hash digest
SHA256 e31adc3ca016c253fbf2d58bf555ebc956f603bbda10d0ceb9119560e25a3b9c
MD5 a091b80bdf6a22debff98bd64ec7bc5c
BLAKE2b-256 e194b6e374e0014f783bcf3fc8afd7ed922c405bb74f847ad5a63e438b13987c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: git_ember-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 15.0 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0d5bc1a50746d10084637905dc7ebf1dd0530bde8ea43b4e6c969a8685589f8a
MD5 b139b2a929bb937e7ab3f5ffd63f3b44
BLAKE2b-256 0ed95990283d28317c8c1aaebdb247ebcfe4c92201c47aed1ac5500d47e34892

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