This is my personal quest to put myself out there and share my progress publicly. I'm making the commits I've made in my personal projects visible to the world, documenting my daily work and updates.
- A log of commits from various personal projects
- Updated daily via the
scripts/push-progres.tsscript - AI-generated daily summaries in
results/daily_journal.md - A way to track and showcase my coding journey
The scripts/push-progres.ts script scans git repositories in the parent directory, collects recent commits, filters out irrelevant ones (like lockfiles or initial commits), and appends them to results/work_ive_done.md in an anonymized format.
The scripts/explain_progres.ts script uses AI to generate a markdown-formatted summary of the latest day's commits and appends it to results/daily_journal.md.
I commit to updating this log every day, reflecting on what I've worked on and sharing it openly.
- Bun JS: You must have Bun installed. If not, install it from bun.sh.
- Directory Structure: The script assumes your personal projects are in the parent directory of this script (i.e.,
../relative to the script's location). If your projects are in a different location, you may need to modify thePROJECTS_DIRvariable inscripts/push-progres.ts. - Git Repositories: Ensure your projects are git repositories with commits.
- AI API Key: For
scripts/explain_progres.ts, setAI_API_KEYenvironment variable for Google Generative AI.
Run the script to update the work log:
cd /path/to/myWorkLog
bun run scripts/push-progres.tsThis will:
- Check if the projects directory exists (parent directory by default).
- Detect your global git identity (optional, for filtering commits).
- Read and parse the existing
results/work_ive_done.mdlog. - Determine the date since the last update.
- Scan for git repositories in the projects directory.
- Gather new commits from each repository since the last run.
- Filter out irrelevant commits (e.g., lockfiles, initial commits).
- Merge new commits with existing data.
- Anonymize the data for privacy.
- Update
results/work_ive_done.mdwith the new content.
Run the AI script to summarize the latest day's progress:
bun run scripts/explain_progres.tsThis generates a markdown summary and appends it to results/daily_journal.md.
For convenience, you can create aliases. On macOS (using zsh or bash), add to your ~/.zshrc or ~/.bashrc:
alias push-progress="bun run /path/to/myWorkLog/scripts/push-progres.ts"
alias explain-progress="bun run /path/to/myWorkLog/scripts/explain_progres.ts"Then, simply run:
push-progress
explain-progress
Note for Windows/Linux: Paths and shell configurations may differ. On Windows, you might use Command Prompt or PowerShell, and adjust paths accordingly (e.g., use backslashes or different drive letters). On Linux, use your shell's config file like ~/.bashrc.
The scripts are in the scripts/ folder, and results are in results/. The script is designed for a specific folder structure where this myWorkLog directory is inside a projects folder containing your git repos. If your setup differs, edit the PROJECTS_DIR in the script to point to your projects directory.