Worklie is a production-grade, local-first CLI tool that reconstructs developer daily and weekly work narratives from system activity traces.
Modern developers experience high-context switching:
- Run hundreds of terminal commands
- Switch between repositories
- Debug systems and run containers
- Write commits, read logs, test APIs
When standup meetings happen, developers struggle to recall their work accurately. Worklie converts machine activity traces into human-readable work narratives automatically.
"Your computer already knows what you worked on."
Worklie simply translates activity signals (shell history, git logs, timestamps) into structured work reports.
Generate a daily work summary with detected activities, commits, and files modified.
$ worklie report
Daily Work Summary
==================
Project: my-project
Activities Detected:
• Fixed authentication bug
• Updated API endpoints
Commits:
• 2 commits
• fix(auth): token validation
• feat(api): new endpoint
Files Modified:
• auth.js
• api/routes.js
Focus Areas:
• authentication
• debuggingGenerate a weekly engineering report with aggregated metrics and contributions.
Generate a standup-optimized report with Yesterday/Today/Blockers structure.
Show engineering statistics (commands executed, commits made, unique commands).
Analyze your main focus areas and most-used tools.
$ worklie focus
Focus Analysis
==============
Primary Domain: authentication
Work Type: debugging
Most Used Tools:
• git (152x)
• npm (74x)
• vim (45x)Generate a release changelog from recent commits, automatically categorizing features and bug fixes.
Generate a PR (Pull Request) description from your recent activity.
$ worklie pr
PR Description
===============
## Summary
5 commits, 3 activities
## Changes
- Fixed authentication bug
- Updated API error handling
- Improved Docker configurationGenerate resume bullets from your engineering work for portfolios or professional profiles.
Worklie uses a 4-layer production architecture:
- HistoryCollector: Reads shell history from zsh/bash (with timestamps and noise filtering)
- GitCollector: Extracts git repository metadata and recent commits
- HistoryParser: Parses timestamped commands into structured data
- GitParser: Parses commit metadata (hash, timestamp, author, message)
- ActivityClusterer: Groups commands and commits into meaningful activities using temporal clustering (30-minute time windows)
- ContextInferenceEngine: Infers project context, domain, and work type from git metadata
- DailyReportGenerator: Generates human-readable daily reports and JSON output
- WeeklyReportGenerator: Aggregates daily data for weekly summaries
- StandupReportGenerator: Formats data for standup meetings
- First run: ~400-550ms (includes filesystem I/O)
- Subsequent runs: ~50-100ms (benefits from OS filesystem caching)
- Memory: ~5-10MB typical usage
- Data filtering: Automatically limits to last 24 hours of recent commands
✅ Local-first: All data processing happens on your machine ✅ No telemetry: Zero external API calls by default ✅ Zero cloud tracking: Your work stays on your computer ✅ Open source: Full source code transparency
git clone https://github.com/yourusername/worklie.git
cd worklie
cargo build --release
sudo mv target/release/worklie /usr/local/bin/- Rust 1.70+
- Git (for repository metadata)
- Zsh or Bash with history enabled
$ worklie standup$ worklie weekly$ worklie report --json > daily-report.json$ worklie focus$ worklie changelog > CHANGELOG.md$ worklie pr$ worklie resumeWorklie reads:
- Shell history: Commands from
~/.zsh_historyor~/.bash_history - Timestamps: Extracted from zsh history format (
: timestamp:0;command) - Git metadata: Recent commits, branch info, author details
- Removes noise (ls, cd, pwd, etc.)
- Limits to last 24 hours
- Caps at 1000 recent commands for efficiency
Groups commands into tasks using:
- Temporal proximity: 30-minute time windows
- Semantic context: Git commit associations
- File extraction: Identifies modified files
Determines work type from:
- Git branch names (feature-, bugfix-, etc.)
- Commit message patterns (fix:, feat:, etc.)
- Recent command patterns
Outputs in multiple formats:
- Plain text: Human-readable formatted reports
- JSON: Structured data for integration and automation
- ✅ Fast startup and execution (<100ms after caching)
- ✅ Memory efficient (minimal allocations)
- ✅ Single binary distribution (no runtime dependencies)
- ✅ Production-grade error handling
- ✅ User privacy and control
- ✅ Offline capability
- ✅ No latency from API calls
- ✅ No data leaving user's machine
- ✅ Easy shell integration and piping
- ✅ Perfect for CI/CD pipelines
- ✅ Scriptable and automation-friendly
- ✅ Works with existing developer tools
Shell history configuration (already works out-of-the-box):
Zsh (~/.zshrc):
setopt EXTENDED_HISTORY # Add timestamps to history
HISTFILE=~/.zsh_history
HISTSIZE=50000
SAVEHIST=50000Bash (~/.bashrc):
export HISTFILE=~/.bash_history
export HISTFILESIZE=50000
export HISTSIZE=50000This tool was inspired by observing that:
- Developers generate massive amounts of activity traces daily
- These traces contain complete information about work done
- Human memory is episodic and unreliable for work reconstruction
- The gap between "machine knows what I did" and "I remember what I did" is unacceptable
Worklie bridges this gap with behavioral telemetry interpretation - the same principle used in:
- Distributed systems observability
- Application performance monitoring
- Development analytics
Contributions welcome! Areas for enhancement:
- Additional collectors (file modification times, cloud IDE activity)
- Machine learning for smarter activity clustering
- Export to external tools (Jira, Linear, Asana)
- Real-time activity monitoring daemon
- Web dashboard for historical analysis
# Run all tests
cargo test
# Run tests with output
cargo test -- --nocaptureTest Coverage: 15 unit tests covering collectors, parsers, clustering, and reporting
MIT License - See LICENSE file for details
| Operation | Time | Notes |
|---|---|---|
| First run (full scan) | 400-550ms | Includes filesystem I/O |
| Cached run | 50-100ms | Filesystem cache benefit |
| Memory usage | 5-10MB | Typical session |
| Max history limit | 1000 commands | Configurable |
- v0.2.0: Caching layer with persistent storage
- v0.3.0: Multi-repository support
- v0.4.0: Web UI for visualization
- v0.5.0: AI-powered activity categorization
Status: Production-Ready (v0.1.0) Last Updated: March 2026