{"id":18150826,"url":"https://github.com/in-jun/ai-commit","last_synced_at":"2025-10-28T05:30:35.572Z","repository":{"id":260326611,"uuid":"880927143","full_name":"in-jun/ai-commit","owner":"in-jun","description":"개발에만 집중하세요! AI-Commit이 당신의 코드 변경사항을 분석하여 명확하고 표준화된 커밋 메시지를 자동으로 생성합니다. 더 이상 커밋 메시지 작성에 시간을 낭비하지 마세요.","archived":false,"fork":false,"pushed_at":"2024-11-06T06:12:12.000Z","size":23,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-20T11:28:26.896Z","etag":null,"topics":["ai","automation","commit-message","gemini","gemini-api","git","git-commit","git-extension"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/in-jun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-30T15:58:35.000Z","updated_at":"2024-12-19T10:32:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"51ea1852-3703-4583-a46d-a034cf07d5c1","html_url":"https://github.com/in-jun/ai-commit","commit_stats":null,"previous_names":["in-jun/ai-commit"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/in-jun%2Fai-commit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/in-jun%2Fai-commit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/in-jun%2Fai-commit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/in-jun%2Fai-commit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/in-jun","download_url":"https://codeload.github.com/in-jun/ai-commit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238601733,"owners_count":19499262,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","automation","commit-message","gemini","gemini-api","git","git-commit","git-extension"],"created_at":"2024-11-02T01:05:35.982Z","updated_at":"2025-10-28T05:30:35.567Z","avatar_url":"https://github.com/in-jun.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ai-commit\n\n![Version](https://img.shields.io/badge/version-1.3.0-blue.svg)\n[![Go Report Card](https://goreportcard.com/badge/github.com/in-jun/ai-commit)](https://goreportcard.com/report/github.com/in-jun/ai-commit)\n\nAI-powered Git commit message generator using Google Gemini. Analyzes staged changes, understands project context, and creates Conventional Commits-compliant messages.\n\n## Quick Start\n\n```bash\n# Install\ngo install github.com/in-jun/ai-commit@latest\n\n# Configure API key\nai-commit init  # Enter your Google AI Studio API key\n\n# Use\ngit add .\nai-commit\n```\n\n## Requirements\n\n- Go 1.21+\n- Git 2.0+\n- [Google AI Studio API key](https://aistudio.google.com/app/apikey)\n\n## Installation\n\n### macOS/Linux\n\n```bash\n# Install Go (if needed)\nbrew install go  # macOS\nsudo apt install golang-go  # Ubuntu\n\n# Install ai-commit\ngo install github.com/in-jun/ai-commit@latest\n\n# Add to PATH\necho 'export PATH=$PATH:$(go env GOPATH)/bin' \u003e\u003e ~/.zshrc  # macOS\necho 'export PATH=$PATH:$(go env GOPATH)/bin' \u003e\u003e ~/.bashrc  # Linux\n```\n\n### Windows\n\n```powershell\n# Install Go from https://go.dev/dl/\n# Install ai-commit\ngo install github.com/in-jun/ai-commit@latest\n\n# Add to PATH\n$env:Path += \";$(go env GOPATH)\\bin\"\n[Environment]::SetEnvironmentVariable(\"Path\", $env:Path + \";$(go env GOPATH)\\bin\", [EnvironmentVariableTarget]::User)\n```\n\n## Configuration\n\nConfigure via `~/.ai-commit/config.yaml`:\n\n```yaml\napi_key: \"your-gemini-api-key\"\nmodel: \"gemini-2.0-flash\" # Available: 2.0-flash, 2.0-flash-lite, 2.5-flash, 2.5-flash-lite\nmax_diff_size: 10000 # Maximum diff size in bytes\nhistory_depth: 5 # Previous commits to analyze\ncolor_enabled: true # Colored output\n\ntemplates:\n  - prefix: \"feat\"\n    description: \"New feature\"\n  - prefix: \"fix\"\n    description: \"Bug fix\"\n  - prefix: \"docs\"\n    description: \"Documentation\"\n  - prefix: \"refactor\"\n    description: \"Code refactoring\"\n  # Add custom types as needed\n```\n\n## Usage\n\n### Basic Workflow\n\n```bash\ngit add \u003cfiles\u003e\nai-commit\n\n# Review generated message\n# Y/Enter: Accept and commit\n# E: Edit message\n# N: Cancel\n```\n\n### Commands\n\n| Command          | Description              |\n| ---------------- | ------------------------ |\n| `ai-commit`      | Generate commit message  |\n| `ai-commit init` | Initialize configuration |\n| `ai-commit -v`   | Show version             |\n| `ai-commit -h`   | Show help                |\n\n## Model Selection\n\nChoose models based on your needs:\n\n| Model                   | Performance | Accuracy | Daily Limit | Use Case          |\n| ----------------------- | ----------- | -------- | ----------- | ----------------- |\n| `gemini-2.0-flash`      | ⚡⚡⚡      | ★★★★     | 1,500       | Default, balanced |\n| `gemini-2.0-flash-lite` | ⚡⚡⚡⚡    | ★★       | 1,500       | Simple commits    |\n| `gemini-2.5-flash`      | ⚡⚡        | ★★★★★    | 1,500       | Latest, best      |\n| `gemini-2.5-flash-lite` | ⚡⚡⚡⚡    | ★★★      | 1,500       | Fast \u0026 efficient  |\n\nUpdate model in config:\n\n```yaml\nmodel: \"gemini-2.5-flash\" # For best accuracy\n```\n\n## Features\n\n- **Context-aware**: Analyzes previous commits for consistent style\n- **Multi-model support**: Choose from 4 Gemini models\n- **Interactive editing**: Review and modify messages before committing\n- **Conventional Commits**: Follows industry standards\n- **Language detection**: Adapts to project's commit language\n- **Customizable templates**: Define project-specific commit types\n\n## Example Output\n\n```\n=== Generated Commit Message ===\nfeat: implement JWT authentication middleware\n\nAdd token-based authentication system for API endpoints\n- Create token validation middleware\n- Implement protected route handling\n- Add 401/403 error responses\n- Include token refresh mechanism\n\nWhat would you like to do?\n[Y]es: Commit with this message\n[E]dit: Edit the message\n[N]o: Cancel commit\nChoice [Y/e/n]:\n```\n\n## Advanced Configuration\n\n### Custom Commit Types\n\n```yaml\ntemplates:\n  - prefix: \"security\"\n    description: \"Security updates\"\n  - prefix: \"perf\"\n    description: \"Performance improvements\"\n  - prefix: \"deploy\"\n    description: \"Deployment changes\"\n```\n\n### Editor Setup\n\n```bash\n# Set preferred editor\nexport EDITOR=\"vim\"           # Linux/macOS\n$env:EDITOR=\"code --wait\"     # Windows PowerShell\n```\n\n## Troubleshooting\n\n### Command Not Found\n\n```bash\n# Verify installation\ngo version\nls $(go env GOPATH)/bin/ai-commit\n\n# Fix PATH\nexport PATH=$PATH:$(go env GOPATH)/bin\n```\n\n### API Key Issues\n\n```bash\n# Check configuration\ncat ~/.ai-commit/config.yaml\n\n# Reinitialize\nai-commit init\n\n# Use environment variable\nexport API_KEY=\"your-key\"\n```\n\n### Model Errors\n\n- Rate limit exceeded: Switch to `gemini-2.0-flash-lite` for higher limits\n- Complex changes failing: Use `gemini-2.5-flash` for better analysis\n- Timeout issues: Check network connection and API status\n\n## Best Practices\n\n1. **Atomic commits**: Stage related changes together\n2. **Review messages**: Always verify AI-generated content\n3. **Model selection**: Use appropriate model for change complexity\n4. **Custom templates**: Align with team conventions\n\n---\n\nFor issues and updates: [github.com/in-jun/ai-commit](https://github.com/in-jun/ai-commit)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fin-jun%2Fai-commit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fin-jun%2Fai-commit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fin-jun%2Fai-commit/lists"}