π git-recall
git-recall is your personal standup assistant. Built in pure C with zero dependencies, it provides a lightning-fast summary of what you and your team have accomplished over any timeframe.
Installation β’ Usage β’ Troubleshooting β’ Errors β’ License
β¨ Features
- Zero Dependencies: No Python, Node.js, or heavy runtimes. Just
git and a C compiler.
- Flexible Scopes: Quickly pivot between daily, weekly, monthly, or yearly summaries.
- Multipliers: Look back any number of days, weeks, months, or years with simple flags.
- Just Your Work:
--me shows only your own commits.
- Native File Export: Built-in support for logging summaries to text files.
- Blazing Fast: Written in C for near-instant execution even in massive monorepos.
π Install
Windows (Winget)
winget install Ammaar.git-recall
Ubuntu / Debian (PPA)
sudo add-apt-repository ppa:ammaar-apt/git-recall
sudo apt update && sudo apt install git-recall
Build from Source
Perfect for macOS or other Linux distros.
git clone https://github.com/AmmaarBakshi/git-recall
cd git-recall
make
sudo make install
π Usage
The basic syntax is git recall [range] [multiplier] [--me].
Quick Scopes
| Command | Description |
|---|
git recall | Defaults to the last 7 days (same as --week) |
git recall --day | Yesterday and today β handy for a morning standup |
git recall --week | Summary of the last week |
git recall --month | Summary of the last month |
git recall --year | The "Year in Review" view |
Every range starts at midnight of its first day, so nothing from that morning is missed. Commits from all branches are included (merge commits are skipped), grouped by day with the newest first, and shown in your local time β even when teammates commit from other timezones.
Lookback Multipliers
Need to see the last 3 days or 2 months? Just add the number:
git recall --day -3 # Last 3 days
git recall --month -2 # Last 2 months
Months and years are calendar-aware: on March 31, --month starts from February 28 (or 29), not March 3. Ranges that would reach before 1970 start at 1970-01-01.
Only Your Commits
Add --me to filter by your git config user.email β perfect for standups:
git recall --week --me
Help & Colors
git recall --help prints all options. Colors are turned off automatically when the output is piped (e.g. git recall | less) or when the NO_COLOR environment variable is set.
Exporting Reports
# Write to a file (creates it, or overwrites it if it exists)
git recall --month > recall.txt
# Let git-recall create the file itself and confirm where it wrote
git recall --month '>' -mk recall.txt
Note the quotes in the second example: an unquoted > is taken by your shell (bash, zsh, PowerShell, cmd), which would write to a file literally named -mk. Quoting it passes > to git-recall instead. Files are always written as plain text without color codes, and git-recall exits with an error if the write fails (for example, a full disk).
π₯ Example Output
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
git recall β Last Week (since 2026-09-21)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
2026-09-27
3ed66e2 Speed up output: buffer the report and skip signature checks @ 23:31 AMMAAR-IC
989b18d Stop repeating day headers after rebases and cross-timezone commits @ 23:30 AMMAAR-IC
1da5ea1 Report write failures instead of claiming success @ 23:29 AMMAAR-IC
2026-09-25
35f1368 Add --me flag to show only your own commits @ 23:39 AMMAAR-IC
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Total commits: 4
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π What's New in 1.6.0
- Safer output: Commit messages can no longer inject terminal escape codes (colors, window titles). Control characters are shown as
?.
- No missed commits: Ranges now start at midnight of the first day. Before, commits from early that morning could be left out.
- Cleaner grouping: Each day appears once, even after rebases or cherry-picks, and all times are in your local timezone.
- Better on Windows: Colors work in the classic console, and your console's code page is put back when git-recall exits.
- Honest exit codes: A failed write (full disk, closed pipe) now exits with an error instead of reporting success.
- Faster: Output is written in large blocks, and GPG signatures are no longer checked for every commit.
See the full release notes.
π§ Windows Encoding Fix
Since 1.6.0, git-recall switches the console to UTF-8 while it runs and restores your original code page when it exits. It also turns on ANSI color support in the classic Windows console, so you shouldn't see raw codes like β[1;32m any more. If a console can't show colors, git-recall prints plain text instead.
If you still see garbled characters like ΞΓΆΓ instead of smooth lines β, it's usually when the output goes through PowerShell, e.g. git recall | Out-File log.txt or $x = git recall. That means PowerShell itself isn't reading the output as UTF-8.
The Permanent Fix:
- Open your profile:
notepad $PROFILE
- Paste:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
- Restart PowerShell.
> [!TIP]
> For the best experience, use Windows Terminal. It handles Unicode natively without any extra configuration.
β οΈ Error Reference
| Message | Solution |
|---|
Not a git repository... | Run the command inside a folder initialized with git init. |
Unknown option: --xyz | Check git recall --help for valid flags. |
Invalid multiplier '-x' | Use a whole number from -1 to -10000. |
--me needs git user.email | Run git config --global user.email you@example.com. |
Expected filename after '>' | Ensure you provide a path (e.g., > report.txt). |
Expected filename after '-mk' | Put a path after -mk (e.g., '>' -mk report.txt). |
Cannot open file 'x' | Check folder permissions or if the file is locked by another app. |
Unknown option: report.txt | Your shell took an unquoted >. Quote it: '>' -mk report.txt. |
git log failed. | git printed the real reason just above β often a corrupt or unreadable repository. |
Failed to write output. / Failed to write the output file. | The disk is full, or the pipe/terminal was closed before git-recall finished. |
π‘ License
Distributed under the MIT License. See LICENSE for more information.
Created by AmmaarBakshi β’ Releases β’ Report an issue