What did I work on yesterday?
A tiny, zero-dependency bash CLI for daily standups.
Lists your git commits from yesterday and today, de-duplicated by message.
$ yesterday
f0388245 2025-01-14 16:45 Daniel Dewhurst docs: update API reference
dab654e5 2025-01-14 15:26 Daniel Dewhurst fix: resolve auth timeout
51483f0e 2025-01-13 14:49 Daniel Dewhurst feat: add user preferences
Installation · Usage · AI Summaries · Multi-repo · Testing
- Smart defaults — Filters to your commits using
git config user.name - Workday-aware — On Mondays, shows Friday's commits instead of Sunday's
- De-duplication — Same commit on multiple branches? Shows once
- All branches — Searches across your entire repo
- Consistent dates — Uses commit date, not author date
- Multi-repo scanning — Scan all repos in a directory with
-d - AI summaries — Get plain-English standup summaries with
--ai
curl (recommended)
curl -fsSL https://raw.githubusercontent.com/danjdewhurst/yesterday/main/yesterday \
| sudo tee /usr/local/bin/yesterday > /dev/null && sudo chmod +x /usr/local/bin/yesterdayOther methods
wget
wget -qO- https://raw.githubusercontent.com/danjdewhurst/yesterday/main/yesterday \
| sudo tee /usr/local/bin/yesterday > /dev/null && sudo chmod +x /usr/local/bin/yesterdayFrom source
git clone https://github.com/danjdewhurst/yesterday.git
cd yesterday
sudo cp yesterday /usr/local/bin/yesterdayyesterday # Your commits from yesterday + today
yesterday -a # All authors
yesterday -t # All time
yesterday -l # Literal yesterday (disable Monday → Friday)
yesterday -d ~/Projects # Scan all repos in a directory
yesterday -at # All authors, all time (combined flags)
yesterday --ai # Your commits with AI summary
yesterday -ai # All authors with AI summary
yesterday --since="1 week ago" # Custom time range
yesterday --author="john" # Custom author filter| Flag | Description |
|---|---|
-a, --all-authors |
Show commits from all authors |
-t, --all-time |
Remove the date filter |
-l, --literal |
Use literal yesterday (disable workday logic) |
-d, --directory DIR |
Scan all git repos in DIR |
-i, --ai |
Summarize commits with AI (configure with --setup) |
--setup |
Configure AI provider and API keys |
-h, --help |
Show help message |
Flags are case-insensitive and can be combined (e.g.,
-at,-ai,-atd ~/Projects).
Any additional arguments are passed directly togit log.
Use -d to scan all git repos in a directory at once — perfect for standup prep when your work spans multiple repos:
$ yesterday -d ~/Projects
[yesterday] f0388245 2025-01-14 16:45 Daniel Dewhurst docs: update API reference
[my-api] dab654e5 2025-01-14 15:26 Daniel Dewhurst fix: resolve auth timeout
If the path is itself a git repo, it runs in single-repo mode on that repo.
Add --ai (or -i) to get a plain-English summary of your commits, powered by an LLM:
$ yesterday --ai
f0388245 2025-01-14 16:45 Daniel Dewhurst docs: update API reference
dab654e5 2025-01-14 15:26 Daniel Dewhurst fix: resolve auth timeout
51483f0e 2025-01-13 14:49 Daniel Dewhurst feat: add user preferences
AI Summary (openai/gpt-4o-mini):
- Updated the API documentation
- Fixed a login timeout issue
- Added a way for users to save their preferences
Run yesterday --setup to choose your provider and enter your API key. Configuration is stored in ~/.config/yesterday/config (permissions 600).
Supported providers:
| Provider | Default model | Requirements |
|---|---|---|
| OpenAI | gpt-4o-mini |
API key |
| Claude (Anthropic) | claude-sonnet-4-20250514 |
API key |
| Gemini (Google) | gemini-2.0-flash |
API key |
| Ollama | llama3.2 |
Local Ollama install |
Requires
curland eitherjqorpython3for JSON handling.
Combined flags work naturally —yesterday -aishows all authors' commits with an AI summary.
Tests use BATS (Bash Automated Testing System), included as git submodules.
# Clone with submodules
git clone --recurse-submodules https://github.com/danjdewhurst/yesterday.git
# Or init submodules in an existing clone
git submodule update --init --recursive
# Run all tests
./test/libs/bats-core/bin/bats test/
# Run a single test file
./test/libs/bats-core/bin/bats test/flag_parsing.bats| Platform | Status |
|---|---|
| Linux | Native |
| macOS | Native |
| Windows | Via Git Bash or WSL |