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
-
Clone the repository:
git clone https://codeberg.org/lukavr05/git-ember.git cd git-ember
-
Install the package:
pip install -e .
-
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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04342e2cd68bec28eb8deb751d7033f3f1ab3b4407d05d36e7f6b74089cd9665
|
|
| MD5 |
a800e6dad72e0eb0251c85a02e0b9b28
|
|
| BLAKE2b-256 |
1e7bfb73a6b60e1b5031f37d9867d8143c1648a89578677c8e87e36991ade241
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11b1080cd1ed72f0a43d1eae4cf1efcd47db5d51c9c4747b6447b0eb86d7761e
|
|
| MD5 |
aaae5731f293e7872eaf1b7cb94b0f36
|
|
| BLAKE2b-256 |
2aefba6a98d417e40cff7450af06a56c57350a1c3a743d110f9dd534ee00da51
|