An open API service indexing awesome lists of open source software.

https://github.com/ljlm0402/packmate

♻️ Your friendly companion for smart dependency updates and cleanup.
https://github.com/ljlm0402/packmate

npm npm-package packmate

Last synced: about 2 months ago
JSON representation

♻️ Your friendly companion for smart dependency updates and cleanup.

Awesome Lists containing this project

README

          




Project Logo




PackMate


♻️ Your smart and friendly CLI assistant for dependency updates and cleanup



npm Info



npm Version


npm Release Version


npm Downloads


npm Package License



github Stars


github Forks


github Contributors


github Issues


---

Packmate is a modern CLI tool for managing, updating, and cleaning up your Node.js project dependencies.
It supports **npm**, **pnpm**, and **yarn**. With an intuitive interactive UI, Packmate helps you keep your project healthy and up-to-date—faster and safer than ever.

## 🤖 Why Packmate?

- Cleaner and more focused than most legacy dependency updaters.
- Safer: latest packages cannot be selected by mistake.
- Faster: only recommended version upgrades are suggested by default.
- Supports monorepos and modern workspaces (pnpm, yarn, npm).

## 🚀 Features

- **Detects outdated dependencies** and suggests updates with recommended (major/minor) versions.
- **Finds and removes unused packages** from your project.
- **Detects declared but not installed packages** and helps install them easily.
- **Protects up-to-date packages:** disables selection for already latest packages.
- **Smart version suggestions**: Only shows the latest version for each major release.
- **Modern CLI interface:** powered by [@clack/prompts](https://github.com/natemoo-re/clack).
- **Works with npm, pnpm, and yarn** – auto-detects your package manager.

## 💾 Installation

```sh
npm install -g packmate
# or
pnpm add -g packmate
# or
yarn global add packmate
```

You can also run it instantly with:

```sh
npx packmate
```

## 📝 Usage

From your project root, just run:

```sh
packmate
```

**Typical Workflow Example:**

```sh
┌ 📦 Packmate: Dependency Updates & Cleanup

◆ Select the packages you want to update/remove/install:
│ ◻ globby 13.2.2 → 14.1.0 [Update Available]
│ ◻ precinct [Not Installed]
│ ◻ chalk 4.1.2 [Unused]
│ ◻ npm-check-updates 16.14.20 → 18.0.1 [Update Available]
│ ◼ @clack/prompts 0.11.0 [Latest]
│ ◼ fs-extra 11.1.1 [Latest]

globby - choose a version to update (current: 13.2.2):
● 14.1.0 (major) [recommended]
○ 13.4.2 (minor) [recommended]
○ 13.2.3 (patch)
...

precinct is not installed. Install now?
> pnpm add precinct@latest

chalk is unused. Remove now?
> pnpm remove chalk

npm-check-updates - choose a version to update (current: 16.14.20):
● 18.0.1 (major) [recommended]
○ 17.5.0 (minor)
...

> pnpm add globby@14.1.0
> pnpm remove chalk
> pnpm add precinct@latest
> pnpm add npm-check-updates@18.0.1

✔️ Package update completed: globby@14.1.0
✔️ Package removal completed: chalk
✔️ Package install completed: precinct@latest
✔️ Package update completed: npm-check-updates@18.0.1

Packmate done! 🙌
```

## ⚙️ Requirements

- Node.js v16 or later (recommended)
- Supports npm, yarn, and pnpm
- Works on Mac, Linux, and Windows

## 🔑 CLI Options

No extra options needed—just run packmate in your project directory.
All selections (update, remove, install) are interactive.

## 🧑‍💻 Contributing

PRs and issues are welcome!

- Fork the repo and submit pull requests.
- Use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) for commit messages.
- File bugs or suggestions via [GitHub Issues.](https://github.com/ljlm0402/packmate/issues)

## 📑 Recommended Commit Message

```
✨ Add user profile edit feature

- Implement profile image update UI/UX
- Add API integration for profile update

BREAKING CHANGE: Restructure profile page layout
```

| When | Commit Message |
| :--------------------- | :--------------------- |
| Add Feature | ✨ Add Feature |
| Fix Bug | 🐞 Fix Bug |
| Refactor Code | 🛠 Refactor Code |
| Install/Update Package | 📦 Install Package |
| Remove Package | 🗑️ Remove Package |
| Fix/Update README | 📚 Fix Readme |
| Update Documentation | 📝 Update Docs |
| Update Version | 🌼 Update Version |
| New Template | 🎉 New Template |
| Improve Performance | ⚡ Improve Performance |
| Add/Update Test | ✅ Add/Update Test |
| Fix Lint/Format | 🎨 Fix Lint/Format |
| Chore/Miscellaneous | 🔧 Chore |
| Initial Commit | 🎈 Initial Commit |

## 📄 License

MIT © [AGUMON (ljlm0402)](mailto:ljlm0402@gmail.com)

## 🌎 Links

- [GitHub](https://github.com/ljlm0402/packmate)
- [npm](https://www.npmjs.com/package/packmate)