A macOS menubar app that automatically translates package manager commands between npm, pnpm, yarn, and bun.
- π Automatic Command Translation - Copy any package manager command and it gets instantly translated to your preferred package manager
- π¦ Universal Support - Works with npm, pnpm, yarn, and bun
- πββοΈ Runner Commands - Supports npx, pnpx, pnpm dlx, bunx, and yarn dlx
- β‘ Real-time Monitoring - Monitors your clipboard automatically
- π― Smart Translation - Handles global installs, script commands, and package manager specific syntax
- π₯οΈ Native macOS Design - Clean, minimal menubar interface
- Select your preferred package manager (npm, pnpm, yarn, or bun)
- Start monitoring by clicking the toggle button
- Copy any package manager command - it automatically gets translated and replaced in your clipboard
| Original Command | Preferred: pnpm | Preferred: yarn | Preferred: bun |
|---|---|---|---|
npm install react |
pnpm add react |
yarn add react |
bun add react |
npx create-react-app |
pnpx create-react-app |
yarn dlx create-react-app |
bunx create-react-app |
pnpx create-next-app |
pnpx create-next-app |
yarn dlx create-next-app |
bunx create-next-app |
pnpm dlx create-next-app |
pnpm dlx create-next-app |
yarn dlx create-next-app |
bunx create-next-app |
yarn build |
pnpm run build |
yarn build |
bun run build |
bun install -g typescript |
pnpm add -g typescript |
yarn global add typescript |
bun add -g typescript |
bunx prisma generate |
pnpx prisma generate |
yarn dlx prisma generate |
npx prisma generate |
Download the latest release from the Releases page.
-
Clone the repository:
git clone https://github.com/MartinPTielemans/packswitcher.git cd packswitcher -
Install dependencies:
pnpm install
-
Build the app:
pnpm tauri build
- Click the PackSwitcher icon in your menubar
- Select your preferred package manager
- Click "Start Monitoring"
- Copy any package manager command - it will be automatically translated!
- Package Management:
install,add,uninstall,remove - Script Running:
run,start,build,test,dev - Global Installs:
-g,--global - Package Runners:
npx,pnpx,pnpm dlx,bunx,yarn dlx
- macOS 10.15 or later
- Clipboard access permission
-
Clone the repository:
git clone https://github.com/MartinPTielemans/PackSwitcher.git cd PackSwitcher -
Install dependencies:
pnpm install
-
Start the development server:
pnpm tauri dev
This project uses automated code formatting and linting to maintain consistent code quality.
The project is configured with:
- Prettier for code formatting
- ESLint for code linting
- TypeScript strict mode for type safety
- Pre-commit hooks to automatically format and lint staged files
| Command | Description |
|---|---|
pnpm run format |
Format all files with Prettier |
pnpm run format:check |
Check if all files are properly formatted |
pnpm run lint |
Run ESLint to check for issues |
pnpm run lint:fix |
Run ESLint and fix auto-fixable issues |
pnpm run type-check |
Run TypeScript type checking |
pnpm run check |
Run all checks (formatting, linting, type checking) |
pnpm run fix |
Fix all auto-fixable issues (formatting + linting) |
pnpm run ci |
Run full CI pipeline locally |
The project uses Husky and lint-staged to automatically format and lint your code before commits:
- Prettier formats TypeScript, JavaScript, JSON, and Markdown files
- ESLint fixes auto-fixable linting issues
- Only staged files are processed for faster commits
For the best development experience, we recommend using VS Code with the following extensions (automatically suggested when you open the project):
- Prettier - Code formatter
- ESLint - JavaScript/TypeScript linter
- Tauri - Tauri framework support
- Rust Analyzer - Rust language support
- EditorConfig - Consistent editor settings
The project includes VS Code settings that automatically:
- Format code on save
- Fix ESLint issues on save
- Organize imports on save
The GitHub Actions workflow automatically checks:
- β Code formatting (Prettier)
- β Code linting (ESLint)
- β Type checking (TypeScript)
- β Build success
- β Rust code formatting and linting
If any checks fail, the CI will provide helpful error messages with suggestions on how to fix the issues.
Build the application for production:
pnpm tauri buildThis will create platform-specific installers in the src-tauri/target/release/bundle/ directory.
MIT License - see LICENSE for details.
Contributions are welcome! Please feel free to submit a Pull Request.