Time the execution of each of your grunt tasks automatically
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


grunt-timer Dependency Status devDependency Status

grunt-timer.js times the duration of each of your grunt tasks automatically and outputs the execution time in milliseconds to the console after each task. It also logs the total time for all logged tasks at the end.

Getting started

Install grunt-timer

npm install grunt-timer ## --save-dev

Upgrade your Gruntfile.js

Add the grunt-timer reference to the very top of your Gruntfile.js:

var timer = require("grunt-timer");

Add the timer init call at the top of the module.exports function:

module.exports = function (grunt) {

Example output

Running "run:500" (run) task
500ms task ran
Task 'run:500' took 502ms
All tasks took 502ms


To use any option, pass an object parameter to your initialise function like so:

module.exports = function (grunt) {
    timer.init(grunt, { deferLogs: true, friendlyTime: true, color: "blue" });


If you'd prefer to see a summary of all your task timings at the end of the grunt process, enable this option.

This is useful for the case where you have many grunt tasks, or they generate a lot of output while they are running, and it might be tedious to scroll back through the console to find all the timing messages.


Behaves like deferLogs but will also do the default inline logging.

This is useful if you want the summary (deferLogs) but a build could timeout, which would means there could be no grunt timer logs.


Enable this if you'd prefer to see the durations reported in a friendly hours/minutes/seconds format, instead of ms.

Task 'jshint:all' took 3 seconds


Enable this if you'd prefer to only see the time all tasks took to complete.

This is useful for having many small, insignificant tasks that would generate considerable output even with deferLogs.

All tasks took 502ms


If supplied, will override default purple for console output.

No color will be output if the grunt --no-color option is specified.


Array of task aliases to ignore. e.g to stop grunt-timer running with the default task:

module.exports = function (grunt) {
    timer.init(grunt, { ignoreAlias: ["default"] });


  • The last task duration is output after the "Done, without errors". This is due to the way the hooking for the task name change works.


MIT License