kasl - Key Activity Synchronization and Logging
Overview 📖
kasl is a comprehensive command-line utility designed to streamline work activity tracking, task management, and productivity reporting. It automatically monitors your work sessions, tracks breaks, manages tasks, and generates detailed reports for better productivity insights.
Current Version: 1.0.0
✨ Features
🔍 Activity Monitoring
- Automatic work session tracking - Detects when you start and end your workday
- Smart break detection - Automatically records breaks based on inactivity
- Background monitoring - Runs silently in the background
- Cross-platform binaries - Windows x64, Linux x64, and macOS arm64 releases; unix autostart integration lands in 1.0.0
📋 Task Management
- CRUD operations - Create, read, update, and delete tasks
- Task templates - Save frequently used tasks as reusable templates
- Tagging system - Organize tasks with custom tags and colors
- Progress tracking - Track task completion percentage
- Batch operations - Edit or delete multiple tasks at once
📊 Reporting & Analytics
- Daily reports - Comprehensive view of work intervals and tasks
- Monthly summaries - Aggregated statistics and productivity metrics
- Productivity calculation - Measure actual work time vs. presence time
- Short interval detection - Identify and merge fragmented work periods
- Export capabilities - Export data to CSV, JSON, or Excel formats
⚙️ Advanced Features
- Time adjustment - Correct work times with preview before applying
- Database migrations - Safe schema updates when upgrading (debug builds only)
- API integrations - Connect with GitLab, Jira, and custom APIs
- Autostart support - Start monitoring automatically on system boot
- Debug logging - Detailed logs for troubleshooting
🚀 Installation
Quick Install (Recommended)
Via npm (downloads the prebuilt binary; Windows x64 for now):
Via cargo (builds from source on any platform; the crate is named kasl-cli, the binary stays kasl):
Install Script
Install kasl using curl:
Or using wget:
Build from Source
Requirements:
- Rust 1.70 or higher
- Git
📚 Quick Start
Initial Setup
# Configure kasl interactively
# Start activity monitoring
# Enable autostart on system boot
Daily Workflow
# Create a new task
# Update task progress
# View today's report
# Manually end workday (if needed)
# Submit daily report
📖 Command Reference
Core Commands
watch - Activity Monitoring
# Start monitoring in background
# Run in foreground (debug mode)
# Stop monitoring
task - Task Management
# Create task
# Create from template
# View tasks
# Edit tasks
# Remove tasks
Scripted flows can add -y/--yes to remove to skip the confirmation prompt, and add errors instead of hanging when --name is missing outside an interactive terminal.
inbox - Jira Inbox
The watcher polls Jira in the background and shows a desktop toast when a new issue is assigned to you (see the jira_inbox config section).
report - Report Generation
# View report
# Submit reports
end - Manual Workday End
# Manually end today's workday
template - Task Templates
# Manage templates
tag - Tag Management
# Manage tags
export - Data Export
# Export data
Utility Commands
sum - Monthly Summary
pauses - Pauses and Missed Absences
# Record an absence the monitor missed
autostart - System Integration
update - Self-Update
completions - Shell Completions
migrations - Database Management (Debug Only)
Note: This command is only available in debug builds.
⚙️ Configuration
Configuration file is stored at:
- Windows:
%LOCALAPPDATA%\lacodda\kasl\config.json - macOS:
~/Library/Application Support/lacodda/kasl/config.json - Linux:
~/.local/share/lacodda/kasl/config.json
Configuration Options
🔍 Debugging
Enable debug logging for troubleshooting:
# Enable debug mode with full formatting
KASL_DEBUG=1
# Use standard Rust logging
RUST_LOG=kasl=debug
# Trace level for maximum verbosity
RUST_LOG=kasl=trace KASL_LOG_FORMAT=full
🗄️ Database
kasl uses SQLite for local data storage. The database is located at:
- Windows:
%LOCALAPPDATA%\lacodda\kasl\kasl.db - macOS:
~/Library/Application Support/lacodda/kasl/kasl.db - Linux:
~/.local/share/lacodda/kasl/kasl.db
Backup
Regular backups are recommended:
# Export all data
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
Development Setup
# Clone repository
# Run tests
# Run with debug logging
KASL_DEBUG=1
# Build for release
# Debug build (enables migrations command)
Code Style
We maintain consistent code documentation standards. Please refer to our style guide:
- Documentation Style Guide - Complete guide for writing documentation
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Built with Rust
- CLI powered by clap
- Database management with rusqlite
- Excel export via rust_xlsxwriter
📞 Support
- 📧 Email: lahtachev@gmail.com
- 🐛 Issues: GitHub Issues
- 📖 Documentation: kasl.lacodda.com
Made with ❤️ by Kirill Lakhtachev