pjt
v1.0.27
Published
A powerful cross-platform CLI tool for maintaining clean Git repositories. Removes empty directories, ignored files, and reinstalls dependencies with support for npm, pnpm, and yarn.
Maintainers
Readme
pjt
A powerful cross-platform CLI tool for maintaining clean Git repositories. Cleans ignored files and reinstalls dependencies with support for npm, pnpm, yarn, and bun.
✨ Features
- 🧹 Git Repository Cleanup - Clean ignored files and directories from Git repositories
- 📦 Dependency Reinstallation - Automatically reinstall dependencies using detected package manager
- ⚡ Development Workflow - Run format, lint, build, test commands with a single tool
- 🔄 Cross-Platform - Works seamlessly on Linux, macOS, and Windows
- 🚀 TypeScript First - Built with TypeScript 5.9+ and strict mode for reliability
- 🛡️ Safe Operations - Dry-run mode prevents accidents
- 🎯 Zero Config - Works out of the box with sensible defaults
- 🔧 Extensible - Easy to integrate into existing workflows
📦 Installation
Global (Recommended)
npm install -g pjt
# or
pnpm add -g pjt
# or
yarn global add pjtLocal (Project-specific)
npm install --save-dev pjt
# or
pnpm add -D pjt
# or
yarn add -D pjt🚀 Quick Start
Clean your Git repository and refresh dependencies:
cd your-project
pjtThat's it! Your repository is now clean and dependencies are reinstalled.
📖 Usage
Core Command
Git Repository Cleanup and Dependency Reinstallation (Default)
Clean your Git repository by removing ignored files and reinstall dependencies:
pjtDevelopment Workflow
Run common development tasks:
pjt format # Format code with Prettier
pjt lint # Lint with ESLint
pjt build # Build the project
pjt test # Run tests with VitestCommand Options
| Option | Description | Example |
| -------------- | --------------------------------- | --------------------- |
| -d, --dryRun | Preview changes without executing | pjt --dryRun |
| -f, --hard | Force clean (use -Xdf) | pjt --hard |
| --dir | Target directory | pjt --dir ./project |
| --help | Show help information | pjt --help |
| --version | Show version number | pjt --version |
Shell Completions
Generate shell completions for better DX:
# Bash
pjt completions --shell bash >> ~/.bashrc
# Zsh
pjt completions --shell zsh >> ~/.zshrc
# Fish
pjt completions --shell fish > ~/.config/fish/completions/pjt.fish🔧 API
Use pjt programmatically in your Node.js applications:
import main from "pjt";
// Run the CLI programmatically
await main();TypeScript Types
import type { CommandDef } from "citty";⚙️ Configuration
Prettier Configuration
Use pjt's battle-tested Prettier config in your projects:
// prettier.config.js
module.exports = require("pjt/prettier");// prettier.config.ts
import config from "pjt/prettier";
export default config;This config includes:
- TypeScript, JavaScript, JSON, YAML, and Markdown support
- Package.json formatting with
prettier-plugin-packagejson - Consistent formatting for VS Code workspace files
🤝 Contributing
We welcome contributions! Here's how to get involved:
Development Setup
git clone https://github.com/pavstev/pjt.git
cd pjt
pnpm install
pnpm build
pnpm testDevelopment Commands
pnpm all # Run all checks (format, lint, build, typecheck, test, knip)
pnpm format # Format code
pnpm lint # Lint code
pnpm typecheck # Type check
pnpm test # Run tests
pnpm build # Build projectGuidelines
- Code Style: Follow the existing TypeScript patterns
- Testing: Add tests for new features
- Commits: Use conventional commits
- PRs: Ensure CI passes and add a clear description
📄 License
MIT © Stevan Pavlovic
🙏 Acknowledgments
Built with ❤️ using:
- citty - CLI framework
- consola - Logging
- package-manager-detector - Package manager detection
- tinyexec - Command execution
- zod - Schema validation
