- Notifications
You must be signed in to change notification settings - Fork20
Zeit, erfassen. A command line tool for tracking time spent on activities.
License
mrusme/zeit
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Zeit, erfassen. A command line tool for tracking time spent on tasks & projects.
Get some more info on why I build thishere.
Download the latest version for macOS, Linux, FreeBSD, NetBSD, OpenBSD & Plan9here.
make
Info: This will build using the version 0.0.0. You can prefix themake
command withVERSION=x.y.z
and setx
,y
andz
accordingly if you wantthe version inzeit --help
to be a different one.
Please make sure toexport ZEIT_DB=~/.config/zeit.db
(or whatever locationyou would like to have the zeit database at).
zeit's data structure contains of the following key entities:project
,task
andentry
. Anentry
consists of aproject
and atask
. Thesedon't have to pre-exist and can be created on-the-fly inside a newentry
usinge.g.zeit track --project "New Project" --task "New Task"
. In order toconfigure them, thezeit project
and thezeit task
commands can be utilised.
A project can be configured usingzeit project
:
zeit project --help
Set the project color to a hex color code, allowingzeit stats
to displayinformation in that color (if your terminal supports colours):
zeit project --color'#d3d3d3'"cool project"
A task can be configured usingzeit task
:
zeit task --help
Setting up a Git repository to have commit messages automatically importedinto the activity notes when an activity is finished:
zeit task --git~/my/git/repository"development"
Info: You will have to have thegit
binary available in yourPATH
forthis to work.zeit automatically limits the commit log to the exact time ofthe activity's beginning- and finish-time. Commit messages before or after thesetimes won't be imported.
zeit track --help
Begin tracking a new activity and reset the start time to 15 minutes ago:
zeit track --project project --task task --begin -0:15
zeit tracking
zeit finish --help
Finish tracking the currently tracked activity without adding any further info:
zeit finish
Finish tracking the currently tracked activity and change its task:
zeit finish --task other-task
Finish tracking the currently tracked activity and adjust its start time to4 PM:
zeit finish --begin 16:00
zeit list --help
List all tracked activities:
zeit list
List all tracked activities since a specific date/time:
zeit list --since"2020-10-14T00:00:01+01:00"
List all tracked activities and add the total hours:
zeit list --total
List only projects and tasks (relational):
zeit list --only-projects-and-tasks
List only projects and tasks (relational) that were tracked since a specificdate/time:
zeit list --only-projects-and-tasks --since"2020-10-14T00:00:01+01:00"
zeit entry --help
Display a tracked activity:
zeit entry 14037730-5c2d-44ff-b70e-81f1dcd4eb5f
Update a tracked activity:
zeit entry --finish"2020-09-02T18:16:00+01:00" 14037730-5c2d-44ff-b70e-81f1dcd4eb5f
zeit erase --help
Erase a tracked activity by its internal ID:
zeit erase 14037730-5c2d-44ff-b70e-81f1dcd4eb5f
zeit stats
zeit import --help
The following formats are supported as of right now:
It is possible to import JSON exports fromTyme 3.It is important that the JSON is exported with the following options set/unset:
Start
/End
can be set as requiredFormat
has to beJSON
Export only unbilled entries
can be set as requiredMark exported entries as billed
can be set as requiredInclude non-billable tasks
can be set as requiredFilter Projects & Tasks
can be set as requiredCombine times by day & task
must be unchecked
During import,zeit will create SHA1 sums for every Tyme 3 entry, whichallows it to identify every imported activity. This wayzeit won't import theexact same entry twice. Keep this in mind if you change entries in Tyme andthen import them again intozeit.
Import a Tyme 3 JSON export:
zeit import --format tyme ./tyme.export.json
zeitexport --help
The following formats are supported as of right now:
Thezeit internal JSON format. Basically a dump of the database includingonly tracked activities.
It is possible to export JSON compatible to the Tyme 3 JSON format. Fields thatare not available inzeit will be filled with dummy values, e.g.Billing: "UNBILLED"
.
Export a Tyme 3 JSON:
zeitexport --format tyme --project"my project" --since"2020-04-01T15:04:05+07:00" --until"2020-04-04T15:04:05+07:00"
Here are a few integrations and extensions built by myself as well as otherpeople that make use ofzeit
:
zeit-waybar-bemenu.sh
,a script for integratingzeit
intowaybar, usingbemenuzeit-waybar-wofi.sh
,a script for integratingzeit
intowaybar, usingwofizeit.1m.sh
,anxbar
plugin forzeit
zeit-status.sh
,aPolybar integration forzeit
by@khughitt(see#1)- your link here, feel free to PR! :-)
About
Zeit, erfassen. A command line tool for tracking time spent on activities.