Worklog is a powerful, privacy-focused Command Line Interface (CLI) designed for professionals who want to efficiently track their work without ever leaving the terminal. It operates entirely locally, storing all data on your machine to ensure your logs remain private and under your control.
Built with performance in mind, Worklog helps you manage your day by allowing you to start tasks, log progress, take breaks, and switch contexts with simple, intuitive commands. At the end of the day, it generates a detailed report of your activities, giving you a clear picture of how you spent your time.
- Local-First Storage: All your data is stored in a hidden
~/.worklog-records/directory on your machine. No cloud, no syncing, no third-party access. - Detailed Time Tracking: Every task state (active, paused) is logged with precise start and end times, ensuring accurate reports.
- Context Switching: Seamlessly switch between tasks while Worklog automatically handles the state changes.
- Task & Break Management: Start new tasks, pause them for breaks, and resume right where you left off.
- End-of-Day Reports: Generate a comprehensive summary of your daily tasks, including total time spent on each.
- Human-Readable Data: Daily logs are stored in a clean, human-readable JSON format.
- Colorful & Intuitive Interface: A polished and easy-to-use command-line experience.
Worklog is distributed as a standalone native binary, meaning you can start tracking your time immediately without needing Node.js, npm, or any other dependencies installed on your system.
curl -L https://github.com/Kevin-Rozario/worklog-cli/releases/download/v1.0.0/worklog-v1.0.0-linux-x64.tar.gz | tar xz
sudo mv worklog-linux /usr/local/bin/worklog
sudo chmod +x /usr/local/bin/worklogcurl -L -O https://github.com/Kevin-Rozario/worklog-cli/releases/download/v1.0.0/worklog-v1.0.0-macos-arm64.zip
unzip -q worklog-v1.0.0-macos-arm64.zip
sudo mv -f worklog-macos /usr/local/bin/worklog
chmod +x /usr/local/bin/worklog
# Optional: Remove macOS quarantine for unsigned binaries
sudo xattr -dr com.apple.quarantine /usr/local/bin/worklogIf you prefer to build Worklog from source, ensure you have Node.js and npm installed. Then, follow these steps:
git clone https://github.com/Kevin-Rozario/worklog.git
cd worklogpnpm install
pnpm run buildpnpm link --globalWorklog provides a simple command-based workflow to manage your day.
Begin your day or a new task. This is your first command of the day.
worklog start "My first task"Use log to record the progress done on the currently active task.
worklog log "Work on feature B"Take a break without losing your place.
worklog pause # Pauses the active task
worklog resume # Resumes the paused taskJump to another existing task from the current day.
worklog switch <task-name>Note: Find the
task-nameby using theworklog statuscommand.
Check the status of your current task, including active time and breaks.
worklog statusSee recent logs for the currently active task.
worklog log:viewGet a summary of all tasks and time spent. You can also generate reports for past days.
worklog reportMark the current task as done.
worklog doneSet all the tasks / breaks a hard stop at the end of the day.
worklog finishWorklog stores all data locally in the ~/.worklog-records/ directory in your home folder. Each day's activities are saved in a separate YYYY-MM-DD.json file. This local-first approach ensures that your data remains private and entirely under your control.
The JSON files are human-readable, allowing you to inspect or back up your data easily.
Contributions are welcome! If you'd like to improve Worklog, please follow these steps:
- Fork the repository.
- Create a new feature branch (
git checkout -b feature/your-feature). - Make your changes.
- Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/your-feature). - Open a new Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.