gissy
v1.2.1
Published
An intelligent CLI assistant to automate your Git workflow with AI-powered commits, file watching, and multi-provider support (OpenAI, Gemini, Addis AI).
Maintainers
Readme
Gissy
If you find this project useful, please consider giving it a ⭐! Your support helps the project grow and reach more developers.
gissy is an intelligent, open-source command-line tool that automates your most repetitive Git tasks. From providing an enhanced git status to watching your files, running quality checks, and generating insightful, AI-powered commit messages, gissy acts as your personal Git assistant so you can focus on coding.
Your personal Git assistant✨ Key Features
- Open Source: Free to use, licensed under MIT, and open to community contributions.
- Intelligent File Watcher: Automatically detects file changes in your repository
- Automated Workflow: Runs your tests and linter, then stages, commits, and pushes your changes seamlessly
- SSH Key Setup: Automatic SSH key generation and GitHub configuration for seamless authentication
- AI-Powered Commits: Leverages multiple AI providers (OpenAI, Gemini, Addis AI) to generate meaningful and conventional commit messages from your code diffs
- Multi-AI Provider Support: Choose from OpenAI, Google Gemini, or Addis AI for local language support
- Highly Configurable: Customize every part of the workflow using a simple
.gissyrc.jsonfile in your project - Zero-Config Ready: Works out of the box with sensible defaults for most projects
- Cross-Platform: Works on Windows, macOS, and Linux
- Enhanced Git Commands: Clean, colorful, and informative outputs for
status,info, andbranchcommands - TypeScript Ready: Built with modern JavaScript (ES modules) for better performance
🛠️ Installation
Global Installation (Recommended)
npm install -g gissyUsing npx (No Installation Required)
# Run gissy without installing
npx gissy status
npx gissy watch
npx gissy info
npx gissy ssh⚙️ Configuration
Basic Configuration
Create a .gissyrc.json file in your project root:
{
"branch": "main",
"runTests": true,
"runLint": true,
"useAI": false,
"autoCommit": false,
"autoPush": false,
"testCommand": "npm test",
"lintCommand": "npm run lint",
"watchIgnore": [
"*.tmp",
"build/**",
"dist/**",
"node_modules/**",
".git/**",
"*.log"
]
}AI Provider Configuration
Gissy supports multiple AI providers for generating intelligent commit messages. Configure your preferred provider using environment variables:
Environment Variables
Create a .env file in your project root:
# OpenAI (default priority)
OPENAI_API_KEY=your_openai_api_key_here
# Google Gemini
GEMINI_API_KEY=your_gemini_api_key_here
# Addis AI (local languages support)
ADDIS_AI_API_KEY=your_addis_ai_api_key_hereProvider Priority
The system automatically detects which AI provider to use based on available API keys in this priority order:
- OpenAI (if
OPENAI_API_KEYis set) - Google Gemini (if
GEMINI_API_KEYis set) - Addis AI (if
ADDIS_AI_API_KEYis set)
AI Provider Features
| Provider | Model | Languages | Special Features | |----------|--------|-----------|------------------| | OpenAI | GPT-3.5-turbo | English | Conventional commit format | | Gemini | gemini-pro | Multiple | Advanced AI generation | | Addis AI | addis-ai | Afaan Oromo, Amharic | Local language support |
Multi-AI Provider Support Guide
Overview
Gissy supports multiple AI providers for generating intelligent commit messages, including OpenAI, Gemini, and Addis AI.
Supported Providers
- OpenAI - Standard GPT models for general commit messages
- Gemini - Google's Gemini models for advanced AI generation
- Addis AI - Local language support for Afaan Oromo and Amharic
Configuration Examples
.env file
# For OpenAI
OPENAI_API_KEY=sk-1234567890abcdef
# For Gemini
GEMINI_API_KEY=your-gemini-key-here
# For Addis AI (local languages)
ADDIS_AI_API_KEY=your-addis-ai-key-hereFeatures
- Multi-language support: Addis AI supports Afaan Oromo and Amharic
- Automatic fallback: Falls back to simple commit messages if no AI keys are available
- Zero-config ready: Works without any API keys
- Cross-platform: Works on Windows, macOS, and Linux
Migration Guide
From Single OpenAI to Multi-Provider
- Add new environment variables as needed
- No code changes required
- System automatically detects available providers
Backward Compatibility
- Existing OPENAI_API_KEY continues to work
- No breaking changes to existing configurations
- Fallback to simple commit messages when no keys are available
Configuration Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| branch | string | "main" | Target branch for pushes |
| runTests | boolean | true | Run tests before committing |
| runLint | boolean | true | Run linting before committing |
| useAI | boolean | false | Use AI for commit messages |
| autoCommit | boolean | false | Skip confirmation for commits |
| autoPush | boolean | false | Skip confirmation for pushes |
| testCommand | string | "npm test" | Command to run tests |
| lintCommand | string | "npm run lint" | Command to run linting |
| watchIgnore | array | [] | Additional patterns to ignore |
📖 Usage
Basic Commands
# Show enhanced git status with file changes
gissy status
# Show detailed repository information
gissy info
# List all branches with current indicator
gissy branch
# List remote branches
gissy branch --remote
# List all branches (local and remote)
gissy branch --all
# Start intelligent file watcher
gissy watch
# Show which AI provider is being used
gissy watch --verbose
# Generate and setup SSH key for GitHub
gissy ssh
# Show help and all available commands
gissy --help
# Using npx (no installation required)
npx gissy status
npx gissy watch --use-ai
npx gissy infoFile Watcher Workflow
The file watcher automatically:
- Monitors file changes in your repository
- Runs tests and linting (if enabled)
- Generates commit messages (AI or fallback)
- Stages, commits, and pushes changes
$ gissy watch
👀 gissy - Enhanced File Watcher Started
🚀 gissy — automate your GitHub workflows
📁 Watching current directory for changes...
⚙️ Configuration:
Tests: ✅
Linting: ✅
AI Commits: ❌
Auto Commit: ❌
Auto Push: ❌
Branch: main
📝 Modified: src/index.js
✅ All quality checks passed!
💭 AI commit message generated
🚀 Successfully committed and pushed changes!Advanced Usage
# Verbose logging during watch
gissy watch --verbose
# Custom ignore patterns
gissy watch --ignore "*.tmp" "build/**"
# Combined options
gissy watch --verbose --ignore "*.log" "dist/**"
# Using npx with all options
npx gissy watch --verbose --use-ai --ignore "*.log"🤝 Contributing
We welcome contributions! Please see our CONTRIBUTING.md file for detailed information on how to get started, development setup, and contribution guidelines.
📄 License
MIT License - see LICENSE file for details.
🙏 Acknowledgments
- Built with Commander.js for CLI
- File watching powered by Chokidar
- Configuration via Cosmiconfig
- AI integration with OpenAI
- Colorful output with Chalk
🚀 Roadmap
We have big plans for gissy! Here are some of the features we're looking to add in the future.
1. Advanced Configuration
- [ ] Custom commit message templates
- [ ] Multi-repository support
- [ ] Custom Git hooks
2. Enhanced AI
- [ ] Commit message validation
- [ ] User preference learning
3. Platform Integration
- [ ] Bitbucket pipeline support
- [ ] Azure DevOps integration
4. User Experience
- [ ] Color themes
- [ ] Progress bars for long-running tasks
- [ ] Detailed logging options
✍️ Author
Exodus Tola
- GitHub: @exodus-tola-mindCoder
- LinkedIn: Exodus Tola
- X (Twitter): @Exodus_Tola
- Telegram: @Exodus_Tola
