All Projects → danibram → time-tracker-cli

danibram / time-tracker-cli

Licence: MIT license
Super tiny and ligthway time tracker for all cli lovers

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to time-tracker-cli

redtimer
RedTimer - Redmine Time Tracker
Stars: ✭ 59 (-25.32%)
Mutual labels:  tracker, timer, time-tracker
Atom Wakatime
Atom plugin for automatic time tracking and metrics generated from your programming activity.
Stars: ✭ 303 (+283.54%)
Mutual labels:  timer, time-tracker
Baralga
Baralga open-source time tracker for the desktop.
Stars: ✭ 77 (-2.53%)
Mutual labels:  tracker, time-tracker
Hackaru
Simple, cross-platform time tracking application
Stars: ✭ 82 (+3.8%)
Mutual labels:  timer, time-tracker
wht
Working Hours Tracker for Sailfish OS
Stars: ✭ 20 (-74.68%)
Mutual labels:  tracker, timer
itrack
A simple task-based time tracker for everyday use.
Stars: ✭ 20 (-74.68%)
Mutual labels:  tracker, time-tracker
Takt
Track your tasks and time
Stars: ✭ 142 (+79.75%)
Mutual labels:  timer, time-tracker
Update Background Locations
A sample iOs example that tracks background locations.
Stars: ✭ 7 (-91.14%)
Mutual labels:  tracker, timer
time
React UI for Wobbly Time Tracker for the Teams
Stars: ✭ 24 (-69.62%)
Mutual labels:  tracker, time-tracker
animedoro-timer
An Animedoro timer for all the weebs out there | productivity : 📈
Stars: ✭ 37 (-53.16%)
Mutual labels:  timer
ioBroker.smartcontrol
Control devices smarter: by grouping, including triggers like motion, opening window, etc. and set target devices accordingly
Stars: ✭ 20 (-74.68%)
Mutual labels:  timer
react-timer-wrapper
Composable React Timer component that passes status props to children, in addition to some basic callbacks. Can be used at a countdown timer ⏲ or as stopwatch ⏱ to track time while active.
Stars: ✭ 14 (-82.28%)
Mutual labels:  timer
flitter
A Livesplit-inspired speedrunning split timer for Linux/macOS terminal. Supports global hotkeys.
Stars: ✭ 112 (+41.77%)
Mutual labels:  timer
chronocube
[UNMANTAINED]. Simple app to time your Rubik's Cube solves
Stars: ✭ 62 (-21.52%)
Mutual labels:  timer
asynctimerqueue
Asynchronous timer queue mechanism(C++11)
Stars: ✭ 21 (-73.42%)
Mutual labels:  timer
SiamFusion
No description or website provided.
Stars: ✭ 26 (-67.09%)
Mutual labels:  tracker
windy-plugins
🚁extend functionality of Windy.com. Develop your plugin in less than 5 minutes.
Stars: ✭ 147 (+86.08%)
Mutual labels:  tracker
redmine hourglass
New Redmine plugin to enhance the time tracking abilities, reports and REST-API.
Stars: ✭ 68 (-13.92%)
Mutual labels:  time-tracker
fastdfs
fastdfs集成环境
Stars: ✭ 19 (-75.95%)
Mutual labels:  tracker
tiny-timer
🕑 Small countdown timer and stopwatch module.
Stars: ✭ 39 (-50.63%)
Mutual labels:  timer

Tiny Time tracker

Greenkeeper badge NPM

npm version

Dependency Status Support link

Installation

npm install -g time-tracker-cli

or

yarn global add time-tracker-cli

Now you can start to call timercommand

Usage

asciicast

└┘#! 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>

How it works

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
    }
}

Method

Start (start|s)

Start a new task.

$ timer start <key of the task> <description>

Pause (pause|p)

Pause a task

$ timer pause <key of the task>
$ timer p <key of the task>

Unpause (unpause|up)

Unpause a task

$ timer unpause <key of the task>
$ timer up <key of the task>

Finish (finish|f)

Stop a task, also can add a description

$ timer finish <key of the task> <description>

Description (description|d)

Add a description to the task

$ timer description <key of the task> <description>
$ timer d <key of the task> <description>

Add (add)

Add time to the task selected

$ timer add <key of the task> <stringTime>
$ timer add <key of the task> 1h2m3s

Subtract (subtract|sub)

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

Report (report|r)

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 (log|l)

Log a task if you want to have the real timer on one console.

$ timer log <key of the task>

Export (export|e)

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 (delete|del)

delete|del [task_string] Remove tasks from the list. Empty for select all tasks

Configure (configure)

configure Configure the value of the config passing a key

Configure (configure)

configuration

Notes

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

Development

Run npm install;npm run dev to watch the proyect, and compile the code automatically. Run npm build to build the module.

Contributors

License

Licensed under the MIT license. 2015

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].