node package manager



A tiny, portable tail module for Node.js. Similar to tail -F in Unix. Extends node-file-size-watcher. Does not rely on, thus works in Windows. Install globally to use the command line tool.


    ft = fileTailer.startTailing('logfile.log');
    ft.on('line', function(line){
        // do stuff 


Start tailing with just a file descriptor string, or pass in an object with these properties:

    fd: aFileDescriptor,           // Required 
    ms: aFileCheckingInterval,     // Defaults to 100 (milliseconds) 
    mode: 'line',                  // The other option is 'stream' 
    encoding: 'utf8'               // see Node's fs.createReadStream 
    onErr: function(error){};      // immediately listen for 'error' event 


  • 'error' -- All errors including ENOENTs are emitted through this.
  • 'tailError' -- 'Error' with ENOENTs ignored; use if you don't care if the file is missing.
  • 'line' -- emitted whenever tailed file grows by a line (or many), unless mode is 'stream'.
  • 'stream' -- If mode is 'stream', will emit a Node.js stream object instead of lines. Use this if you need to preserve every byte or want to handle the details yourself.

Lastly, file-tail objects are just types of file-size-watchers, so you can use everything they have as well. See (


Try it out with with this little script (Use with Node script.js fileToTail):

var fd = process.argv[2],
ft = require('file-tail').startTailing(fd);
ft.on('line', function(line) {

CLI Usage

To use this tool on the command line, just install it globally (npm install -g). Then run nftail <filename>.

Help out

Bug reports, feedback, or code contributions are appreciated. All pull requests will be reviewed.