A terminal tool to summarize your Git commit history for daily standups, using AI (Gemini API).
- Summarizes Git commit history for one or more projects
- Groups changes by day and topic
- Supports multiple repositories
- Customizable summary prompt
- Copy summary to clipboard with one keypress
- Mark commits with
m
, view all marked withs
- Rust (for building)
- A Gemini API key
cargo install whathaveidone
You must set your Gemini API key before running the app:
export GEMINI_API_KEY=your-key-here
Add this line to your shell profile (e.g. ~/.zshrc
) to make it persistent across terminal sessions.
Run the app in your terminal:
whathaveidone
# or
whid
You can select the Gemini model version with the --gemini <model>
parameter. The default is gemini-2.0-flash
.
Example:
whathaveidone --gemini gemini-1.5-pro
#or
whathaveidone --gemini gemini-2.5-flash-preview-05-20
The selected model will be shown in the summary popup while waiting for the AI response.
To use a specific language for the AI summary, add the --lang <language>
parameter:
whathaveidone --lang german # German
whid --lang english # English (default)
Note: The translation is performed by Gemini itself.
Use TAB
or SHIFT-TAB
for interval selection.
Alternativly: You can specify the start interval for commit history as parameter:
24
ortoday
(default)48
72
oryesterday
week
month
Example for 1 week in German:
whathaveidone yesterday
# or
whathaveidone 48
# or
whathaveidone week --lang german
You can provide a custom prompt template file using the --prompt <filename.txt>
option. Placeholders in your template will be replaced automatically:
{from}
: Start date (YYYY-MM-DD){to}
: End date (YYYY-MM-DD){project}
or{projectname}
: Project name{interval}
: Interval label (e.g. "week"){lang}
: Language (e.g. "german", "english"){commits}
: Commit data to be summarized
Example:
whathaveidone --prompt myprompt.txt
If the file cannot be loaded, the default prompt will be used.
You can toggle a detailed, multi-line commit log view (similar to git log --format
output) by pressing the d
key in the commit list. This view shows the full commit message body and author for each commit, formatted in a pretty-printed, multi-line style.
Note: The detailed view is only recommended for smaller datasets (shorter timeframes or a single project). For large repositories or long timeframes, the output may be too large for the AI model to summarize effectively.
- Arrow keys / h j k l: Move between projects/commits
Tab
/Shift+Tab
: Change time intervald
: Toggle detailed commit view (multi-line, git log style)a
orA
: Show AI summary popupc
: Copy summary to clipboardm
: Mark/unmark commits
: Show popup with all marked commitsQ
: Quit