A gorgeous command-line tool for automating your daily work logging workflow with Rich UI, ASCII art, and traffic light color patterns.
- π¨ Beautiful Rich UI - ASCII boxes, tables, and traffic light colors (π’ green, π‘ yellow, π΄ red)
- π€ Automated Workflow - Auto-create daily logs, track time, generate summaries
- π Git Commit Integration - Automatically pulls your commits with hash, message, and timestamp
- π·οΈ Smart Tagging - Six-tag system (@feature, @bugfix, @review, @docs, @support, @meeting)
- π Epic Grouping - Organize work by Epics/Projects
- β±οΈ Time Tracking - Automatic start/end times and hour calculation
- π Weekly Summaries - Auto-generate shareable reports
- ποΈ Feature Flags - Toggle features on/off
- ποΈ Markdown Format - Works perfectly with Obsidian
- Python 3.7+
- pip
Linux:
# Create virtual environment
python3 -m venv .venv
# Activate virtual environment
source .venv/bin/activate
# Deactivate when done (optional)
deactivateWindows 11:
# Create virtual environment
python -m venv .venv
# Activate virtual environment
.venv\Scripts\Activate.ps1
# If you get execution policy error, run:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# Deactivate when done (optional)
deactivateLinux:
python -m pip install -r requirements.txtOr manually:
pip install richWindows 11:
pip install -r requirements.txtOr manually:
pip install richLinux:
chmod +x worklog_cli.py
sudo ln -s $(pwd)/worklog_cli.py /usr/local/bin/worklogWindows 11:
# Create batch file
echo @python "%~dp0worklog_cli.py" %* > worklog.bat
# Move to user directory (no admin required)
move worklog.bat C:\Users\YourUsername\AppData\Local\Microsoft\WindowsApps\
# Alternative: Add current directory to PATH (temporary)
$env:PATH += ";$(Get-Location)"Alternative PowerShell Alias (Recommended):
# Add to your PowerShell profile
echo "function worklog { python '$(Get-Location)\worklog_cli.py' @args }" >> $PROFILE
# Reload profile
. $PROFILENow you can run worklog instead of python worklog_cli.py
Linux:
python worklog_cli.py startWindows 11:
python worklog_cli.py startThis will:
- Create a daily log file (DD-MM-YYYY.md)
- Set your work start time
- Prompt for current sprint
- Show beautiful ASCII art header
Output:
β¦ β¦ββββ¦βββ¦ββ β¦ ββββββ
ββββ ββ β¦ββ β©β β β ββ β¦
ββ©βββββ©βββ© β© β©ββββββββ
βββββββββββββββββββββββββββββ
β π Starting Work Day β
βββββββββββββββββββββββββββββ
β
Created daily log
π Location: ~/work-logs/26-01-2026.md
π Start Time: 09:00
π Sprint: Sprint-14
Linux:
python worklog_cli.py logWindows 11:
python worklog_cli.py logInteractive prompts guide you through:
- β° Time range
- π« Task ID
- π·οΈ Tag selection (with numbers or names)
- π Description
- π Status (Done/In Progress/Started/Blocked)
- π― Epic/Project name
Example Output:
βββββββββββββββββββββββββββββ
β π Log Work Item β
βββββββββββββββββββββββββββββ
ββββββββββ³ββββββββββ³βββββββββββββββββββββββββββββ³ββββββββββββββ
β Time β Task ID β Description β Status β
β‘ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ©
β 09:00 β AUTH-123β @feature OAuth token logic β β
Done β
ββββββββββ΄ββββββββββ΄βββββββββββββββββββββββββββββ΄ββββββββββββββ
β
Added to Epic: Authentication System
Linux:
python worklog_cli.py statusWindows 11:
python worklog_cli.py statusShows your current work day overview with traffic light colors:
- π’ Green for completed tasks
- π‘ Yellow for in-progress items
- π΄ Red for blockers
Linux:
python worklog_cli.py endWindows 11:
python worklog_cli.py endThis will:
- Set end time
- Calculate total hours worked
- π Automatically pull today's git commits (hash, message, time)
- Add commits to "## Git Commits" section
- Prompt for tomorrow's priorities
Output:
βββββββββββββββββββββββββββββ
β π Ending Work Day β
βββββββββββββββββββββββββββββ
π Checking for git commits...
βββββββββ³ββββββββββ³βββββββββββββββββββββββββββββββββ
β Time β Hash β Message β
β‘βββββββββββββββββββββββββββββββββββββββββββββββββββ©
β 10:23 β a3f8c21 β feat: add OAuth token refresh β
β 14:15 β b7d9e43 β fix: cart calculation bug β
β 16:42 β c8e1f65 β docs: update API documentation β
βββββββββ΄ββββββββββ΄βββββββββββββββββββββββββββββββββ
β
Added 3 commit(s) to work log
β
Work day completed
π Start: 09:00
π End: 17:30
β±οΈ Total: 8.50h
How Git Integration Works:
- Runs automatically when you call
worklog end - Scans current git repository for commits since your work start time
- Extracts commit hash, timestamp, and message
- Adds to "## Git Commits" section in your daily log
- Excludes merge commits (--no-merges)
- Works in any git repository (no git-standup installation needed!)
Linux:
python worklog_cli.py summaryOr for custom period:
python worklog_cli.py summary --days 14Windows 11:
python worklog_cli.py summaryOr for custom period:
python worklog_cli.py summary --days 14This generates a beautiful breakdown by tag with traffic light colors and exports to markdown.
Edit the FEATURE_FLAGS dictionary in worklog_cli.py:
FEATURE_FLAGS = {
"auto_create_daily": True, # Auto-create daily log file
"git_integration": True, # Git commit integration β
NOW ENABLED
"auto_tag_validation": True, # Validate tags when logging
"weekly_summary": True, # Generate weekly summaries
"time_tracking": True, # Track start/end times
"epic_grouping": True, # Group tasks by Epic
"ascii_art": True, # Show ASCII art headers
}Command: python worklog_cli.py start
Description: Automatically creates a new daily log file with timestamp and sprint info.
Example Output:
βββββββββββββββββββββββββββββ
β π Starting Work Day β
βββββββββββββββββββββββββββββ
β
Created daily log
π Location: C:\Users\User\work-logs\27-01-2026.md
π Start Time: 07:49
π Sprint: Sprint-14
Command: python worklog_cli.py end
Description: Automatically pulls today's git commits and adds them to your log.
Example Output:
βββββββββββββββββββββββββββββ
β π Ending Work Day β
βββββββββββββββββββββββββββββ
π Checking for git commits...
βββββββββ³ββββββββββ³βββββββββββββββββββββββββββββββββ
β Time β Hash β Message β
β‘βββββββββββββββββββββββββββββββββββββββββββββββββββ©
β 10:23 β a3f8c21 β feat: add OAuth token refresh β
β 14:15 β b7d9e43 β fix: cart calculation bug β
β 16:42 β c8e1f65 β docs: update API documentation β
βββββββββ΄ββββββββββ΄βββββββββββββββββββββββββββββββββ
β
Added 3 commit(s) to work log
Command: python worklog_cli.py log
Description: Validates that tags are from the approved list when logging work items.
Example Output:
βββββββββββββββββββββββββββββ
β π Log Work Item β
βββββββββββββββββββββββββββββ
π·οΈ Tag selection (1-6): 7
β Invalid tag! Please choose from:
1. @feature - New features and enhancements
2. @bugfix - Bug fixes and patches
3. @review - Code reviews given/received
4. @docs - Documentation and ADRs
5. @support - Helping teammates
6. @meeting - Ceremonies and syncs
π·οΈ Tag selection (1-6): 1
β
Tag validated: @feature
Command: python worklog_cli.py summary
Description: Generates beautiful weekly summary reports with tag breakdowns.
Example Output:
βββββββββββββββββββββββββββββ
β π Weekly Summary Report β
βββββββββββββββββββββββββββββ
π’ Features: 8 tasks (12.5h)
π΄ Bug Fixes: 3 tasks (4.0h)
π‘ Reviews: 5 tasks (6.5h)
π΅ Meetings: 4 tasks (3.0h)
π Documentation: 2 tasks (2.5h)
β±οΈ Total Time: 28.5h
π Total Tasks: 22
β
Summary exported to: weekly-summary-27-01-2026.md
Command: python worklog_cli.py end
Description: Tracks start/end times and calculates total hours worked.
Example Output:
βββββββββββββββββββββββββββββ
β π Ending Work Day β
βββββββββββββββββββββββββββββ
β
Work day completed
π Start: 09:00
π End: 17:30
β±οΈ Total: 8.50h
π Daily Productivity: 85%
β‘ Average Task Time: 1.2h
Command: python worklog_cli.py log
Description: Groups tasks by Epic/Project for better organization.
Example Output:
βββββββββββββββββββββββββββββ
β π Log Work Item β
βββββββββββββββββββββββββββββ
π― Epic/Project name: Authentication System
ββββββββββ³ββββββββββ³βββββββββββββββββββββββββββββ³ββββββββββββββ
β Time β Task ID β Description β Status β
β‘ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ©
β 09:00 β AUTH-123β @feature OAuth token logic β β
Done β
ββββββββββ΄ββββββββββ΄βββββββββββββββββββββββββββββ΄ββββββββββββββ
β
Added to Epic: Authentication System
Command: python worklog_cli.py start
Description: Shows beautiful ASCII art headers for visual appeal.
Example Output:
β¦ β¦ββββ¦βββ¦ββ β¦ ββββββ
ββββ ββ β¦ββ β©β β β ββ β¦
ββ©βββββ©βββ© β© β©ββββββββ
βββββββββββββββββββββββββββββ
β π Starting Work Day β
βββββββββββββββββββββββββββββ
When disabled: Headers show as simple text without ASCII art borders.
Edit the CONFIG dictionary:
CONFIG = {
"log_directory": "~/work-logs", # Where to save logs
"date_format": "%d-%m-%Y", # DD-MM-YYYY format
"time_format": "%H:%M", # 24-hour time
"current_sprint": "Sprint-XX", # Default sprint name
"valid_tags": [...], # Your tag system
}View current config:
Linux:
python worklog_cli.py configWindows 11:
python worklog_cli.py config| Command | Description |
|---|---|
start |
Start your work day (creates daily log) |
log |
Log a work item interactively |
end |
End your work day (calculates hours) |
status |
Show current day status |
summary |
Generate weekly summary report |
config |
Show configuration |
The CLI supports these tags (adapted from bahmutov/daily-logs):
@feature- New features and enhancements (π’ Green)@bugfix- Bug fixes and patches (π΄ Red)@review- Code reviews given/received (π‘ Yellow)@docs- Documentation and ADRs@support- Helping teammates@meeting- Ceremonies and syncs (π΅ Blue)
The CLI automatically integrates with your git repository to pull commits when you end your work day.
Features:
- β
Automatically runs when you call
worklog end - β Scans current working directory for git repository
- β Pulls only commits made TODAY (since midnight)
- β
Filters to YOUR commits only (uses
git config user.name) - β Displays commit hash, timestamp, and message
- β Adds to "## Git Commits" section in your log
- β Beautiful table display in terminal
- β No git-standup installation required (uses native git)
What gets logged:
## Git Commits
| Time | Hash | Commit Message |
|------|------|----------------|
| 10:23 | a3f8c21 | feat: add OAuth token refresh |
| 14:15 | b7d9e43 | fix: cart calculation bug |
| 16:42 | c8e1f65 | docs: update API documentation |Requirements:
- Must be in a git repository
- Must have commits made today
- Git must be installed and accessible from terminal
To disable:
Set "git_integration": False in FEATURE_FLAGS
Linux:
~/work-logs/
βββ .worklog_config.json # Sprint and settings
βββ 26-01-2026.md # Daily log files
βββ 27-01-2026.md
βββ weekly-summary-26-01-2026.md # Generated summaries
Windows 11:
C:\Users\YourUsername\work-logs\
βββ .worklog_config.json # Sprint and settings
βββ 26-01-2026.md # Daily log files
βββ 27-01-2026.md
βββ weekly-summary-26-01-2026.md # Generated summaries
The CLI uses semantic colors throughout:
- π’ Green - Success, completed tasks, start day
- π‘ Yellow - Warnings, in-progress, updates needed
- π΄ Red - Errors, blockers, end day
- π΅ Blue - Information, meetings, neutral items
- π£ Magenta - Summaries, reports, analytics
Linux:
# Morning
worklog start
# Throughout the day
worklog log # Add work items as you complete them
worklog status # Check your progress
# End of day
worklog end
# Friday afternoon
worklog summary # Generate weekly report for your managerWindows 11:
# Morning
worklog start
# Throughout the day
worklog log # Add work items as you complete them
worklog status # Check your progress
# End of day
worklog end
# Friday afternoon
worklog summary # Generate weekly report for your managerThe generated markdown files work perfectly with Obsidian:
- Set
log_directoryto your Obsidian vault path - Use Dataview plugin for queries
- Create backlinks with
[[DD-MM-YYYY]]format - Add to daily notes workflow
Import Error: rich not found
Linux:
pip install richWindows 11:
pip install richPermission Denied (Linux only)
chmod +x worklog_cli.pyLog directory doesn't exist
- Linux: The script auto-creates
~/work-logs/ - Windows 11: The script auto-creates
C:\Users\YourUsername\work-logs\ - Or set custom path in CONFIG
- Scan multiple git repositories at once
- Jira/Linear API integration
- Automatic standup report generation
- Pomodoro timer integration
- Export to PDF/HTML
- VS Code extension
MIT License - Feel free to customize for your workflow!
Built for developers who love beautiful CLIs and automated workflows.
Pro Tip: Create a shell alias for even faster access:
Linux (Bash):
echo "alias wl='python ~/worklog_cli.py'" >> ~/.bashrc
source ~/.bashrc
# Now just use:
wl start
wl log
wl endWindows 11 (PowerShell):
# Add to your PowerShell profile
echo "function wl { python C:\path\to\worklog_cli.py @args }" >> $PROFILE
# Reload profile
. $PROFILE
# Now just use:
wl start
wl log
wl end