https://github.com/smortex/wtr
A time tracking daemon to mesure the time you spend working on different projects.
https://github.com/smortex/wtr
time tracker
Last synced: 5 months ago
JSON representation
A time tracking daemon to mesure the time you spend working on different projects.
- Host: GitHub
- URL: https://github.com/smortex/wtr
- Owner: smortex
- License: bsd-2-clause
- Created: 2023-05-01T03:40:28.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2026-01-03T01:20:04.000Z (5 months ago)
- Last Synced: 2026-01-05T16:38:48.442Z (5 months ago)
- Topics: time, tracker
- Language: C
- Homepage:
- Size: 266 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Work Time Recorder
A time tracking daemon to measure the time you spend working on different projects.
## Goals
* No user interaction to start / stop working on a project: I can't format my mind to add toil actions when I have something to do, so no "start" and "stop" buttons;
* Ability to work on multiple projects in parallel: I contribute to a lot of Free Software as a part of my day-to-day work, I want to track the time I spend on each of them;
* Ability to nest projects one inside another: one organization I am working for may own multiple projects, I want to track both the time spent working for this organization and on each project.
## How it works
The daemon `wtrd(1)` regularly walk through the user processes and check their working directory. These working directories are compared to projects roots: if any process' working directory is in a project root, this project is considered active.
## Usage
Assuming the following directory tree for the user `~coyote` who wants to track the time spent on 3 projects, `A`, `B` and `C`, while also tracking the time spent for their employer `ACME` who owns the `A` and `B` projects:
```
~coyote
|-> ACME
| |-> A
| `-> B
`-> C
```
This user can create / edit their `wtrd(1)` configuration file with:
```sh-session
coyote@home ~ $ wtr edit
```
This will bring their editor where they can describe their hierarchy using ini-style syntax where each project's "friendly name" is a section containing a single `root` key with the path to the directory to consider the root of the project:
```ini
[A]
root=~/ACME/A
[B]
root=~/ACME/B
[C]
root=~/C
[ACME]
root=~/ACME
```
They then start the `wtrd(1)` daemon, and can use `wtr(1)` to query information on what is going on and generate reports.
```sh-session
coyote@home ~ $ wtr --help
```