Tempo ⏱️
Simple, Fast Project Time Tracking for Developers
A lightweight Rust-powered time tracking CLI that automatically detects your project context and tracks time across multiple projects. Built for developers who want accurate time tracking without complexity.
Why Tempo?
Simple & Effective: Start tracking time in seconds - no complex setup or configuration required.
Developer-Focused: Automatically detects Git repositories and project structures. Understands your workflow.
Fast & Lightweight: Rust-powered daemon uses minimal system resources. Commands respond instantly.
Privacy-First: All data stored locally in SQLite. No cloud services, no data collection.
Cross-Platform: Works on macOS, Linux, and Windows from any terminal.
Installation
Python/UV (Recommended)
# Install with uv (fastest)
# Or with pip
# Start using immediately
Rust
# Install from crates.io
# Or build from source
&&
Core Features
⚡ Time Tracking
- Automatic Project Detection - Recognizes Git repositories, package.json, Cargo.toml files
- Session Management - Start, stop, pause, and resume tracking sessions
- Background Daemon - Lightweight service runs automatically in background
- Multi-Project Support - Track multiple projects without switching configurations
📊 Project Management
- Project Organization - Initialize and manage project tracking
- Session History - Browse and edit past tracking sessions
- Time Reports - Generate reports with CSV/JSON export
- Project Archiving - Archive completed projects while preserving data
🎨 User Interface
- Interactive Dashboard - Real-time tracking status and project overview
- Terminal UI - Browse projects and sessions with keyboard navigation
- Timer Interface - Visual timer with progress tracking
- Configurable Settings - Customize behavior through configuration files
Quick Start
# Start the daemon
# Initialize a project (in your project directory)
# Start tracking
# Check status
# View dashboard
# Stop tracking
# Generate report
Available Commands
Session Management
Project Operations
Reporting & Analytics
Interactive Interfaces
Configuration
Daemon Control
Configuration
Tempo stores configuration in ~/.tempo/config.toml:
= 15
= true
= "terminal"
= "info"
Available settings:
idle_timeout_minutes- Auto-pause after inactivity (default: 15)auto_pause_enabled- Enable automatic pausing (default: true)default_context- Default tracking context (default: "terminal")log_level- Logging verbosity: error, warn, info, debug (default: "info")
Update settings with: tempo config set <key> <value>
Data Storage
All data is stored locally in ~/.tempo/:
~/.tempo/
├── data.db # SQLite database (all tracking data)
├── config.toml # Configuration settings
├── daemon.sock # IPC socket for daemon communication
├── daemon.pid # Daemon process ID
└── logs/
└── tempo.log # Application logs
Privacy: No data ever leaves your machine. No telemetry or tracking.
Project Detection
Tempo automatically detects projects by scanning for:
- Git repositories (
.git/directory) - Node.js projects (
package.json) - Rust projects (
Cargo.toml) - Python projects (
pyproject.toml,setup.py,requirements.txt) - Go projects (
go.mod) - Java projects (
pom.xml,build.gradle) - And many more...
When you run tempo session start in a recognized project directory, tracking begins automatically.
Performance
- Memory Usage: < 1MB for daemon process
- CPU Overhead: Negligible on modern systems
- Startup Time: < 100ms for all commands
- Database Size: ~1MB per year of tracking data
- Battery Impact: Minimal on laptops
Contributing
Contributions welcome! This is an active open-source project.
Development Setup
Pull Requests
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Submit a pull request with clear description
License
MIT License - see LICENSE file for details.
Free to use in personal and commercial projects.
Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Available in the repository wiki
Built for developers who value simplicity and accuracy in time tracking.
⭐ Star the project if it helps you track time effectively!
🚀 Get started: uv install tempo-cli