crytime

0.4.3 • Public • Published

list

crytime

Time tracking in the command line. Fast, simple and minimalistic.

Installation

npm install -g crytime

Usage

Command Description Alias *
crytime Show current week list
crytime in Start working (log in) in
crytime out Start working (log out) out
crytime pop Delete last entry pop
crytime sync Enable / Disable Sync

* Alias is optional

Aliases (optional)

To write less and log with less effort, add some aliases to your shell config file (e.g. ~/.bashrc or ~/.zshrc) and add the following lines:

# Time tracking with crytime
alias list='crytime list' # show week (default: current week)
alias in='crytime in' # log in
alias out='crytime out' # log out
alias pop='crytime pop' # delete entry (default: last entry)

Examples

Logging

# log in (start working)
crytime in

# log out (stop working)
crytime out

Show week

# show current week
crytime list

# show previous week
crytime list prev

Manipulate time manually

# log in today at 8am
crytime in 08:00

# log out today at 5pm
crytime out 17:00

# log in on 2020-01-01 at 8am
crytime in 08:00 --day 11.11.2024

Delete logs

# delete last entry
crytime pop

# delete last 3 entries
crytime pop 3

Sync with GitHub

# enable sync
crytime sync

# disable sync
crytime sync off

# show sync status
crytime sync status

JSON output

The commands in, out, list, pop and sync status also suport JSON output

# show current week in JSON
crytime list --json

The returned JSON format always follows the same structure:

// JSON format of a week
{
  // always present
  "status": "ok", // `"error"` or `"ok"`
  "messages": ["Week logged"], // array of messages

  // optional
  // updated logged day, as timestampslo.
  "data": {
    "28693320": {  // day stamp
      "470": "in", // minute stamp of the entry (in or out, minutes from midnight)
      "700": "out",
      "840": "in",
      "1109": "out"
    },
  // ...
  }
}

Timestamps explained

  • Day timestamp: Unix timestamp of the week in minutes, to get a real Unix timestamp, multiply with 60 * 1000
  • Minute stamp: Minutes from midnight (the day stamp), to get a real Unix timestamp, add the day stamp and multiply with 60 * 1000

Next steps / ideas

  • [ ] Make it possible to use day, day and month or full day for the day attribute
  • [ ] Add support for "yesterday" for day attribute
  • [ ] Add support for "monday", "tuesday", etc. for day attribute (takes the last monday, tuesday, etc.)
  • [ ] Add support for logging with positionals for day crytime in 08:00 2020-01-01
  • [ ] Add undo command
  • [ ] One and two digits should parse as hours not minutes
  • [ ] Support ranges crytime range 08:00-17:00 or crytime range 8-17 2020-01-01
  • [ ] Add support for fallback dates (only supply the day -> use current month and year) crytime in 08:00 1
  • [ ] If the last entry is open and it's today, ad the time to the last entry for the total of the day

Readme

Keywords

none

Package Sidebar

Install

npm i crytime

Weekly Downloads

2

Version

0.4.3

License

WTFPL-2.0

Unpacked Size

38.7 kB

Total Files

9

Last publish

Collaborators

  • jaggli