A personal time tracking tool that actually makes sense.
Uuri is a lightweight, console-based time tracking application built with Laravel Zero. Born from personal frustration with overcomplicated time management tools, Uuri focuses on simplicity and speed while providing seamless integration with Moneybird for billing.
Most time tracking tools are either too complex, too slow, or require you to think too much about what you're doing. Uuri was created from a simple desire:
Just start tracking time quickly, describe what you did when you're done, and sync it to Moneybird effortlessly.
No complicated projects, no endless forms, no heavy interfaces. Just fast, intuitive time tracking that stays out of your way.
- One command to rule them all:
php application report
- Smart state detection: Automatically handles running, paused, or multiple timers
- No upfront planning: Start tracking instantly, add descriptions when you're done
- Start tracking: No description needed, just hit enter and go
- End tracking: Describe what you accomplished
- Smart continuation: Handles multiple running timers gracefully
- Client selection: Choose from your Moneybird clients with smart search
- Automatic sync: Push time entries to Moneybird with one command
- Billing ready: All entries sync as billable time automatically
- SQLite storage: Fast, reliable, no server needed
- Sync tracking: Never duplicate entries in Moneybird
- Duration formatting: Human-readable time displays (2h 30m 15s)
- PHP 8.1+
- Composer
# Clone and install
git clone https://github.com/janyksteenbeek/uuri.git
cd uuri
composer install
# Setup database
php application migrate
# Configure Moneybird (optional)
php application token YOUR_MONEYBIRD_API_TOKEN
Start tracking time:
php application report
# ⏰ Time tracking started!
With description (optional):
php application report "Working on website redesign"
Stop tracking and add details:
php application report
# Shows current timer, choose "End current time entry"
# Enter description: Fixed login bug and improved UX
# Assign to Moneybird client? [Y/n]
When you have one timer running:
- Shows current time and duration
- Options: End timer, Start new timer, Cancel
When you have multiple timers:
- Lists all running timers with durations
- Options: End specific timer, End all timers, Start new timer
Configure your API token:
php application token YOUR_MONEYBIRD_API_TOKEN
Sync time entries:
# Sync all ready entries
php application sync
# Dry run (see what would sync)
php application sync --dry-run
# Sync specific entry
php application sync --id=123
# Bulk sync without confirmation
php application sync --all
Client Selection:
- By number: Type
5
to select client #5 - By search: Type
google
to find "Google Cloud EMEA" - Smart matching: Partial names work perfectly
Command | Description | Examples |
---|---|---|
report |
Start/stop time tracking | php application report |
sync |
Sync entries to Moneybird | php application sync --dry-run |
token |
Manage Moneybird token | php application token --show |
Report Command:
php application report [description]
Sync Command:
php application sync [--dry-run] [--id=ID] [--all]
Token Command:
php application token [token] [--show] [--remove]
- Start fast: Just run
php application report
and start working - Describe later: Add meaningful descriptions when ending timers
- Batch sync: Use
sync --all
at end of day/week - Client search: Type partial names instead of scrolling through lists
- Duration minimum: Entries sync with minimum 1 minute to Moneybird
- Client caching: Client names are cached for faster display
- Duplicate prevention: Synced entries are marked to prevent re-sync
- Description reuse: Option to use time entry description for Moneybird
Built with:
- Laravel Zero: Lightweight console framework
- SQLite: Local database storage
- Moneybird API: Time entry synchronization
- PHP 8.1+: Modern PHP features
Architecture:
- TimeEntry Model: Core time tracking logic
- MoneybirdHelper: API integration and client management
- Commands: User interface and workflow management
Uuri was built for personal use but improvements are welcome! Feel free to:
- Report bugs or suggest features
- Submit pull requests
- Share your workflow improvements
MIT License - Feel free to use this for your own time tracking needs.
Created out of frustration with existing time tracking tools that require too much thinking upfront. Sometimes you just want to start working and figure out the details later.