{"id":13629524,"url":"https://github.com/mrusme/zeit","last_synced_at":"2025-04-07T07:14:26.334Z","repository":{"id":40495982,"uuid":"302966455","full_name":"mrusme/zeit","owner":"mrusme","description":"Zeit, erfassen. A command line tool for tracking time spent on activities.","archived":false,"fork":false,"pushed_at":"2024-08-01T20:06:47.000Z","size":1011,"stargazers_count":236,"open_issues_count":7,"forks_count":18,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-30T00:32:23.266Z","etag":null,"topics":["activity-tracker","activity-tracking","command-line","command-line-interface","command-line-tool","commandline","commandline-interface","commandline-tool","productivity","terminal-based","time","time-tracker","time-tracking","toggl","tracking","tui","tyme","zeit"],"latest_commit_sha":null,"homepage":"https://マリウス.com/zeit-erfassen-a-cli-activity-time-tracker/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrusme.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://github.com/mrusme#support"]}},"created_at":"2020-10-10T18:33:38.000Z","updated_at":"2024-10-29T12:13:19.000Z","dependencies_parsed_at":"2023-02-09T21:01:07.565Z","dependency_job_id":"5e26dbf0-ae86-40b4-9c96-270c9852ef0b","html_url":"https://github.com/mrusme/zeit","commit_stats":{"total_commits":148,"total_committers":8,"mean_commits":18.5,"dds":0.2567567567567568,"last_synced_commit":"5c6fb1b43e87128558e59f578cf9d9e1c0494f21"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrusme%2Fzeit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrusme%2Fzeit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrusme%2Fzeit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrusme%2Fzeit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrusme","download_url":"https://codeload.github.com/mrusme/zeit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247608153,"owners_count":20965952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["activity-tracker","activity-tracking","command-line","command-line-interface","command-line-tool","commandline","commandline-interface","commandline-tool","productivity","terminal-based","time","time-tracker","time-tracking","toggl","tracking","tui","tyme","zeit"],"created_at":"2024-08-01T22:01:12.818Z","updated_at":"2025-04-07T07:14:26.307Z","avatar_url":"https://github.com/mrusme.png","language":"Go","readme":"Zeit\n----\n\n![zeit](documentation/zeit.png)\n\n[![Static \nBadge](https://img.shields.io/badge/Join_on_Matrix-green?style=for-the-badge\u0026logo=element\u0026logoColor=%23ffffff\u0026label=Chat\u0026labelColor=%23333\u0026color=%230DBD8B\u0026link=https%3A%2F%2Fmatrix.to%2F%23%2F%2521PHlbgZTdrhjkCJrfVY%253Amatrix.org)](https://matrix.to/#/%21PHlbgZTdrhjkCJrfVY%3Amatrix.org)\n\nZeit, erfassen. A command line tool for tracking time spent on tasks \u0026 projects.\n\n[Get some more info on why I build this\nhere](https://マリウス.com/zeit-erfassen-a-cli-activity-time-tracker/).\n\n[Download the latest version for macOS, Linux, FreeBSD, NetBSD, OpenBSD \u0026 Plan9\nhere](https://github.com/mrusme/zeit/releases/latest).\n\n\n## Build\n\n```sh\nmake\n```\n\n**Info**: This will build using the version 0.0.0. You can prefix the `make` \ncommand with `VERSION=x.y.z` and set `x`, `y` and `z` accordingly if you want \nthe version in `zeit --help` to be a different one.\n\n\n## Usage\n\n![zeit](documentation/header.jpg)\n\nPlease make sure to `export ZEIT_DB=~/.config/zeit.db` (or whatever location \nyou would like to have the zeit database at).\n\n*zeit*'s data structure contains of the following key entities: `project`, \n`task` and `entry`. An `entry` consists of a `project` and a `task`. These\ndon't have to pre-exist and can be created on-the-fly inside a new `entry` using\ne.g. `zeit track --project \"New Project\" --task \"New Task\"`. In order to\nconfigure them, the `zeit project` and the `zeit task` commands can be utilised.\n\n\n### Projects\n\nA project can be configured using `zeit project`:\n\n```sh\nzeit project --help\n```\n\n#### Examples:\n\nSet the project color to a hex color code, allowing `zeit stats` to display\ninformation in that color (if your terminal supports colours):\n\n```sh\nzeit project --color '#d3d3d3' \"cool project\"\n```\n\n\n### Task\n\nA task can be configured using `zeit task`:\n\n```sh\nzeit task --help\n```\n\n#### Examples:\n\nSetting up a Git repository to have commit messages automatically imported\ninto the activity notes when an activity is finished:\n\n```sh\nzeit task --git ~/my/git/repository \"development\"\n```\n\n**Info:** You will have to have the `git` binary available in your `PATH` for \nthis to work. *zeit* automatically limits the commit log to the exact time of \nthe activity's beginning- and finish-time. Commit messages before or after these \ntimes won't be imported.\n\n\n### Track activity\n\n```sh\nzeit track --help\n```\n\n#### Examples:\n\nBegin tracking a new activity and reset the start time to 15 minutes ago:\n\n```sh\nzeit track --project project --task task --begin -0:15\n```\n\n\n### Show current activity\n\n```sh\nzeit tracking\n```\n\n\n### Finish tracking activity\n\n```sh\nzeit finish --help\n```\n\n#### Examples:\n\nFinish tracking the currently tracked activity without adding any further info:\n\n```sh\nzeit finish\n```\n\nFinish tracking the currently tracked activity and change its task:\n\n```sh\nzeit finish --task other-task\n```\n\nFinish tracking the currently tracked activity and adjust its start time to \n4 PM:\n\n```sh\nzeit finish --begin 16:00\n```\n\n\n### List tracked activity\n\n```sh\nzeit list --help\n```\n\n#### Examples:\n\nList all tracked activities:\n\n```sh\nzeit list\n```\n\nList all tracked activities since a specific date/time:\n\n```sh\nzeit list --since \"2020-10-14T00:00:01+01:00\"\n```\n\nList all tracked activities and add the total hours:\n\n```sh\nzeit list --total\n```\n\nList only projects and tasks (relational):\n\n```sh\nzeit list --only-projects-and-tasks\n```\n\nList only projects and tasks (relational) that were tracked since a specific \ndate/time:\n\n```sh\nzeit list --only-projects-and-tasks --since \"2020-10-14T00:00:01+01:00\"\n```\n\n\n### Display/update activity\n\n```sh\nzeit entry --help\n```\n\n#### Examples:\n\nDisplay a tracked activity:\n\n```sh\nzeit entry 14037730-5c2d-44ff-b70e-81f1dcd4eb5f\n```\n\nUpdate a tracked activity:\n\n```sh\nzeit entry --finish \"2020-09-02T18:16:00+01:00\" 14037730-5c2d-44ff-b70e-81f1dcd4eb5f\n```\n\n\n### Erase tracked activity\n\n```sh\nzeit erase --help\n```\n\n#### Examples:\n\nErase a tracked activity by its internal ID:\n\n```sh\nzeit erase 14037730-5c2d-44ff-b70e-81f1dcd4eb5f\n```\n\n\n### Statistics\n\n![zeit stats](documentation/zeit_stats.jpg)\n\n```sh\nzeit stats\n```\n\n\n### Import tracked activities\n\n```sh\nzeit import --help\n```\n\nThe following formats are supported as of right now:\n\n#### `tyme`: Tyme 3 JSON\n\nIt is possible to import JSON exports from [Tyme 3](https://www.tyme-app.com). \nIt is important that the JSON is exported with the following options set/unset:\n\n![Tyme 3 JSON export](documentation/tyme3json.png)\n\n- `Start`/`End` can be set as required\n- `Format` has to be `JSON`\n- `Export only unbilled entries` can be set as required\n- `Mark exported entries as billed` can be set as required\n- `Include non-billable tasks` can be set as required\n- `Filter Projects \u0026 Tasks` can be set as required\n- `Combine times by day \u0026 task` **must** be unchecked\n\nDuring import, *zeit* will create SHA1 sums for every Tyme 3 entry, which \nallows it to identify every imported activity. This way *zeit* won't import the \nexact same entry twice. Keep this in mind if you change entries in Tyme and \nthen import them again into *zeit*.\n\n#### Examples:\n\nImport a Tyme 3 JSON export:\n\n```sh\nzeit import --format tyme ./tyme.export.json\n```\n\n\n### Export tracked activities\n\n```sh\nzeit export --help\n```\n\nThe following formats are supported as of right now:\n\n#### `zeit`: *zeit* JSON\n\nThe *zeit* internal JSON format. Basically a dump of the database including\nonly tracked activities.\n\n#### `tyme`: Tyme 3 JSON\n\nIt is possible to export JSON compatible to the Tyme 3 JSON format. Fields that\nare not available in *zeit* will be filled with dummy values, e.g.\n`Billing: \"UNBILLED\"`.\n\n#### Examples:\n\nExport a Tyme 3 JSON:\n\n```sh\nzeit export --format tyme --project \"my project\" --since \"2020-04-01T15:04:05+07:00\" --until \"2020-04-04T15:04:05+07:00\"\n```\n\n## Integrations\n\nHere are a few integrations and extensions built by myself as well as other \npeople that make use of `zeit`:\n\n- [`zeit-waybar-bemenu.sh`](https://github.com/mrusme/zeit/blob/main/extras/zeit-waybar-bemenu.sh), \n  a script for integrating `zeit` into\n  [waybar](https://github.com/Alexays/Waybar), using\n  [bemenu](https://github.com/Cloudef/bemenu)\n- [`zeit-waybar-wofi.sh`](https://github.com/mrusme/zeit/blob/main/extras/zeit-waybar-wofi.sh), \n  a script for integrating `zeit` into\n  [waybar](https://github.com/Alexays/Waybar), using\n  [wofi](https://hg.sr.ht/~scoopta/wofi)\n- [`zeit.1m.sh`](https://github.com/mrusme/zeit/blob/main/extras/zeit.1m.sh), \n  an [`xbar`](https://github.com/matryer/xbar) plugin for `zeit`\n- [`zeit-status.sh`](https://github.com/khughitt/dotfiles/blob/master/polybar/scripts/zeit-status.sh), \n  a [Polybar](https://github.com/polybar/polybar) integration for `zeit` by \n  [@khughitt](https://github.com/khughitt) \n  (see [#1](https://github.com/mrusme/zeit/issues/1))\n- your link here, feel free to PR! :-)\n","funding_links":["https://github.com/mrusme#support"],"categories":["Go","others","Time Tracking CLI Tools","\u003ca name=\"time-tracker\"\u003e\u003c/a\u003eTime trackers","Table of Contents"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrusme%2Fzeit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrusme%2Fzeit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrusme%2Fzeit/lists"}