|0.1.2||Apr 23, 2021|
|0.1.1||Jan 14, 2021|
|0.1.0||Dec 18, 2020|
#250 in Command line utilities
Inverted command line time tracking.
Yes. Another time tracking application. Rejoice, for all your time tracking needs will finally be satisfied.
The mentality and core concept. In most time tracking applications you have to specify an activity or project when you start tracking your time on it. In other words: you need to already know what you'll be doing before you're doing it.
In dlog, you don't need to specify an activity or project until you're ready to stop the entry. The general flow, therefore, looks like this:
dlog start # starts a new incomplete time entry dlog fill shower # after you're done showering dlog fill breakfast:toast # "breakfast" is the activity, "toast" is the project dlog fill workout -m "Good workout today." dlog fill checking emails dlog fill coding:dlog +rust +tests # "rust" and "tests" are tags # Oops! I took a break but forgot to track it! dlog fill reddit --to "10 minutes ago" dlog fill ...
This kind of workflow personally suits me better, but if you prefer to specify what you're doing when you start doing it rather than when you stop, I recommend watson.
- "inverted" time tracking (specify an activity when you stop tracking, not when you start)
- print a tabular history of all your past time entries (
- print a (optionally filtered) summary showing you a summarized report of where you
spend your time in a given time frame (
- blazingly fast performance even when dealing with tens of thousands of time entries
Feel free to open an issue if you'd like to request a new feature or improvement!
If you have Rust installed, the easiest and recommended way to install dlog is via:
cargo install dlog
If you don't have Rust installed, you can find Debian binaries for the latest version under the Releases section. For any other platform, you'll have to install Rust and use the above command to install dlog at the moment.
Note: If you have some experience with cross-compilation bundles for Rust binaries, I'd appreciate any help you can render to set up installable binaries on other systems as well.
Entries are stored in CSV (specify a custom directory by setting the environment variable
and share the following structure:
timestamp_start, timestamp_end, activity, project, tags, message
The activity is the base component of each time entry, making it the only mandatory argument when using
dlog fill. If you generally think in terms of projects and not activities, it may help you to come up
with the most general activity you can think of for a set of projects. For instance, "work" as an activity
for all work-related projects. This allows you to efficiently group a set of entries, which is useful for