npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

the-last-browser-launcher

v0.1.1

Published

Detect, launch and stop browsers

Readme

the-last-browser-launcher

Detect the browsers installed on your system and launch them in an isolated profile for automation & testing purposes. Supports Linux, Mac and Windows.

npm status node Travis build status JavaScript Style Guide

This project is the latest in a long series, each forked from the last:

They all have their problems. This fork is temporary, meant to consolidate fixes and reduce API surface, after which it will be split up into small, community-owned modules. In other words, this fork exists so that the project can die a good death. Its API is subject to change without warning.

Supported browsers

  • Chrome
  • Chromium
  • Firefox
  • IE (Windows only)
  • Chromium-based Edge (Windows & Mac only)
  • Brave
  • Opera
  • Safari

Install

npm install the-last-browser-launcher

Example

Browser launch

const launcher = require('the-last-browser-launcher')

launcher.detect(function(err, manifests) {
  if (err) throw err

  launcher.launch(manifests[0], 'http://example.com/', function(err, instance) {
    if (err) throw err

    console.log('Instance started with PID:', instance.pid)

    instance.on('stop', function(code) {
      console.log('Instance stopped with exit code:', code)
    })
  })
})

Outputs:

$ node example/launch.js
Instance started with PID: 12345
Instance stopped with exit code: 0

API

const launcher = require('the-last-browser-launcher')

launcher.detect(callback)

Get available browsers.

Parameters:

  • Function callback(err, manifests)

launcher.launch(manifest, uri[, options], callback)

Open given URI in a browser and yield an instance of it.

Parameters:

  • Object manifest - A manifest from detect()
  • String uri - URI to open in a newly started browser
  • Object options:
    • String proxy - URI of the proxy server
    • Array args - additional command line arguments
    • Boolean skipDefaults - don't supply any default args to browser
    • Boolean detached - if true, then killing your script will not kill the opened browser
    • Array|String noProxy - An array of strings, containing proxy routes to skip over
    • Boolean headless - run in headless mode. Supported cross-platform by Chromium, Chrome, Edge, Brave and Firefox.
  • Function callback(err, instance)

instance

Browser instance object.

Properties:

  • Object process - reference to instance's process started with Node's child_process.spawn API
  • Number pid - instance's process PID
  • Stream stdout - instance's process STDOUT stream
  • Stream stderr - instance's process STDERR stream

Events:

  • stop - fired when instance stops

Methods:

  • unref()
  • stop(callback) - stop the instance and fire the callback once stopped

Known Issues

  • IE8: after several starts and stops, if you manually open IE it will come up with a pop-up asking if we want to restore tabs (#21)
  • Chrome @ OSX: it's not possible to launch multiple instances of Chrome at once

License

MIT