Skip to content

s41r4j/gims

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ GIMS - Git Made Simple

npm version License: MIT Node.js Version AI Powered

The AI-powered Git CLI that writes your commit messages for you

Because life's too short for "fix stuff" commits 🎯


✨ What is GIMS?

GIMS is a revolutionary Git CLI tool that uses AI to automatically generate meaningful commit messages from your code changes. Say goodbye to generic "update code" commits and hello to descriptive, professional commit messages that actually tell a story.

🎬 See It In Action

# Traditional Git workflow 😴
git add .
git commit -m "update stuff"  # πŸ€¦β€β™‚οΈ
git push

# GIMS workflow ⚑
g o  # AI analyzes changes, commits with perfect message, and pushes!

🌟 Features

πŸ€– AI-Powered Commit Messages

  • OpenAI, Google Gemini, and Groq support with automatic provider selection
  • Smart diff analysis that understands your code changes
  • Handles large codebases with intelligent summarization and safe truncation
  • Optional Conventional Commits formatting and optional commit body generation (--conventional, --body)

⚑ Lightning Fast Workflow

  • One command commits: g o - analyze, commit, and push
  • Smart suggestions: g s - get AI-generated messages copied to clipboard
  • Local commits: g l - commit locally with AI messages
  • Staged-only by default for suggestions for precise control (use --all to stage everything)

🧠 Intelligent Code Analysis

  • Analyzes actual code changes, not just file names
  • Understands context from function changes, imports, and logic
  • Graceful fallbacks for extremely large changesets and offline use

πŸ› οΈ Developer-Friendly

  • Numbered commit history with g ls / g ll and index-aware commands
  • Smart branching: g b 5 creates branch from commit #5
  • Safe operations with confirmations and dry-run support
  • JSON output for editor integrations
  • Quality-of-life: --amend, undo command, and automatic upstream setup on push
  • Manual commit command for custom messages: g m "your message"

πŸš€ Quick Start

Installation

npm install -g gims

Setup AI (Choose One)

Option 1: OpenAI

export OPENAI_API_KEY="your-api-key-here"

Option 2: Google Gemini

export GEMINI_API_KEY="your-api-key-here"

Option 3: Groq

export GROQ_API_KEY="your-api-key-here"
# Optional, if self-hosting/proxying
export GROQ_BASE_URL="https://api.groq.com/openai/v1"

GIMS auto-detects configured providers. If none are configured, it uses a local heuristic to generate sensible messages.

Your First AI Commit

# Make some changes to your code
echo "console.log('Hello GIMS!');" > hello.js

# Let AI commit it for you
g o
# Output: Committed & pushed: "Add hello world console log"

πŸ“– Commands Reference

Command Alias Description Example
gims init g i Initialize new Git repo g i
gims clone <repo> g c Clone repository g c https://github.com/user/repo
gims suggest g s Generate & copy commit message from staged changes (use --all to stage) g s --all
gims local g l AI commit locally g l
gims online g o AI commit + push (use --set-upstream on first push) g o --set-upstream
gims commit <message...> g m Commit with a custom message (no AI) g m "fix: handle empty input"
gims pull g p Pull latest changes g p
gims list g ls Show numbered commit history g ls
gims largelist g ll Detailed commit history g ll
gims branch <n> g b Branch from commit #n g b 3 feature-x
gims reset <n> g r Reset to commit #n (--hard needs --yes) g r 5 --hard --yes
gims revert <n> g rv Safely revert commit #n (requires --yes) g rv 2 --yes
gims undo g u Undo last commit (soft reset by default) g u or g u --hard --yes

Global Options

  • --provider <name>: AI provider: auto | openai | gemini | groq | none
  • --model <name>: Override model identifier for the chosen provider
  • --staged-only: Use only staged changes (default behavior for g s)
  • --all: Stage all changes before running
  • --no-clipboard: Do not copy suggestion to clipboard (for g s)
  • --body: Generate a commit body in addition to subject
  • --conventional: Format subject using Conventional Commits
  • --dry-run: Print what would happen without committing/pushing
  • --verbose: Verbose logging
  • --json: Machine-readable output for g s
  • --yes: Confirm destructive actions without prompting (e.g., reset/revert/undo)
  • --amend: Amend the last commit instead of creating a new one
  • --set-upstream: On push, set upstream if the current branch has none

πŸ’‘ Real-World Examples

πŸ”§ Bug Fix

# You fix a null pointer exception
g o
# AI generates: "Fix null pointer exception in user authentication"

✨ New Feature

# You add a search function
g o  
# AI generates: "Add search functionality with pagination support"

πŸ“š Documentation

# You update README and add comments
g o
# AI generates: "Update documentation and add inline code comments"

🎨 Refactoring

# You clean up code structure
g o
# AI generates: "Refactor authentication module for better maintainability"

πŸ”₯ Pro Tips

🎯 Perfect Workflow

g p                 # Pull latest changes
# ... code your features ...
g s                 # Preview AI suggestion from staged changes
g s --all           # Or stage everything and suggest
g l                 # Commit locally first
# ... test your changes ...
g o --set-upstream  # Push with automatic upstream setup on first push

🧠 Smart Branching

g ls                # See numbered history
g b 5 hotfix        # Branch from commit #5
g l                 # Make changes and commit
g checkout main && g pull  # Back to main

πŸ›‘οΈ Safe Experimentation

g l                 # Commit your experiment
# ... code breaks something ...
g r 1 --soft --yes  # Soft reset to previous commit (confirmed)
# ... or ...
g u --yes           # Undo last commit (soft)

βš™οΈ Configuration

Environment Variables

Variable Purpose
OPENAI_API_KEY OpenAI API access
GEMINI_API_KEY Google Gemini API access
GROQ_API_KEY Groq API access (OpenAI-compatible)
GROQ_BASE_URL Groq API base URL (optional)
GIMS_PROVIDER Default provider: auto
GIMS_MODEL Default model identifier for provider
GIMS_CONVENTIONAL 1 to enable Conventional Commits by default
GIMS_COPY 0 to disable clipboard copying in g s by default

.gimsrc (optional)

Place a .gimsrc JSON file in your repo root or home directory to set defaults:

{
  "provider": "auto",
  "model": "gpt-4o-mini",
  "conventional": true,
  "copy": true
}

Smart Fallbacks

GIMS handles edge cases gracefully:

  • πŸ”„ Large diffs: Automatically switches to summary or status view
  • βœ‚οΈ Massive text: Truncates safely with informative context
  • πŸ›œ No API key: Uses a local heuristic that summarizes your changes
  • ⚠️ API failures: Clear errors and local fallback so you keep moving
  • πŸ”’ Privacy-first: Only sends diffs when you explicitly run AI features

🀝 Contributing

We love contributions! Here's how to get involved:

  1. 🍴 Fork the repository
  2. 🌿 Create your feature branch: git checkout -b amazing-feature
  3. πŸ’» Code your improvements
  4. πŸ§ͺ Test thoroughly
  5. πŸ“ Commit with GIMS: g l (dogfooding!)
  6. πŸš€ Push and create a Pull Request

πŸ› Found a Bug?

  1. Check existing issues
  2. Create a new issue with:
    • Clear description
    • Steps to reproduce
    • Expected vs actual behavior
    • Your environment details

πŸ“Š Why GIMS?

Before GIMS 😫

git log --oneline
abc1234 fix
def5678 update
ghi9012 changes
jkl3456 stuff
mno7890 final fix

After GIMS ✨

git log --oneline  
abc1234 Fix authentication timeout in user login service
def5678 Add responsive design for mobile navigation menu
ghi9012 Refactor database connection pool for better performance
jkl3456 Update API documentation with new endpoint examples
mno7890 Fix memory leak in image processing pipeline

πŸ“ˆ Stats

  • ⚑ Faster commits than traditional Git workflow
  • 🎯 High accuracy in commit message relevance
  • πŸ“š Zero learning curve - if you know Git, you know GIMS
  • 🌍 Works everywhere - Mac, Windows, Linux, WSL

πŸ—ΊοΈ Roadmap

  • πŸ”Œ Plugin system for custom AI providers
  • πŸ“Š Commit message templates and customization
  • 🌐 Multi-language commit message support
  • πŸ”„ Integration with popular Git GUIs
  • πŸ“± Mobile companion app

πŸ“„ License

MIT Β© Your Name


⭐ Star this repo if GIMS makes your Git workflow awesome!

Report Bug β€’ Request Feature β€’ Documentation

Made with ❀️ by developers who hate writing commit messages

About

Git Made Simple

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •