pm-finder
v1.1.0
Published
Find where your apps are installed — across every package manager.
Maintainers
Readme
pm-finder
Find where your apps are installed — across every package manager.
pm-finder is a cross-platform CLI tool that searches all installed package managers on your system to locate an app, show its version, and give you the exact commands to update or remove it.
Quick Start
No installation required:
npx pm-finder chromeExample output:
🔍 Found: google-chrome-stable
📦 Source: pacman
📍 Path: /usr/bin/google-chrome-stable
🏷️ Version: 136.0.7103.92-1
💡 Commands:
> Update: sudo pacman -S google-chrome-stable
> Uninstall: sudo pacman -R google-chrome-stable
🔍 Found: com.google.ChromeBeta
📦 Source: flatpak
🏷️ Version: 136.0.7103.25
💡 Commands:
> Update: flatpak update com.google.ChromeBeta
> Uninstall: flatpak uninstall com.google.ChromeBetaInstallation
Run without installing (recommended)
npx pm-finder <app>Global install
npm install -g pm-finder
# or
bun add -g pm-finderThen use it anywhere:
pm-finder <app>Usage
pm-finder <app> [options]Examples
pm-finder git # Find git across all package managers
pm-finder node # Find Node.js
pm-finder vscode # Find VS Code (checks flatpak, snap, brew cask, winget…)
pm-finder python # Find Python installationsOptions
| Option | Description |
|---------------|------------------------------------|
| --help | Show help information |
| --version | Print the current version |
Supported Package Managers
Linux
| Package Manager | Description | |-----------------|----------------------| | pacman | Arch Linux | | yay | AUR helper | | apt / dpkg | Debian / Ubuntu | | dnf | Fedora | | zypper | openSUSE | | flatpak | Universal sandbox | | snap | Canonical snap store | | AppImage | Portable app bundles |
macOS
| Package Manager | Description | |--------------------|---------------------------| | brew (formula) | Homebrew CLI packages | | brew (cask) | Homebrew GUI applications | | mas | Mac App Store | | /Applications | Installed app bundles |
Windows
| Package Manager | Description | |-----------------|----------------------| | winget | Windows Package Manager | | choco | Chocolatey | | scoop | Scoop bucket manager |
Cross-Platform
| Package Manager | Description | |-----------------|----------------------| | npm | Node.js packages | | pnpm | Fast Node.js packages | | yarn | Yarn Node.js packages | | bun | Bun runtime packages | | pip | Python packages | | cargo | Rust crates | | go | Go modules |
How It Works
- Detect —
pm-finderchecks which package managers are available on your current OS. - Query — It queries each detected package manager in parallel for the given app name.
- Parse — Results (name, version, install path) are extracted from each manager's output.
- Display — Matches are printed with actionable update and uninstall commands.
Requirements
- Node.js >= 18
Development
# Clone the repository
git clone https://github.com/farhadEidi/pm-finder.git
cd pm-finder
# Install dependencies
bun install
# Run from source
bun run dev <app>
# Build for Node.js
bun run build
# Run tests
bun run test
# Format code
bun run format
# Lint code
bun run lintContributing
Contributions are welcome! Here is how to get started:
- Fork the repository and create a new branch.
- Make your changes with clear, focused commits.
- Add or update tests as needed.
- Run
bun run lintandbun run testto verify everything passes. - Open a pull request with a clear description of what you changed and why.
If you are adding support for a new package manager, please include detection logic, query parsing, and at least one test case.
License
MIT — free to use, modify, and distribute.
