{"id":13475535,"url":"https://github.com/dominikbraun/timetrace","last_synced_at":"2025-05-16T10:06:26.926Z","repository":{"id":39637469,"uuid":"366489526","full_name":"dominikbraun/timetrace","owner":"dominikbraun","description":"A simple CLI for tracking your working time.","archived":false,"fork":false,"pushed_at":"2024-06-28T03:43:49.000Z","size":5312,"stargazers_count":747,"open_issues_count":56,"forks_count":80,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-05-13T07:58:22.128Z","etag":null,"topics":["cli","hacktoberfest","time-tracker","time-tracking","timetracker","timetracking"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dominikbraun.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"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}},"created_at":"2021-05-11T19:17:24.000Z","updated_at":"2025-05-05T14:51:08.000Z","dependencies_parsed_at":"2024-06-18T16:49:11.839Z","dependency_job_id":"061d7141-57c7-445c-b640-7b044d0f684f","html_url":"https://github.com/dominikbraun/timetrace","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dominikbraun%2Ftimetrace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dominikbraun%2Ftimetrace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dominikbraun%2Ftimetrace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dominikbraun%2Ftimetrace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dominikbraun","download_url":"https://codeload.github.com/dominikbraun/timetrace/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254509476,"owners_count":22082891,"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":["cli","hacktoberfest","time-tracker","time-tracking","timetracker","timetracking"],"created_at":"2024-07-31T16:01:21.268Z","updated_at":"2025-05-16T10:06:26.897Z","avatar_url":"https://github.com/dominikbraun.png","language":"Go","funding_links":[],"categories":["Go","Time Tracking CLI Tools"],"sub_categories":[],"readme":"\u003ch1\u003e:alarm_clock: timetrace\n\u003ca href=\"https://circleci.com/gh/dominikbraun/timetrace\"\u003e\u003cimg src=\"https://circleci.com/gh/dominikbraun/timetrace.svg?style=shield\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.codefactor.io/repository/github/dominikbraun/timetrace\"\u003e\u003cimg src=\"https://www.codefactor.io/repository/github/dominikbraun/timetrace/badge\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/dominikbraun/timetrace/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/dominikbraun/timetrace?sort=semver\"\u003e\u003c/a\u003e\n\u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-Apache--2.0-brightgreen\"\u003e\u003c/a\u003e\n\u003c/h1\u003e\n\n\u003e timetrace is a simple CLI for tracking your working time.\n\n![CLI screenshot 64x16](timetrace.png)\n\n:fire: **New:** [Add tags for records](#start-tracking)  \n:fire: **New:** [Use decimal hours when displaying durations](#prefer-decimal-hours-for-status-and-reports)  \n:fire: **New:** [Restore records when restoring the associated project](#delete-a-project)  \n:fire: **New:** [Support for per-project configuration](#per-project-configuration)  \n\n---\n\n- [Installation](#installation)\n  - [Homebrew](#homebrew)\n  - [Snap](#snap)\n  - [AUR](#aur)\n  - [Scoop](#scoop)\n  - [Docker](#docker)\n  - [Binary](#binary)\n- [Usage example](#usage-example)\n  - [Project modules](#project-modules)\n- [Shell integration](#shell-integration)\n  - [Starship](#starship)\n- [Command reference](#command-reference)\n  - [Start tracking](#start-tracking)\n  - [Print the tracking status](#print-the-tracking-status)\n  - [Stop tracking](#stop-tracking)\n  - [Create a project](#create-a-project)\n  - [Create a record](#create-a-record)\n  - [Get a project](#get-a-project)\n  - [Get a record](#get-a-record)\n  - [List all projects](#list-all-projects)\n  - [List all records from a date](#list-all-records-from-a-date)\n  - [Edit a project](#edit-a-project)\n  - [Edit a record](#edit-a-record)\n  - [Delete a project](#delete-a-project)\n  - [Delete a record](#delete-a-record)\n  - [Generate a report `[beta]`](#generate-a-report-beta)\n  - [Print version information](#print-version-information)\n- [Configuration](#configuration)\n  - [Prefer 12-hour clock for storing records](#prefer-12-hour-clock-for-storing-records)\n  - [Prefer decimal hours for status and reports](#prefer-decimal-hours-for-status-and-reports)\n  - [Set your preferred editor](#set-your-preferred-editor)\n  - [Configure defaults for projects](#configure-defaults-for-projects)\n- [Credits](#credits)\n\n---\n\n## Installation\n\n### Homebrew\n\n```\nbrew tap dominikbraun/timetrace\nbrew install timetrace\n```\n\n### Snap\n\n```\nsudo snap install timetrace --edge --devmode\n```\n\n### AUR\n\n```\nyay -S timetrace-bin\n```\n\n### Scoop\n\n```\nscoop bucket add \u003cname\u003e https://github.com/Br1ght0ne/scoop-bucket\nscoop install timetrace\n```\n\n### Docker\n\nThe timetrace Docker image stores all data in the `/data` directory. To persist\nthis data on disk, you should create a bind mount or named volume like so:\n\n```\ndocker container run -v my-volume:/data dominikbraun/timetrace version\n```\n\n### Binary\n\nDownload the [latest release](https://github.com/dominikbraun/timetrace/releases)\nand extract the binary into a directory like `/usr/local/bin` or\n`C:\\Program Files\\timetrace`. Make sure the directory is in the `PATH` variable.\n\n## Usage example\n\nFirst, create a project you're working for:\n\n```\ntimetrace create project make-coffee\n```\n\nOnce the project is created, you're able to track work on that project.\n\n```\ntimetrace start make-coffee\n```\n\nYou can obtain your currently worked time using `timetrace status`. When you've\nfinished your work, stop tracking:\n\n```\ntimetrace stop\n```\n\n### Project modules\n\nTo refine what part of a project you're working on, timetrace supports _project modules_. These are the exact same thing\nas normal projects, except that they have a key in the form `\u003cmodule\u003e@\u003cproject\u003e`.\n\nCreating a `grind-beans` module for the `make-coffee` project is simple:\n\n```\ntimetrace create project grind-beans@make-coffee\n```\n\nThe new module will be listed as part of the `make-coffee` project:\n\n```\ntimetrace list projects\n+-----+-------------+-------------+\n|  #  |     KEY     |   MODULES   |\n+-----+-------------+-------------+\n|   1 | make-coffee | grind-beans |\n+-----+-------------+-------------+\n\n```\n\nWhen filtering by projects, for example with `timetrace list records -p make-coffee today`, the modules of that project\nwill be included.\n\n## Shell integration\n\n### Starship\n\nTo integrate timetrace into Starship, add the following lines to `$HOME/.config/starship.toml`:\n\n```\n[custom.timetrace]\ncommand = \"\"\" timetrace status --format \"Current project: {project} - Worked today: {trackedTimeToday}\" \"\"\"\nwhen = \"timetrace status\"\nshell = \"sh\"\n```\n\nYou can find a list of available formatting variables in the [`status` reference](#print-the-tracking-status).\n\n## Command reference\n\n### Start tracking\n\n**Syntax:**\n\n```\ntimetrace start \u003cPROJECT KEY\u003e [+TAG1, +TAG2, ...]\n```\n\n**Arguments:**\n\n| Argument            | Description                                  |\n| ------------------- | -------------------------------------------- |\n| `PROJECT KEY`       | The key of the project.                      |\n| `+TAG1, +TAG2, ...` | One or more optional tags starting with `+`. |\n\n**Flags:**\n\n| Flag             | Short | Description                                                                                                |\n| ---------------- | ----- | ---------------------------------------------------------------------------------------------------------- |\n| `--billable`     | `-b`  | Mark the record as billable.                                                                               |\n| `--non-billable` |       | Mark the record as non-billable, even if the project is [billable by default](#per-project-configuration). |\n\n**Example:**\n\nStart working on a project called `make-coffee` and mark it as billable:\n\n```\ntimetrace start --billable make-coffee\n```\n\nStart working on the `make-coffee` project and add two tags:\n\n```\ntimetrace start make-coffee +espresso +morning\n```\n\n### Print the tracking status\n\n**Syntax:**\n\n```\ntimetrace status\n```\n\n**Flags:**\n\n| Flag       | Short | Description                                                   |\n| ---------- | ----- | ------------------------------------------------------------- |\n| `--format` | `-f`  | Display the status in a custom format (see below).            |\n| `--output` | `-o`  | Display the status in a specific output. Valid values: `json` |\n\n**Formatting variables:**\n\nThe names of the formatting variables are the same as the JSON keys printed by `--output json`.\n\n| Variable               | Description                              |\n| ---------------------- | ---------------------------------------- |\n| `{project}`            | The key of the current project.          |\n| `{trackedTimeCurrent}` | The time tracked for the current record. |\n| `{trackedTimeToday}`   | The time tracked today.                  |\n| `{breakTimeToday}`     | The break time since the first record.   |\n\n**Example:**\n\nPrint the current tracking status:\n\n```\ntimetrace status\n+-------------------+----------------------+----------------+\n|  CURRENT PROJECT  |  WORKED SINCE START  |  WORKED TODAY  |\n+-------------------+----------------------+----------------+\n| make-coffee       | 1h 15min             | 4h 30min       |\n+-------------------+----------------------+----------------+\n```\n\nPrint the current project and the total working time as a custom string. Given the example above, the output will be\n`Current project: make-coffee - Worked today: 3h 30min`.\n\n```\ntimetrace status --format \"Current project: {project} - Worked today: {trackedTimeToday}\"\n```\n\nPrint the status as JSON:\n\n```\ntimetrace status -o json\n```\n\nThe output will look as follows:\n\n```json\n{\n  \"project\": \"web-store\",\n  \"trackedTimeCurrent\": \"1h 45min\",\n  \"trackedTimeToday\": \"7h 30min\",\n  \"breakTimeToday\": \"0h 30min\"\n}\n```\n\n### Stop tracking\n\n**Syntax:**\n\n```\ntimetrace stop\n```\n\n**Example:**\n\nStop working on your current project:\n\n```\ntimetrace stop\n```\n\n### Create a project\n\n**Syntax:**\n\n```\ntimetrace create project \u003cKEY\u003e\n```\n\n**Arguments:**\n\n| Argument | Description            |\n| -------- | ---------------------- |\n| `KEY`    | An unique project key. |\n\n**Example:**\n\nCreate a project called `make-coffee`:\n\n```\ntimetrace create project make-coffee\n```\n\n### Create a record\n\n:warning: You shouldn't use this command for normal tracking but only for belated records.\n\n**Syntax:**\n\n```\ntimetrace create record \u003cPROJECT KEY\u003e {\u003cYYYY-MM-DD\u003e|today|yesterday} \u003cHH:MM\u003e \u003cHH:MM\u003e\n```\n\n**Arguments:**\n\n| Argument      | Description                                                                      |\n| ------------- | -------------------------------------------------------------------------------- |\n| `PROJECT KEY` | The project key the record should be created for.                                |\n| `YYYY-MM-DD`  | The date the record should be created for. Alternatively `today` or `yesterday`. |\n| `HH:MM`       | The start time of the record.                                                    |\n| `HH:MM`       | The end time of the record.                                                      |\n\n**Example:**\n\nCreate a record for the `make-coffee` project today from 07:00 to 08:30:\n\n```\ntimetrace create record make-coffee today 07:00 08:30\n```\n\n### Get a project\n\n**Syntax:**\n\n```\ntimetrace get project \u003cKEY\u003e\n```\n\n**Arguments:**\n\n| Argument | Description      |\n| -------- | ---------------- |\n| `KEY`    | The project key. |\n\n**Example:**\n\nDisplay a project called `make-coffee`:\n\n```\ntimetrace get project make-coffee\n```\n\n### Get a record\n\n**Syntax:**\n\n```\ntimetrace get record \u003cYYYY-MM-DD-HH-MM\u003e\n```\n\n**Arguments:**\n\n| Argument           | Description                           |\n| ------------------ | ------------------------------------- |\n| `YYYY-MM-DD-HH-MM` | The start time of the desired record. |\n\n**Example:**\n\nBy default, records can be accessed using the 24-hour format, meaning 3:00 PM is 15. Display a record created on May 1st 2021, 3:00 PM:\n\n```\ntimetrace get record 2021-05-01-15-00\n```\n\nThis behavior [can be changed](#prefer-12-hour-clock-for-storing-records).\n\n### List all projects\n\n**Syntax:**\n\n```\ntimetrace list projects\n```\n\n**Example:**\n\nList all projects stored within the timetrace filesystem:\n\n```\ntimetrace list projects\n+---+-------------+\n| # |     KEY     |\n+---+-------------+\n| 1 | make-coffee |\n| 2 | my-website  |\n| 3 | web-shop    |\n+---+-------------+\n```\n\n### List all records from a date\n\n**Syntax:**\n\n```\ntimetrace list records {\u003cYYYY-MM-DD\u003e|today|yesterday}\n```\n\n**Arguments:**\n\n| Argument     | Description                                                 |\n| ------------ | ----------------------------------------------------------- |\n| `YYYY-MM-DD` | The date of the records to list, or `today` or `yesterday`. |\n| today        | List today's records.                                       |\n| yesterday    | List yesterday's records.                                   |\n\n**Flags:**\n\n| Flag         | Short | Description                    |\n| ------------ | ----- | ------------------------------ |\n| `--billable` | `-b`  | only display billable records. |\n| `--project`  | `-p`  | filter records by project key. |\n\n**Example:**\n\nDisplay all records created on May 1st 2021:\n\n```\ntimetrace list records 2021-05-01\n+-----+-------------+---------+-------+------------+\n|  #  |   PROJECT   |  START  |  END  |  BILLABLE  |\n+-----+-------------+---------+-------+------------+\n|   1 | my-website  | 17:30   | 21:00 | yes        |\n|   2 | my-website  | 08:31   | 17:00 | no         |\n|   3 | make-coffee | 08:25   | 08:30 | no         |\n+-----+-------------+---------+-------+------------+\n```\n\nFilter records by the `make-coffee` project:\n\n```\ntimetrace list records -p make-coffee 2021-05-01\n+-----+-------------+---------+-------+------------+\n|  #  |   PROJECT   |  START  |  END  |  BILLABLE  |\n+-----+-------------+---------+-------+------------+\n|   1 | make-coffee | 08:25   | 08:30 | no         |\n+-----+-------------+---------+-------+------------+\n```\n\nThis will include records for [project modules](#project-modules) like `grind-beans@make-coffee`.\n\n### Edit a project\n\n**Syntax:**\n\n```\ntimetrace edit project \u003cKEY\u003e\n```\n\n**Arguments:**\n\n| Argument | Description      |\n| -------- | ---------------- |\n| `KEY`    | The project key. |\n\n**Flags:**\n| Flag       | Short | Description                                             |\n| ---------- | ----- | ------------------------------------------------------- |\n| `--revert` | `-r`  | Revert the project to its state prior to the last edit. |\n\n**Example:**\n\nEdit a project called `make-coffee`:\n\n```\ntimetrace edit project make-coffee\n```\n\n:fire: **New:** Restore the project to its state prior to the last edit:\n\n```\ntimetrace edit project make-coffee --revert\n```\n\n### Edit a record\n\n**Syntax:**\n\n```\ntimetrace edit record {\u003cKEY\u003e|latest}\n```\n\n**Arguments:**\n\n| Argument | Description                                                                                                                                 |\n| -------- | ------------------------------------------------------------------------------------------------------------------------------------------- |\n| `KEY`    | The project key. `YYYY-MM-DD-HH-MM` by default or `YYYY-MM-DD-HH-MMPM` if [`use12hours` is set](#prefer-12-hour-clock-for-storing-records). |\n\n**Flags:**\n\n| Flag       | Short | Description                                                                   |\n| ---------- | ----- | ----------------------------------------------------------------------------- |\n| `--plus`   | `-p`  | Add the given duration to the record's end time, e.g. `--plus 1h 10m`         |\n| `--minus`  | `-m`  | Subtract the given duration from the record's end time, e.g. `--minus 1h 10m` |\n| `--revert` | `-r`  | Revert the record to its state prior to the last edit.                        |\n\n**Example:**\n\nEdit the latest record. Specifying no flag will open the record in your editor:\n\n```\ntimetrace edit record latest\n```\n\nAdd 15 minutes to the end of the record created on May 1st, 3PM:\n\n```\ntimetrace edit record 2021-05-01-15-00 --plus 15m\n```\n\n:fire: **New:** Restore the record to its state prior to the last edit:\n\n```\ntimetrace edit record 2021-05-01-15-00 --revert\n```\n\nTip: You can get the record key `2021-05-01-15-00` using [`timetrace list records`](#list-all-records-from-a-date).\n\n### Delete a project\n\n**Syntax:**\n\n```\ntimetrace delete project \u003cKEY\u003e\n```\n\n**Arguments:**\n\n| Argument | Description      |\n| -------- | ---------------- |\n| `KEY`    | The project key. |\n\n**Flags:**\n\n| Flag                | Short | Description                                                                                                                             |\n| ------------------- | ----- | --------------------------------------------------------------------------------------------------------------------------------------- |\n| `--revert`          | `-r`  | Restore a deleted project.                                                                                                              |\n| `--exclude-records` | `-e`  | Exclude associated project records from the deletion. If used together with `--revert`, excludes restoring project records from backup. |\n\n**Example:**\n\nDelete a project called `make-coffee`. Note that submodules will be deleted along with the parent project:\n\n```\ntimetrace delete project make-coffee\n```\nThe command will prompt for confirmation of whether project records should be deleted too.\n\n:fire: **New:** Restore the project to its pre-deletion state. Submodules will be restored along with the parent project:\n\n```\ntimetrace delete project make-coffee --revert\n```\nThe command will prompt for confirmation of whether project records should be restored from backup too. This is a\npotentially dangerous operation since records edited in the meantime will be overwritten by the backup.\n\n### Delete a record\n\n**Syntax:**\n\n```\ntimetrace delete record \u003cYYYY-MM-DD-HH-MM\u003e\n```\n\n**Arguments:**\n\n| Argument           | Description                           |\n| ------------------ | ------------------------------------- |\n| `YYYY-MM-DD-HH-MM` | The start time of the desired record. |\n\n| Flag       | Short | Description                 |\n| ---------- | ----- | --------------------------- |\n| `--yes`    |       | Do not ask for confirmation |\n| `--revert` | `-r`  | Restore a deleted record.   |\n\n**Example:**\n\nDelete a record created on May 1st 2021, 3:00 PM:\n\n```\ntimetrace delete record 2021-05-01-15-00\n```\n\n:fire: **New:** Restore the record to its pre-deletion state:\n\n```\ntimetrace delete record 2021-05-01-15-00 --revert\n```\n\n### Generate a report `[beta]`\n\n**Syntax:**\n\n```\ntimetrace report\n```\n\n**Flags:**\n\n| Flag                    | Short | Description                                                                                                                                                        |\n| ----------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `--billable`            | `-b`  | Filter report for only billable records.                                                                                                                           |\n| `--non-billable`        |       | Filter report for non-billable records.                                                                                                                            |\n| `--start \u003cYYYY-MM-DD\u003e`  | `-s`  | Filter report from a specific point in time (start is inclusive).                                                                                                  |\n| `--end \u003cYYYY-MM-DD\u003e`    | `-e`  | Filter report to a specific point in time (end is inclusive).                                                                                                      |\n| `--project \u003cKEY\u003e`       | `-p`  | Filter report for only one project.                                                                                                                                |\n| `--output \u003cjson\u003e`       | `-o`  | Write report as JSON to file.                                                                                                                                      |\n| `--file path/to/report` | `-f`  | Write report to a specific file \u003cbr\u003e(if not given will use config `report-dir`\u003cbr\u003e if config not present writes to `$HOME/.timetrace/reports/report-\u003ctime.unix\u003e`). |\n\n### Print version information\n\n**Syntax:**\n\n```\ntimetrace version\n```\n\n**Example:**\n\nPrint your installed timetrace version:\n\n```\ntimetrace version\n```\n\n## Configuration\n\nYou may provide your own configuration in a file called `config.yaml` within\n`$HOME/.timetrace`.\n\n### Prefer 12-hour clock for storing records\n\nIf you prefer to use the 12-hour clock instead of the default 24-hour format,\nadd this to your `config.yaml` file:\n\n```yaml\n# config.yml\nuse12hours: true\n```\n\nThis will allow you to [view a record](#get-a-record) created at 3:00 PM as\nfollows:\n\n```\ntimetrace get record 2021-05-14-03-00PM\n```\n\n### Prefer decimal hours for status and reports\n\nIf your prefer to use decimal hours for durations, e.g. `1.5h` instead of `1h 30m`,\nadd this to your `config.yaml` file:\n\n```yaml\nuseDecimalHours: \"On\"\n```\n\nTo display durations in _both_ formats at the same time, use:\n\n```yaml\nuseDecimalHours: \"Both\"\n```\n\n**Examples with durations in different formats:**\n\n```\ndefault (useDecimalHours = \"Off\")\n+-------------------+----------------------+----------------+----------+\n|  CURRENT PROJECT  |  WORKED SINCE START  |  WORKED TODAY  |  BREAKS  |\n+-------------------+----------------------+----------------+----------+\n| make-coffee       | 1h 8min              | 3h 8min        | 0h 11min |\n+-------------------+----------------------+----------------+----------+\n\nDecimal Hours (useDecimalHours = \"On\")\n+-------------------+----------------------+----------------+----------+\n|  CURRENT PROJECT  |  WORKED SINCE START  |  WORKED TODAY  |  BREAKS  |\n+-------------------+----------------------+----------------+----------+\n| make-coffee       | 1.2h                 | 3.2h           | 0.2h     |\n+-------------------+----------------------+----------------+----------+\n\nBoth (useDecimalHours = \"Both\")\n+-------------------+----------------------+----------------+---------------+\n|  CURRENT PROJECT  |  WORKED SINCE START  |  WORKED TODAY  |    BREAKS     |\n+-------------------+----------------------+----------------+---------------+\n| make-coffee       | 1h 8min 1.2h         | 3h 8min 3.2h   | 0h 11min 0.2h |\n+-------------------+----------------------+----------------+---------------+\n```\n\n### Set your preferred editor\n\nBy default, timetrace will open the editor specified in `$EDITOR` or fall back\nto `vi`. You may set your provide your preferred editor like so:\n\n```yaml\n# config.yml\neditor: nano\n```\n\n### Configure defaults for projects\n\nTo add a configuration for a specific project, use the `projects` key which accepts\na map with the project key as key and the project configuration as value.\n\nEach project configuration currently has the following schema:\n\n```yaml\nbillable: bool\n```\n\nFor example, always make records for the `make-coffee` project billable:\n\n```yaml\n# config.yml\nprojects:\n    make-coffee:\n        billable: true\n```\n\n## Credits\n\nThis project depends on the following packages:\n\n- [spf13/cobra](https://github.com/spf13/cobra)\n- [spf13/viper](https://github.com/spf13/viper)\n- [fatih/color](https://github.com/fatih/color)\n- [olekukonko/tablewriter](https://github.com/olekukonko/tablewriter)\n- [enescakir/emoji](https://github.com/enescakir/emoji)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdominikbraun%2Ftimetrace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdominikbraun%2Ftimetrace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdominikbraun%2Ftimetrace/lists"}