npm install -g time-tracker-cli
or
yarn global add time-tracker-cli
Now you can start to call timer
command
└┘#! timer
Usage: timer [options] [command]
Tiny time tracker for projects
Options:
-V, --version output the version number
--updateDB Bool to update the db
-h, --help output usage information
Commands:
start|s <task_key> [description] Start task with a description.
pause|p <task_key> Pause task
unpause|up <task_key> Unpause task
finish|f <task_key> [description] Stop task, you can add a description
description|d <task_key> <descriptionText...> Add description to your task.
add <task_key> <stringTime> Adds time to a task. Example: "1h2m3s"
subtract|sub <task_key> <stringTime> Subtract time to a task. Example: "1h2m3s"
report|r [task_string] [rate] Report time of the tasks, empty for select all tasks. Can pass a rate (1h).
log|l <task_key> Logs the time of the task
export|e [options] [task_string] Export the tasks in json (default) or md format
delete|del [task_string] Remove tasks from the list. Empty for select all tasks
configure <key> <value> Configure the value of the config passing a key
configuration Output configuration
- To start a task run:
$ timer start <key of the task> <description>
- To finish a task run:
$ timer finish <key of the task> <description>
- You can add a description adding:
$ timer description <key of the task> <description>
- You can also see the timer running:
$ timer log <key of the task>
The data are stored inside ~/.config/time-tracker-cli.json The config need to be updated if you have the 1.x to the 2.x to do that, to update config run timer --updateDB If you open you should see:
{
"tasks": {
"work1.website.design": {
"description": "If you added one",
"timings": [{
"start": "2016-02-19T10:00:36.393Z",
"stop": "2016-02-19T18:01:50.921Z"
}],
"log": [
"start#2016-02-19T10:00:36.393Z",
"stop#2016-02-19T18:01:50.921Z"
]
},
"work1.website.deployServer": {
"timings": [{
"start": "2016-02-19T10:01:59.116Z",
"stop": "2016-02-19T10:32:10.687Z"
}],
"log": [
"start#2016-02-19T10:01:59.116Z",
"stop#2016-02-19T10:32:10.687Z"
]
},
"work2.api.develop.userController": {
"timings": [{
"start": "2016-02-19T10:04:23.060Z",
"stop": "2016-02-19T20:04:36.836Z"
}],
"log": [
"start#2016-02-19T10:04:23.060Z",
"stop#2016-02-19T20:04:36.836Z"
]
},
"work2.api.develop.loginController": {
"timings": [{
"start": "2016-02-19T10:09:41.848Z",
"stop": "2016-02-19T13:11:54.059Z"
}],
"log": [
"start#2016-02-19T10:09:41.848Z",
"stop#2016-02-19T13:11:54.059Z"
]
}
},
"config": {
"format.output": "DD/MM",
"config.version": 2
}
}
Start a new task.
$ timer start <key of the task> <description>
Pause a task
$ timer pause <key of the task>
$ timer p <key of the task>
Unpause a task
$ timer unpause <key of the task>
$ timer up <key of the task>
Stop a task, also can add a description
$ timer finish <key of the task> <description>
Add a description to the task
$ timer description <key of the task> <description>
$ timer d <key of the task> <description>
Add time to the task selected
$ timer add <key of the task> <stringTime>
$ timer add <key of the task> 1h2m3s
Subtract time to the task selected
$ timer subtract <key of the task> <stringTime>
$ timer sub <key of the task> <stringTime>
$ timer subtract <key of the task> 1h2m3s
$ timer sub <key of the task> 1h2m3s
This method outputs via cli a table. Some examples:
$ timer report
$ timer r -f md
$ timer r -f markdown
$ timer r -f markdown > report.md
$ timer r -f md > report.md
$ timer r > report.json
$ timer export <key of the task>
$ timer r <key of the task> -f md
$ timer r <key of the task> -f markdown
$ timer r <key of the task> -f markdown > report.md
$ timer r <key of the task> -f md > report.md
$ timer r <key of the task> > report.json
Log a task if you want to have the real timer on one console.
$ timer log <key of the task>
This method output a json or markdown with all the tasks or all the selected tasks.
Options:
- -f --format: define the format (default is json). Ex. json|markdown|md
- -s --start: filter by start date. Ex. 2017/05/28
- -e --end: filter by start date. Ex. 2017/05/28
- -x --expanded: If you have mutiple days in a task, expands shows this as a independant entry on the table. Default is false
In 2.5.0 its included an export option that has json and markdown as valid outputs, this are some examples:
$ timer export
$ timer e -f md
$ timer e -f markdown
$ timer e -f markdown > report.md
$ timer e -f md > report.md
$ timer e > report.json
$ timer export <key of the task>
$ timer e <key of the task> -f md
$ timer e <key of the task> -f markdown
$ timer e <key of the task> -f markdown > report.md
$ timer e <key of the task> -f md > report.md
$ timer e <key of the task> > report.json
$ timer e <key of the task> -f md -x -e 2017/08/26
$ timer e <key of the task> -f md -x -s 2017/08/26
$ timer e <key of the task> -f md -e 2017/08/26
$ timer e <key of the task> -f md -s 2017/08/26
Thanks @MarAvFe and @mlndz28 for its contribution.
delete|del [task_string] Remove tasks from the list. Empty for select all tasks
configure Configure the value of the config passing a key
configuration
To use the autocomplete run timer --setupCLI
If you have the version 1.x and you want to conserve the DB, run timer --updateDB
to update the DB to version 2.x
Run npm install;npm run dev
to watch the proyect, and compile the code automatically.
Run npm build
to build the module.
Licensed under the MIT license. 2015