# ๐จ CommitCraft
[](https://crates.io/crates/commitcraft)
[](https://crates.io/crates/commitcraft)
[](https://opensource.org/licenses/MIT)
[](https://github.com/san0808/commitcraft/actions)
A fast, intelligent CLI tool that generates conventional commit messages using AI. Built in Rust for performance and reliability.
> **๐ What's New in v1.1.0**: Updated to the latest AI models for **75% faster responses** and **75% cost savings**! Now featuring GPT-4.1 Nano and Claude 3.5 Haiku as defaults.
## โจ Features
- **๐ค Multi-AI Provider Support**: Works with OpenAI, Google Gemini, and Anthropic Claude
- **๐ Conventional Commits**: Follows [Conventional Commits v1.0.0](https://www.conventionalcommits.org/en/v1.0.0/) specification
- **โ๏ธ Smart Configuration**: Interactive setup with TOML configuration file
- **๐ฏ Context-Aware**: Analyzes staged files and repository context
- **๐ง Developer-Friendly**: Built for fast iteration with dry-run, review, and verbose modes
- **๐ฑ Model Aliases**: Quick switching between models with custom aliases
## ๐ Quick Start
### Installation
#### Option 1: Quick Install (Linux/macOS)
```bash
#### Option 2: Install via Cargo
```bash
cargo install commitcraft
```
#### Option 3: Download Binary
Download the latest binary from [GitHub Releases](https://github.com/san0808/commitcraft/releases)
#### Option 4: Build from Source
```bash
git clone https://github.com/san0808/commitcraft
cd commitcraft
cargo build --release
sudo cp target/release/commitcraft /usr/local/bin/commitcraft
```
### Setup
```bash
# Run interactive setup
commitcraft setup
# Check your configuration
commitcraft config
# List available providers and models
commitcraft list
```
## ๐ Usage
### โจ **New Interactive Mode (Default)**
```bash
# Stage your changes
git add .
# Generate and edit commit command interactively
commitcraft
โ Message generated successfully!
๐ Generated commit message:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
feat(auth): add OAuth2 login support
Implement OAuth2 authentication flow with Google and GitHub providers.
Includes token refresh logic and secure storage.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Edit the command below (or press Enter to execute):
$ git commit -m "feat(auth): add OAuth2 login support"โ
# โ You can edit this command or just press Enter to execute
```
### ๐ **Quick Modes**
```bash
# Skip interactive editing, commit immediately
commitcraft -y
# Just show the git command (no execution)
commitcraft --show-command
# Dry run (generate message without committing)
commitcraft --dry-run
# Use legacy confirmation flow
commitcraft --legacy
```
### ๐ง **Advanced Usage**
```bash
# Use specific provider and model
commitcraft --provider openai --model gpt-4o
# Use model alias
commitcraft --model smart
# Include verbose output and file context
commitcraft --verbose --include-files
# Review in editor before committing
commitcraft --review
# Combine options
commitcraft --provider anthropic --model fast --verbose --yes
```
## ๐ ๏ธ Configuration
Configuration is stored at `~/.config/commitcraft/config.toml`:
```toml
default_provider = "gemini"
[api_keys]
openai = "sk-..."
gemini = "your-api-key"
anthropic = "your-api-key"
[models]
openai = "gpt-4.1-nano" # Latest: 75% faster & cheaper
gemini = "gemini-1.5-flash-latest" # Unchanged: Already optimal
anthropic = "claude-3-5-haiku-20241022" # Latest: Superior performance
[aliases]
fast = "gemini-1.5-flash-latest"
smart = "gpt-4o"
```
## ๐ฏ Conventional Commits
This tool generates commit messages following the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification:
```
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
```
### Supported Types
- `feat`: New features
- `fix`: Bug fixes
- `docs`: Documentation changes
- `style`: Code formatting
- `refactor`: Code restructuring
- `test`: Adding tests
- `chore`: Maintenance tasks
- `perf`: Performance improvements
- `ci`: CI/CD changes
- `build`: Build system changes
### Examples
```
feat(auth): add OAuth2 login support
Implement OAuth2 authentication flow with Google and GitHub providers.
Includes token refresh logic and secure storage.
feat!: remove deprecated API endpoints
BREAKING CHANGE: The v1 API endpoints have been removed. Use v2 instead.
```
## ๐๏ธ Project Structure
```
src/
โโโ main.rs # Main application entry point
โโโ cli.rs # Command-line interface definitions
โโโ config.rs # Configuration management
โโโ git.rs # Git operations (diff, commit, repo info)
โโโ providers/ # AI provider implementations
โโโ mod.rs # Common traits and structures
โโโ openai.rs # OpenAI GPT integration
โโโ gemini.rs # Google Gemini integration
โโโ anthropic.rs # Anthropic Claude integration
```
## ๐ฌ Demos & Recordings
### Watch CommitCraft in Action
Experience CommitCraft's power through our professional demo videos:
#### ๐ฏ Quick Demo (3 minutes)
Perfect for social media and quick showcases:
```bash
./demo/quick-demo.sh
```
#### ๐จ Full Cinematic Demo (8-10 minutes)
Complete feature walkthrough for presentations:
```bash
./demo/cinematic-demo.sh
```
**Automatic Features:**
- โ
Generates MP4, GIF, WebM formats for any platform
- โ
Professional quality with realistic typing effects
- โ
Upload guides for YouTube, Twitter, LinkedIn, GitHub
See [`demo/README.md`](demo/README.md) for complete documentation.
## ๐งช Development
### Building
```bash
cargo build --release
```
### Testing
```bash
cargo test
```
### Manual Testing Checklist
1. **Setup Flow**
```bash
cargo run -- setup
```
2. **Basic Generation**
```bash
git add some-file.rs
cargo run -- --dry-run
```
3. **Provider Testing**
```bash
cargo run -- --provider openai --dry-run
cargo run -- --provider gemini --dry-run
cargo run -- --provider anthropic --dry-run
```
4. **Advanced Features**
```bash
cargo run -- --verbose --include-files --dry-run
cargo run -- config
cargo run -- list
```
## ๐ง Troubleshooting
### Common Issues
**"Not inside a git repository"**
- Make sure you're in a git repository
- Run `git init` if needed
**"No staged files to commit"**
- Stage your changes with `git add .` or `git add <file>`
**"API key not found"**
- Run `commitcraft setup` to configure API keys
- Check your configuration with `commitcraft config`
**Build errors**
- Ensure you have Rust 1.70+ installed
- Run `rustup update` to update your toolchain
## ๐ค Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests
5. Submit a pull request
## ๐ License
MIT License - see LICENSE file for details.
## ๐ Acknowledgments
- [Conventional Commits](https://www.conventionalcommits.org/) specification
- Rust community for excellent crates
- AI providers (OpenAI, Google, Anthropic) for powerful models