Package Exports
- git-suggest
- git-suggest/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (git-suggest) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
git-suggest 🤖
A lightweight command-line tool that automatically generates and suggests contextual, high-quality Git commit messages based on your staged code changes. Powered by GitHub Copilot CLI, it helps you write smarter commits with less typing.
Features
- AI-Powered: Uses GitHub Copilot CLI to generate intelligent commit messages
- Contextual: Analyzes your staged changes to create relevant commit messages
- Conventional Commits: Follows semantic commit message conventions
- Shell Integration: Auto-complete support for
git commit -mcommands - Cross-Platform: Works on Windows, macOS, and Linux
- Interactive Mode: Choose from suggestions or edit messages before committing
- Type Detection: Automatically detects commit types (feat, fix, docs, etc.)
Quick Start
Installation
npm install -g git-suggestPrerequisites
git-suggest requires:
- Git
- GitHub CLI
- GitHub Copilot CLI
- GitHub Copilot subscription
The installation script will attempt to install missing prerequisites automatically.
Setup
Authenticate with GitHub:
gh auth login
Setup shell integration:
git-suggest setup
Restart your terminal or source your shell config:
source ~/.bashrc # or ~/.zshrc
📖 Usage
Basic Usage
Stage your changes:
git add .
Generate a commit message:
git-suggest generate
Or use the shorthand:
git-suggest g
Interactive Mode
The tool will analyze your staged changes and present you with options:
📝 Suggested commit message:
"feat(auth): add OAuth2 login integration"
? What would you like to do?
❯ Use this message
Edit this message
Generate another suggestion
CancelShell Integration
After running git-suggest setup, you can get autocomplete suggestions when typing:
git commit -m "feat(data-<TAB>
# Automatically suggests: "feat(data-validation): add email format validation"Command Options
# Generate with specific type
git-suggest generate --type feat
# Generate with scope
git-suggest generate --type fix --scope auth
# Generate with custom prefix
git-suggest generate --prefix "hotfix:"
# Non-interactive mode
git-suggest generate --no-interactiveAvailable Commands
git-suggest generate- Generate commit message from staged changesgit-suggest setup- Setup shell integrationgit-suggest check- Check if prerequisites are installedgit-suggest --help- Show help information
🎯 Commit Types
git-suggest supports all conventional commit types:
| Type | Description |
|---|---|
feat |
A new feature |
fix |
A bug fix |
docs |
Documentation only changes |
style |
Changes that do not affect the meaning of the code |
refactor |
A code change that neither fixes a bug nor adds a feature |
perf |
A code change that improves performance |
test |
Adding missing tests or correcting existing tests |
chore |
Changes to the build process or auxiliary tools |
ci |
Changes to CI configuration files and scripts |
build |
Changes that affect the build system or external dependencies |
revert |
Reverts a previous commit |
🔧 Configuration
Shell Support
git-suggest supports:
- Bash (Linux, macOS, Windows WSL)
- Zsh (macOS default, Linux)
- Fish (Cross-platform)
Environment Variables
SHELL- Automatically detected shell typeHOME- User home directory for config files
📋 Examples
Example 1: New Feature
# You added a new login component
git add src/components/Login.tsx
git-suggest generate
# Output: "feat(auth): add login component with form validation"Example 2: Bug Fix
# You fixed a validation bug
git add src/utils/validation.js
git-suggest generate
# Output: "fix(validation): handle empty email input correctly"Example 3: Documentation
# You updated the README
git add README.md
git-suggest generate
# Output: "docs: update installation instructions"🛠️ Development
Building from Source
# Clone the repository
git clone https://github.com/techuila/git-suggest.git
cd git-suggest
# Install dependencies
npm install
# Build the project
npm run build
# Link for local development
npm linkRunning Tests
npm testLinting
npm run lint🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
Development Setup
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit your changes (
git-suggest generate😉) - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- GitHub Copilot for the AI-powered suggestions
- Conventional Commits for the commit message format
- Commander.js for the CLI framework
📞 Support
🔗 Related Projects
- commitizen - Command line utility to format commit messages
- conventional-changelog - Generate changelogs from conventional commits
- husky - Git hooks made easy
Made with ❤️ by developers, for developers. Happy committing! 🎉