rTimelogger is a cross-platform command-line time tracking tool written in Rust. It tracks working time using IN / OUT events, supports multiple locations, lunch rules, working gaps, and computes expected exit time and daily surplus accurately.
๐ Whatโs new in v0.8.0
Version 0.8.0 is the first stable release based on the new timeline engine.
โ Timeline engine (stable)
-
Unlimited IN / OUT pairs per day
-
Deterministic reconstruction: events โ timeline โ pairs
-
Correct handling of:
- lunch breaks
- working gaps
- multi-position days
-
Legacy
work_sessionslogic fully retired
๐ Working gap support
Time between pairs can be explicitly controlled:
--work-gapโ gap counts as working time--no-work-gapโ gap does not count as working time
Features:
-
Stored in the database
-
Editable retroactively
-
Fully reflected in:
- worked time
- expected exit
- surplus
Visual indicators:
- ๐ working gap
- โ๏ธ non-working gap
๐งฎ Accurate calculations
-
Worked time:
- sum of all pairs
- minus non-working gaps
- plus working gaps only when marked
-
Expected exit:
- based on first IN
- configured minimum working time
- lunch rules and lunch window
-
Surplus is correct in all multi-pair scenarios
๐ง Consistency improvements
-
OUTevents inherit position fromINwhen--posis omitted -
Pair details show the actual position of each pair
-
Clean event listing:
- no duplicated dates
- aligned output
-
Unified CLI message system:
- โน๏ธ info ยท โ ๏ธ warning ยท โ error ยท โ success
โจ Features
-
Event-based time tracking (IN / OUT)
-
Multiple working positions:
OOfficeRRemoteCClient / On-siteHHolidayMMixed
-
Automatic calculation of:
- expected exit
- daily surplus
-
Configurable lunch rules
-
Event mode with:
- pairing
- per-pair summaries
- JSON output
- unmatched detection
-
Internal audit log
-
Safe database migrations with automatic backups
-
Cross-platform (Linux, macOS, Windows)
๐ฆ Installation
๐ฆ Cargo (recommended)
๐ง Arch Linux (AUR)
# or
๐บ Homebrew (macOS / Linux)
โ๏ธ Configuration
Initialize configuration and database:
Example rtimelogger.conf:
database: /home/user/.rtimelogger/rtimelogger.sqlite
default_position: O
min_work_duration: 8h
min_duration_lunch_break: 30
max_duration_lunch_break: 90
separator_char: "-"
show_weekday: None # None | Short | Medium | Long
Override database path at runtime:
๐งญ Main commands overview
| Command | Description |
|---|---|
init |
Initialize DB and config |
add |
Add or edit IN / OUT events |
list |
Show sessions, events, or details |
del |
Delete events or pairs (with confirmation) |
backup |
Backup database (optional compression) |
export |
Export data (CSV / JSON / XLSX / PDF) |
db |
Database utilities |
config |
Manage configuration file |
log |
Show internal audit log |
โ Add work sessions โ rtimelogger add
Examples:
๐ List data โ rtimelogger list
โน๏ธ Note on --details
--details is valid only with:
--today--period <single day>
Examples:
๐๏ธ Delete data โ rtimelogger del
All deletions require confirmation and automatically reindex pairs.
๐พ Backup database โ rtimelogger backup
- confirmation before overwrite
- ZIP on Windows
- TAR.GZ on Linux/macOS
๐ค Export data โ rtimelogger export
Supported formats:
csvjsonxlsxpdf
Output path must be absolute.
๐๏ธ Database utilities โ rtimelogger db
โ๏ธ Configuration management โ rtimelogger config
Missing fields are added automatically with defaults.
๐ Internal audit log โ rtimelogger log
Shows timestamped internal operations (add, del, migrate, backup, โฆ).
๐ Upgrading from older versions
If you are upgrading from 0.7.x or earlier, read:
โก๏ธ UPGRADE-0.7-to-0.8.md
This document explains:
- schema changes
- migration behavior
- removed legacy features
- important behavioral differences
๐ Documentation
- ๐ CHANGELOG.md
- ๐ UPGRADE-0.7-to-0.8.md
๐ License
MIT License โ see LICENSE.