| Crates.io | whathaveidone |
| lib.rs | whathaveidone |
| version | 0.5.1 |
| created_at | 2025-04-17 15:20:19.861125+00 |
| updated_at | 2025-06-27 13:28:20.382744+00 |
| description | CLI tool for daily standups with Git and Ratatui |
| homepage | |
| repository | https://github.com/heroheman/whathaveidone |
| max_upload_size | |
| id | 1637997 |
| size | 207,806 |
A terminal tool to summarize your Git commit history for daily standups, using AI (Gemini API).
m, view all marked with scargo 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.
whathaveidone uses a TOML file for configuration, allowing you to customize its behavior.
The application loads settings from up to three locations in the following order of precedence (lower numbers are overridden by higher numbers):
whid.toml): A whid.toml file located in the project's root directory serves as the base configuration. This file is required and acts as a blueprint for user-specific settings.~/.config/whid/whid.toml): On the first run, the application copies the project's whid.toml to a user-specific directory. This file stores your personal default settings.whid.toml): You can place a whid.toml file in the directory where you run the whid command. Its settings will override any of the above, which is useful for project-specific configurations.Here's an example of the whid.toml file and the available settings:
# The default Gemini model to use for summaries.
# This can be overridden by the --model command-line flag.
gemini_model = "gemini-2.0-flash"
# Optional: Path to a custom prompt template file.
# If provided, this file will be used for AI summaries.
# This can be overridden by the --prompt command-line flag.
custom_prompt_path = "path/to/your/prompt.txt"
# Default language for the AI summary.
# Can be overridden by the --lang command-line flag.
lang = "english"
Run the app in your terminal:
whathaveidone
# or
whid
You can select the Gemini model version by setting the gemini_model in your whid.toml configuration file, or by using the --model <model> parameter as a command-line override. 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. The --lang command-line flag will always override the lang setting from your configuration file.
Use TAB or SHIFT-TAB for interval selection.
Alternativly: You can specify the start interval for commit history as parameter:
24 or today (default)4872 or yesterdayweekmonthExample for 1 week in German:
whathaveidone week --lang german
You can specify a custom date range for the commit history using the --from and --to parameters. The date format is YYYY-MM-DD.
--from YYYY-MM-DD: Start date for the commit history.--to YYYY-MM-DD: End date for the commit history. If not provided, it defaults to the current date.Example:
whathaveidone --from 2023-01-01 --to 2023-01-31
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 summarizedExample:
whathaveidone --prompt myprompt.txt
If the file cannot be loaded, the default prompt will be used.
The --prompt command-line flag will always override the custom_prompt_path from your configuration file.
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.
Tab / Shift+Tab: Change time intervald: Toggle detailed commit view (multi-line, git log style)a or A: Show AI summary popupc: Copy summary to clipboardm: Mark/unmark commits: Show popup with all marked commitsQ: Quitcoming soon