Grunt can go grunt itself. Node.js API is good enough.