today
Version, currently main branch1 version
- main branchlatestJul 6, 2026
github.com/wuisabel-gif/today
A tiny Crystal terminal dashboard that shows what changed today in the repo you are working in.
Installation
# Add this to your shard.yml
dependencies:
today:
github: wuisabel-gif/today
branch: mainmain is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
>= 1.10.0- Target
todayfrom src/today.cr
Dependencies
This version declares no dependencies.
README
today
today is a small terminal dashboard for quickly checking what is going on in the current folder.
Build it once, then run it from inside any project:
cd ~/path/to/a/repo
today
Example output:
────────────────────
Today's commits: 3
Files edited: 12
Current branch:
feature/notes
Calendar:
unavailable
Weather:
unavailable
Unread mail:
unavailable
Longest coding streak:
42m
What It Shows
Today's commits: commits in the current Git repo since midnight.Files edited: unique files changed in today's commits plus currently uncommitted files.Current branch: the active Git branch, ordetached HEAD.Calendar: optional value fromTODAY_CALENDAR.Weather: optional value fromTODAY_WEATHER.Unread mail: optional value fromTODAY_UNREAD_MAIL.Longest coding streak: estimated from today's Git commit timestamps, grouped when commits are within 30 minutes of each other.
If you run today outside a Git repo, it still reports files modified today in the current folder and marks Git-only fields as unavailable or zero.
Build
This project is written in Crystal.
shards build
If Crystal cannot write to its default cache directory, keep the cache local to this project:
CRYSTAL_CACHE_DIR=.crystal-cache shards build
The compiled binary is written to:
bin/today
Run
First open the folder where you keep this project. Then run:
./bin/today
Install Once
Open this project folder in your terminal, then add its bin folder to your shell path:
echo "export PATH=\"\$PATH:$(pwd)/bin\"" >> ~/.zshrc
source ~/.zshrc
Then run it from any repo:
cd ~/path/to/a/repo
today
You do not need to copy this project into every repo. The command reads whichever folder you run it from.
Optional Values
Some dashboard values need external data sources. Until those integrations exist, pass them in with environment variables:
TODAY_WEATHER="72°" \
TODAY_CALENDAR="2:00 Meeting" \
TODAY_UNREAD_MAIL="4" \
today
You can also override computed values:
TODAY_COMMITS="6" \
TODAY_FILES_EDITED="24" \
TODAY_BRANCH="feature/notes" \
TODAY_CODING_STREAK="2h13m" \
today
Development
Edit the source:
src/today.cr
Rebuild:
CRYSTAL_CACHE_DIR=.crystal-cache shards build
Smoke test:
./bin/today
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
main- Seen
- Jul 6, 2026
- Crystal
>= 1.10.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/wuisabel-gif/today
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 15, 2026
- Synced
- Aug 15, 2026
- Versions
- 1