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