🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

identify-package-manager

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

identify-package-manager

Check the used package manager in a given repository (npm, yarn classic, yarn berry, pnpm, bun)

latest
Source
npmnpm
Version
1.2.0
Version published
Maintainers
1
Created
Source

identify-package-manager 📦📦📦📦

Version

Detect the package manager used by a repository from any nested directory.

The package works as a CLI and as a library. It inspects packageManager metadata when present and falls back to common lockfiles such as package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lock, and bun.lockb.

Installation

npm install identify-package-manager

You can also run it without a global install:

npx identify-package-manager

CLI usage

Run the command anywhere inside the repository you want to inspect:

identify-package-manager [options] [directory]

Without any flag, the CLI prints the package manager name plus version info when it can determine one:

{
  "name": "yarn-berry",
  "version": {
    "simple": "4.6.1",
    "detailed": {
      "major": 4,
      "minor": 6,
      "patch": 1
    }
  }
}

Use --nameonly if you only need the normalized package manager name.

CLI options

optionexplanation
-h / --helpDisplay this package's help + usage info.
-v / --versionDisplay this package's version number.
-n / --nameonlyIf set, the CLI only returns the package manager name (npm, yarn-classic, yarn-berry, pnpm, bun, or unknown).

Library usage

import { identifyPackageManager } from "identify-package-manager";

const packageManagerInfo = identifyPackageManager();
console.log(packageManagerInfo);

const packageManagerName = identifyPackageManager(true);
console.log(packageManagerName);

You may also pass an explicit starting directory instead of relying on process.cwd():

const packageManagerInfo = identifyPackageManager(false, "/path/inside/repository");

Development

This repository uses npm, not Yarn or pnpm.

Useful commands:

npm test
npm run build
npm run verify

Commits are expected to use conventional commit messages. Local raw git commit is blocked by Husky on purpose; use the interactive helper instead:

npm run commit

That helper is intentionally a small local script instead of commitizen to avoid extra transitive maintenance and vulnerability surface.

Release workflow

Releases are automated with semantic-release in GitHub Actions.

  • CI runs npm ci and npm run verify.
  • Releases run on pushes to main or master, plus manual workflow dispatch.
  • The workflow is designed for protected branches and does not rely on pushing version or changelog commits back to git.
  • Git tags, npm releases, and GitHub Releases are the release source of truth.
  • Because of that, the package.json version committed on main can lag behind the latest published version.
  • The release workflow is set up for npm Trusted Publishing via GitHub Actions OIDC. No long-lived NPM_TOKEN should be required once the npm package is configured for trusted publishing.
  • When migrating an already-published package to semantic-release, add a vX.Y.Z tag to the latest already-published commit before the first automated release so semantic-release has the correct baseline.
  • npm run release:dry-run intentionally skips npm and GitHub publishing plugins and uses the local checkout as the release repository so you can preview release calculation without GitHub push credentials or npm auth.

You can preview the release process locally with:

npm run release:dry-run

Keywords

npm

FAQs

Package last updated on 09 Apr 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts