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.