A simple tool to find an open port or domain socket on the current machine
See the codeYou can install portfinder using a package manager like npm, yarn, or bun:
npm install portfinder
The portfinder module has a simple interface:
const portfinder = require('portfinder');
portfinder.getPort(function (err, port) {
//
// `port` is guaranteed to be a free port
// in this scope.
//
});
Or using promises:
const portfinder = require('portfinder');
portfinder.getPortPromise()
.then((port) => {
//
// `port` is guaranteed to be a free port
// in this scope.
//
})
.catch((err) => {
//
// Could not get a free port, `err` contains the reason.
//
});
By default portfinder will start searching from 8000 and scan until maximum port number (65535) is reached.
You can change this globally by setting:
portfinder.setBasePort(3000); // default: 8000
portfinder.setHighestPort(3333); // default: 65535
or by passing optional options object on each invocation:
portfinder.getPort({
port: 3000, // minimum port
stopPort: 3333 // maximum port
}, callback);
npm test
2,229 followers · starred Apr 2022
47 followers · starred Dec 2019
590 followers · starred Jun 2025
2,020 followers · starred Jun 2025
A simple tool to find an open port or domain socket on the current machine
See the codeYou can install portfinder using a package manager like npm, yarn, or bun:
npm install portfinder
The portfinder module has a simple interface:
const portfinder = require('portfinder');
portfinder.getPort(function (err, port) {
//
// `port` is guaranteed to be a free port
// in this scope.
//
});
Or using promises:
const portfinder = require('portfinder');
portfinder.getPortPromise()
.then((port) => {
//
// `port` is guaranteed to be a free port
// in this scope.
//
})
.catch((err) => {
//
// Could not get a free port, `err` contains the reason.
//
});
By default portfinder will start searching from 8000 and scan until maximum port number (65535) is reached.
You can change this globally by setting:
portfinder.setBasePort(3000); // default: 8000
portfinder.setHighestPort(3333); // default: 65535
or by passing optional options object on each invocation:
portfinder.getPort({
port: 3000, // minimum port
stopPort: 3333 // maximum port
}, callback);
npm test
2,229 followers · starred Apr 2022
47 followers · starred Dec 2019
590 followers · starred Jun 2025
2,020 followers · starred Jun 2025