Skip to content

DevLog: Beautiful CLI for Developer Work Logging Automate your daily work logs with gorgeous Rich UI. Track time, log tasks by Epic, auto-pull git commits with hash & timestamps. Generate weekly reports for your manager. Built for developers in Agile/Scrum teams. Markdown-based, Obsidian-ready, feature flags included. No more manual timesheets!

License

Notifications You must be signed in to change notification settings

Web-Dev-Codi/DevLogger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🚦 Work Log CLI - Beautiful Developer Logging

A gorgeous command-line tool for automating your daily work logging workflow with Rich UI, ASCII art, and traffic light color patterns.

✨ Features

  • 🎨 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

πŸ“¦ Installation

Prerequisites

  • Python 3.7+
  • pip

Setup Virtual Environment (Recommended)

Linux:

# Create virtual environment
python3 -m venv .venv

# Activate virtual environment
source .venv/bin/activate

# Deactivate when done (optional)
deactivate

Windows 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)
deactivate

Install Dependencies

Linux:

python -m pip install -r requirements.txt

Or manually:

pip install rich

Windows 11:

pip install -r requirements.txt

Or manually:

pip install rich

Make Executable (Optional)

Linux:

chmod +x worklog_cli.py
sudo ln -s $(pwd)/worklog_cli.py /usr/local/bin/worklog

Windows 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
. $PROFILE

Now you can run worklog instead of python worklog_cli.py

πŸš€ Quick Start

1. Start Your Work Day

Linux:

python worklog_cli.py start

Windows 11:

python worklog_cli.py start

This 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

2. Log Work Items

Linux:

python worklog_cli.py log

Windows 11:

python worklog_cli.py log

Interactive 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

3. Check Status

Linux:

python worklog_cli.py status

Windows 11:

python worklog_cli.py status

Shows your current work day overview with traffic light colors:

  • 🟒 Green for completed tasks
  • 🟑 Yellow for in-progress items
  • πŸ”΄ Red for blockers

4. End Your Work Day (with Git Integration)

Linux:

python worklog_cli.py end

Windows 11:

python worklog_cli.py end

This 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!)

5. Generate Weekly Summary

Linux:

python worklog_cli.py summary

Or for custom period:

python worklog_cli.py summary --days 14

Windows 11:

python worklog_cli.py summary

Or for custom period:

python worklog_cli.py summary --days 14

This generates a beautiful breakdown by tag with traffic light colors and exports to markdown.

πŸŽ›οΈ Feature Flags

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
}

πŸ“‹ Feature Flag Commands & Examples

πŸš€ auto_create_daily - Auto-Create Daily Log

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

πŸ”„ git_integration - Git Commit Integration

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

🏷️ auto_tag_validation - Tag Validation

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

πŸ“Š weekly_summary - Weekly Summaries

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

⏰ time_tracking - Time Tracking

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

🎯 epic_grouping - Epic Grouping

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

🎨 ascii_art - ASCII Art Headers

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.

βš™οΈ Configuration

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 config

Windows 11:

python worklog_cli.py config

πŸ“‹ All Commands

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

🏷️ Tag System

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)

πŸ”€ Git Integration

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

πŸ“ File Structure

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

🎨 Traffic Light Colors

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

πŸ”„ Typical Workflow

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 manager

Windows 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 manager

🀝 Integration with Obsidian

The generated markdown files work perfectly with Obsidian:

  1. Set log_directory to your Obsidian vault path
  2. Use Dataview plugin for queries
  3. Create backlinks with [[DD-MM-YYYY]] format
  4. Add to daily notes workflow

πŸ› Troubleshooting

Import Error: rich not found

Linux:

pip install rich

Windows 11:

pip install rich

Permission Denied (Linux only)

chmod +x worklog_cli.py

Log 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

πŸš€ Future Enhancements

  • Scan multiple git repositories at once
  • Jira/Linear API integration
  • Automatic standup report generation
  • Pomodoro timer integration
  • Export to PDF/HTML
  • VS Code extension

πŸ“„ License

MIT License - Feel free to customize for your workflow!

πŸ‘¨β€πŸ’» Author

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 end

Windows 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

About

DevLog: Beautiful CLI for Developer Work Logging Automate your daily work logs with gorgeous Rich UI. Track time, log tasks by Epic, auto-pull git commits with hash & timestamps. Generate weekly reports for your manager. Built for developers in Agile/Scrum teams. Markdown-based, Obsidian-ready, feature flags included. No more manual timesheets!

Topics

Resources

License

Stars

Watchers

Forks