A modern CLI tool for creating smart, structured, and beautiful git commit messages with emoji support, conventional commit standards, and interactive Git integration.
- 🎨 Interactive CLI Experience - Beautiful prompts with colorful output
- 📝 Conventional Commits - Full support for conventional commit standards
- 🎭 Smart Emoji Integration - Contextual emojis for different commit types
- ⚙️ Highly Configurable - Customize commit types, emojis, and validation rules
- 🔧 Git Integration - Stage files and commit in one seamless workflow
- 📦 TypeScript First - Complete type definitions and IntelliSense support
- 🛡️ Cross-Platform - Works on Windows, macOS, and Linux
- 🚀 Zero Dependencies Bloat - Minimal, focused dependencies
npm install -g @typeweaver/commitweave@beta
npm install -g @typeweaver/commitweave@0.1.0-beta.3
-
Initialize configuration (first time):
commitweave init
-
Create commits interactively:
commitweave
That's it! CommitWeave will guide you through creating perfect commits.
Start the interactive commit creation process.
Features:
- Select commit type with emoji and description
- Add optional scope for better organization
- Write clear, concise commit subjects
- Add detailed body descriptions
- Mark breaking changes appropriately
- Preview your commit message before confirmation
- Automatically stage all files and commit
Initialize or update your project's commit configuration.
What it does:
- Creates
glinr-commit.json
in your project root - Sets up default commit types with emojis
- Configures conventional commit standards
- Warns before overwriting existing configuration
For development and testing:
# Development mode (full functionality) npx tsx bin/index.ts # Run tests npm test # Build the package npm run build
CommitWeave uses a glinr-commit.json
file for configuration:
{ "commitTypes": [ { "type": "feat", "emoji": "✨", "description": "A new feature", "aliases": ["feature", "new"] }, { "type": "fix", "emoji": "🐛", "description": "A bug fix", "aliases": ["bugfix", "hotfix"] } ], "emojiEnabled": true, "conventionalCommits": true, "maxSubjectLength": 50, "maxBodyLength": 72 }
Type | Emoji | Description | Aliases |
---|---|---|---|
feat | ✨ | A new feature | feature, new |
fix | 🐛 | A bug fix | bugfix, hotfix |
docs | 📚 | Documentation changes | documentation |
style | 💎 | Code style changes | formatting |
refactor | 📦 | Code refactoring | refactoring |
perf | 🚀 | Performance improvements | performance, optimization |
test | 🚨 | Testing | testing |
build | 🛠 | Build system changes | ci, deps |
ci | ⚙️ | CI configuration | continuous-integration |
chore | ♻️ | Maintenance tasks | maintenance |
revert | 🗑 | Revert previous commit | rollback |
CommitWeave follows the Conventional Commits specification:
<type>[optional scope]: <emoji> <description> [optional body] [optional footer(s)]
Simple commit:
feat: ✨ add user authentication
With scope:
feat(auth): ✨ add JWT token validation
With body and breaking change:
feat(api)!: ✨ implement new user API This introduces a new user management API that replaces the legacy user system. BREAKING CHANGE: Legacy user endpoints have been removed
- Node.js >= 18.0.0
- npm or yarn
- Git
# Clone the repository git clone https://github.com/GLINCKER/commitweave.git cd commitweave # Install dependencies npm install # Build the project npm run build # Run tests npm test # Development mode npm run dev
commitweave/ ├── src/ │ ├── cli/ # CLI interface logic │ ├── core/ # Core commit building logic │ ├── types/ # TypeScript type definitions │ ├── utils/ # Utility functions │ └── config/ # Configuration management ├── bin/ # CLI entry points ├── scripts/ # Build and utility scripts └── .github/workflows/ # CI/CD workflows
# Run all tests npm test # Test commit builder npx tsx scripts/test-local.ts # Test CLI functions npx tsx scripts/test-cli-functions.ts
CommitWeave uses automated publishing via GitHub Actions:
# Create a new beta release git tag v0.1.0-beta.3 git push origin v0.1.0-beta.3
This triggers:
- GitHub release creation
- NPM package publishing
- Beta tag distribution
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes
- Add tests if applicable
- Run
npm test
to ensure everything works - Commit using CommitWeave:
commitweave
- Push and create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Conventional Commits for the commit format specification
- Enquirer for beautiful CLI prompts
- Chalk for terminal string styling
- Simple Git for Git integration
Made with ❤️ by the TypeWeaver team