Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

A keycounter, made to record one-dimensional data of computer usage for the purpose of visualization and analysis.

Use it with

minute is the original - it uses d3js to render minute output in-browser with some interactivity.

Sleep Chart calculates hours of sleep based on keystroke gaps. Depressing, right?

basically.js is a non-interactive but faster minute visualization based on node-canvas.

weekgram.js draws keystroke frequency per minute for a week, showing patterns in sleeping hours, etc.

How to Use it

Download the binary (see below), and run it. It'll record keystrokes at ~/Documents/minute/keystrokes.log in a CSV document. In order for this to work, you need to grant hihowareyou Accessibility access under Security & Privacy of your System Preferences.

Remember: when you upgrade OSX, your accessibility permissions can get wonky. Remember to re-enable access after updating.


You can compile from source here, but you probably want to just download a pre-built binary to get this working.

See Also

What it Does, Technically

It fills in a log at ~/Documents/minute/keystrokes.log with the number of keystrokes you make every minute.

All it does is count keystrokes. Unlike a keylogger, it doesn't steal your money, or do anything amusing that gains national attention. If you don't trust me, read the horribly constructed Objective-C yourself, or don't use it.

It requires the Accessibility API to enabled, or for you to trust the application.