https://github.com/glincker/commitweave
โจ A modern CLI tool to write smart, consistent, and beautiful git commit messages, powered by Conventional Commits, emoji support, and optional AI. @typeweaver/commitweave
https://github.com/glincker/commitweave
ai-commit automation cli commit-lint commitizen commits conventional-commits developer-tools git gitmoji glincker glinr husky ink npx openai terminal typeweaver
Last synced: 8 months ago
JSON representation
โจ A modern CLI tool to write smart, consistent, and beautiful git commit messages, powered by Conventional Commits, emoji support, and optional AI. @typeweaver/commitweave
- Host: GitHub
- URL: https://github.com/glincker/commitweave
- Owner: GLINCKER
- License: mit
- Created: 2025-07-15T22:39:38.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-07-16T04:17:34.000Z (8 months ago)
- Last Synced: 2025-07-17T07:20:49.431Z (8 months ago)
- Topics: ai-commit, automation, cli, commit-lint, commitizen, commits, conventional-commits, developer-tools, git, gitmoji, glincker, glinr, husky, ink, npx, openai, terminal, typeweaver
- Language: TypeScript
- Homepage: https://typeweaver.com/
- Size: 23.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CommitWeave ๐งถ
[](https://www.npmjs.com/package/@typeweaver/commitweave)
[](https://opensource.org/licenses/MIT)
[](https://www.typescriptlang.org/)
[](https://nodejs.org/)
> A modern CLI tool for creating smart, structured, and beautiful git commit messages with emoji support, conventional commit standards, and interactive Git integration.
## โจ Features
- ๐จ **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
## ๐ Quick Start
### Installation
#### Beta Release (Recommended)
```bash
npm install -g @typeweaver/commitweave@beta
```
#### Specific Version
```bash
npm install -g @typeweaver/commitweave@0.1.0-beta.3
```
### Basic Usage
1. **Initialize configuration** (first time):
```bash
commitweave init
```
2. **Create commits interactively**:
```bash
commitweave
```
That's it! CommitWeave will guide you through creating perfect commits.
## ๐ Commands
### `commitweave`
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
### `commitweave init`
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
### Development Commands
For development and testing:
```bash
# Development mode (full functionality)
npx tsx bin/index.ts
# Run tests
npm test
# Build the package
npm run build
```
## โ๏ธ Configuration
CommitWeave uses a `glinr-commit.json` file for configuration:
```json
{
"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
}
```
### Default Commit Types
| 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 |
## ๐ Commit Message Format
CommitWeave follows the [Conventional Commits](https://www.conventionalcommits.org/) specification:
```
[optional scope]:
[optional body]
[optional footer(s)]
```
### Examples
**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
```
## ๐ ๏ธ Development
### Prerequisites
- Node.js >= 18.0.0
- npm or yarn
- Git
### Setup
```bash
# 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
```
### Project Structure
```
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
```
## ๐งช Testing
```bash
# Run all tests
npm test
# Test commit builder
npx tsx scripts/test-local.ts
# Test CLI functions
npx tsx scripts/test-cli-functions.ts
```
## ๐ฆ Publishing
CommitWeave uses automated publishing via GitHub Actions:
```bash
# 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
## ๐ค Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
### Quick Contribution Steps
1. Fork the repository
2. Create a feature branch: `git checkout -b feature/amazing-feature`
3. Make your changes
4. Add tests if applicable
5. Run `npm test` to ensure everything works
6. Commit using CommitWeave: `commitweave`
7. Push and create a Pull Request
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## ๐ Acknowledgments
- [Conventional Commits](https://www.conventionalcommits.org/) for the commit format specification
- [Enquirer](https://github.com/enquirejs/enquirer) for beautiful CLI prompts
- [Chalk](https://github.com/chalk/chalk) for terminal string styling
- [Simple Git](https://github.com/steveukx/git-js) for Git integration
## ๐ Links
- [NPM Package](https://www.npmjs.com/package/@typeweaver/commitweave)
- [GitHub Repository](https://github.com/GLINCKER/commitweave)
- [Issue Tracker](https://github.com/GLINCKER/commitweave/issues)
- [TypeWeaver Organization](https://github.com/GLINCKER)
---
**Made with โค๏ธ by the TypeWeaver team**