Log your hours worked using Git
Alternatives To Clockout
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Git Flight Rules40,950
a month ago17cc-by-sa-4.0
Flight rules for git
Husky29,53768,25183,897a day ago206May 09, 202219mitJavaScript
Git hooks made easy 🐶 woof!
a month ago28mitJavaScript
Most commonly used git tips and tricks.
Git Extras16,284
a day ago1March 03, 2021128mitShell
GIT utilities -- repo summary, repl, changelog population, author commit percentages and more
Cz Cli15,09313,21913,625a month ago78May 07, 2021177mitJavaScript
The commitizen command line utility. #BlackLivesMatter
Git Tips14,465
6 months ago
Commitlint13,70210,44120,79321 days ago55August 27, 2022142mitTypeScript
📓 Lint commit messages
Git History13,254
2 months ago7March 19, 201976mitJavaScript
Quickly browse the history of a file from any git repository
Gitui13,05013 days ago41January 26, 2022147mitRust
Blazing 💥 fast terminal-ui for git written in rust 🦀
Git Recipes13,001
4 years ago9
🥡 Git recipes in Chinese by Zhongyi Tong. 高质量的Git中文教程.
Alternatives To Clockout
Select To Compare

Alternative Project Comparisons

Build Status Code Climate Test Coverage

🕘 Clockout

You're being paid by the hour, but do you really want to worry about logging your hours? If you're using Git, isn't that already being done for you? Clockout is a tool that analyzes a Git repo and converts your commits into blocks of time worked.

Clockout determines how long each commit took by taking the time interval since the previous one, if it's close enough. With everything added up, Clockout can print out pretty (as far as CLI graphics go) charts and tables to show your boss, and your Git history is the evidence to back it up.


$ [sudo] gem install clockout

Display hours worked:

$ cd path/to/git/repo
$ clock



    --estimations, -e:  Show estimations made, if any
      --condensed, -c:  Condense output (don't show the timeline for each day)
 --user, -u (<email>):  Only count current user's commits (or a given user, if specified)
           --help, -h:  Show this message


    $ clock generate config    Generate config file (clock.yml)
    $ clock generate hook      Generate a post-commit hook for clockout

🕔 But, but...

What about the first commit in a time block? Say I wake up, work an hour on a feature, and commit it. If there was no previous commit that day to use as a reference point, how will that time be logged?


Clockout will estimate a time for a pioneer commit based on the size of its diff, using the diffs-per-hour rate on your other commits.

But sometimes these estimations can be misleading. (Say you've added third-party libraries to your code, which Git says is a lot of additions.) Just add a configuration file to the root of your repo to customize a range of options and make your hours estimations more accurate. Run the following from your repo to generate a template config file:

$ clock generate config

Clock-in, clock-out

Or, if you're dedicated, Clockout can be a lot more powerful. Right before working, simply run,

$ clock in

from your repo's directory. The current time will be logged in clock.yml, and the time for your next commit will be calculated from the clock-in time to the time that you git commit. Nothing more.

Let's say you've committed a feature and you're now spending time doing QA, writing emails, or any work outside of Git. How can you log those additional hours?

$ clock out

They work nicely together too, if you're working without committing anything. Also, both of these accept an optional argument that offsets the clock time, in minutes (ie, if you forgot to clock in 10 minutes ago, you can do clock in -10 instead.)

Post-commit hook

This is just for fun.

$ clock generate hook

This generates a post-commit hook for your repo that, on commit, will print out the time it took for that commit!

So now your commits will look something like this:

~/projects/github/clockout $ git commit -m"Add post-commit hook generator"
[clockout] 24.27 minutes logged
[master 9a806a6] Add post-commit hook generator
 4 files changed, 50 insertions(+), 27 deletions(-)
 rewrite clockout-0.5.gem (71%)

Getting rugged to install (Mac OS)

brew install cmake
Popular Git Projects
Popular Commit Projects
Popular Version Control Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.