Skip to content

Getting started

Minutes is a CLI tool, primarily made for entrepreneurs and finance people, to help their daily work by synchronizing worklogs from a source to a target software. The source can be your own time tracking tool you use, while the target is a bookkeeping software.

This guide show you the basics minutes, walks through the available flags, and gives some examples for basic configuration. For the full list of available configuration options, visit the related documentation.

Installation

Using brew

$ brew tap gabor-boros/brew
$ brew install minutes

Manual install

To install minutes, use one of the release artifacts. If you have go installed, you can build from source as well

Configuration

minutes has numerous flags and there will be more when other sources or targets are added. Therefore, minutes comes with a config file, that can be placed to the user's home directory or the config directory.

Usage

Usage:
  minutes [flags]

Flags:
      --clockify-api-key string      set the API key
      --clockify-url string          set the base URL
      --clockify-workspace string    set the workspace ID
      --config string                config file (default is $HOME/.minutes.yaml)
      --date-format string           set start and end date format (in Go style) (default "2006-01-02 15:04:05")
      --dry-run                      fetch entries, but do not sync them
      --end string                   set the end date (defaults to now)
      --force-billed-duration        treat every second spent as billed
  -h, --help                         help for minutes
      --round-to-closest-minute      round time to closest minute
  -s, --source string                set the source of the sync [clockify tempo]
      --source-user string           set the source user ID
      --start string                 set the start date (defaults to 00:00:00)
      --table-hide-column strings    hide table column [summary project client start end]
      --table-sort-by strings        sort table by column [task summary project client start end billable unbillable] (default [start,project,task,summary])
  -t, --target string                set the target of the sync [tempo]
      --target-user string           set the source user ID
      --tags-as-tasks-regex string   regex of the task pattern
      --tempo-password string        set the login password
      --tempo-url string             set the base URL
      --tempo-username string        set the login user ID
      --verbose                      print verbose messages
      --version                      show command version

Usage examples

Depending on the config file, the number of flags can change.

Simplest command

# No arguments, no flags, just running the command
$ minutes

Set specific date and time

# Set the date and time to fetch entries in the given time frame
$ minutes --start "2021-10-07 00:00:00" --end "2021-10-07 23:59:59"
# Specify the start and end date format
$ minutes --date-format "2006-01-02" --start "2021-10-07" --end "2021-10-08"

Use tags for tasks

# Specify how a tag should look like to be considered as a task
$ minutes --tags-as-tasks-regex '[A-Z]{2,7}-\d{1,6}'

Minute based rounding

# Set the billed and unbilled time separately
# to round to the closest minute (even if it is zero)
$ minutes --round-to-closest-minute

Format the table output

# Skip some columns and sort table by -start date
$ minutes --table-sort-by "-start" --table-hide-column "client" --table-hide-column "project"

Config file vs flags

Be aware that not all configuration option is covered by flags, especially not more advanced options, like table column width or truncate settings.

When using the configuration file and flags in conjunction, please note that flags take precedence, hence it can override settings from the configuration file.