{"id":25201952,"url":"https://github.com/simongino/aicommit","last_synced_at":"2026-01-16T05:05:32.905Z","repository":{"id":275984208,"uuid":"927805063","full_name":"SimonGino/aicommit","owner":"SimonGino","description":"🤖 AI-powered git commit message generator supporting multiple LLM providers (OpenAI, Azure OpenAI). Generate meaningful commit messages from your staged changes with a beautiful CLI interface.","archived":false,"fork":false,"pushed_at":"2026-01-13T03:44:03.000Z","size":7018,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-13T06:50:11.686Z","etag":null,"topics":["azure-openai","cli","git","git-tools","golang","llm","openai"],"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/SimonGino.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-05T15:17:39.000Z","updated_at":"2026-01-13T03:43:59.000Z","dependencies_parsed_at":"2025-05-26T06:16:05.936Z","dependency_job_id":null,"html_url":"https://github.com/SimonGino/aicommit","commit_stats":null,"previous_names":["simongino/aicommit"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/SimonGino/aicommit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimonGino%2Faicommit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimonGino%2Faicommit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimonGino%2Faicommit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimonGino%2Faicommit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SimonGino","download_url":"https://codeload.github.com/SimonGino/aicommit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimonGino%2Faicommit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477210,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T03:13:13.607Z","status":"ssl_error","status_checked_at":"2026-01-16T03:11:47.863Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["azure-openai","cli","git","git-tools","golang","llm","openai"],"created_at":"2025-02-10T06:15:53.744Z","updated_at":"2026-01-16T05:05:32.899Z","avatar_url":"https://github.com/SimonGino.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AI Commit\n\nEnglish | [简体中文](README.md)\n\nAn AI-powered Git commit message generator that automatically creates commit messages following the Conventional Commits specification.\n\n## Features\n\n- 🤖 **AI-Powered** - Automatically analyzes code changes and generates standardized commit messages\n- 🎯 **Interactive** - Keyboard shortcuts for quick operation selection\n- 📁 **Flexible File Selection** - Choose from staged files, select manually, or stage all\n- ✏️ **Message Editing** - Edit generated messages or regenerate them\n- 🔧 **Config Check** - Built-in `check` command to verify configuration and API connectivity\n- 🌍 **Multi-Language** - English, Simplified Chinese, Traditional Chinese\n- ☁️ **Multi-Platform** - Supports OpenAI and Azure OpenAI\n- 📊 **Daily Reports** - Generate work reports from Git commit history\n\n## Quick Start\n\n### Installation\n\n```bash\n# Linux/macOS\ncurl -fsSL https://raw.githubusercontent.com/SimonGino/aicommit/main/scripts/install.sh | sudo bash\n\n# Windows (Run PowerShell as Administrator)\niwr -useb https://raw.githubusercontent.com/SimonGino/aicommit/main/scripts/install.ps1 | iex\n```\n\n### Configuration\n\n```bash\n# Configure OpenAI API key\naicommit config --api-key your-openai-api-key\n\n# Verify configuration\naicommit check\n```\n\n### Usage\n\n```bash\n# Interactive commit (recommended)\naicommit\n\n# Use custom message\naicommit -m \"feat: add new feature\"\n```\n\n## Interactive Flow\n\nRunning `aicommit` displays an interactive interface:\n\n```\nDetected changes:\n\nStaged:\n  ✓ src/main.go\n\nModified (unstaged):\n  • config.json\n\nSelect an action:\n  [a] Use current staged content to generate commit message\n  [s] Select files to stage\n  [A] Stage all changes (git add .)\n  [c] Cancel\n\nPress key to select: a\n\nGenerating commit message...\n\n✔ Generated commit message:\n┌────────────────────────────────────────────────────────────┐\n│ feat(main): add user authentication                        │\n│                                                            │\n│ - Implement JWT token validation                           │\n│ - Add user login endpoint                                  │\n└────────────────────────────────────────────────────────────┘\n\nSelect an action:\n  [a] Accept and commit\n  [e] Edit before commit\n  [r] Regenerate\n  [c] Cancel\n\nPress key to select: a\n\n✓ Changes committed\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `aicommit` | Interactive generate and commit |\n| `aicommit -m \"msg\"` | Commit with specified message |\n| `aicommit check` | Check configuration and API connectivity |\n| `aicommit config` | Configure settings |\n| `aicommit report` | Generate daily report |\n\n## Configuration\n\nConfiguration file location: `~/.config/aicommit/config.json`\n\n### OpenAI\n\n#### Command Line Configuration\n\n```bash\naicommit config --provider openai\naicommit config --api-key sk-your-api-key\naicommit config --model gpt-4o  # optional, default: gpt-4o\naicommit config --language en   # optional, default: en\n```\n\n#### Standard Config File Example\n\n```json\n{\n  \"api_key\": \"sk-your-api-key-here\",\n  \"base_url\": \"\",\n  \"model\": \"gpt-4o\",\n  \"language\": \"en\",\n  \"provider\": \"openai\",\n  \"azure_api_version\": \"\"\n}\n```\n\n### Azure OpenAI\n\n#### Command Line Configuration\n\n```bash\naicommit config --provider azure\naicommit config --api-key your-azure-api-key\naicommit config --base-url https://your-resource.openai.azure.com\naicommit config --model your-deployment-name\naicommit config --azure-api-version 2024-02-15-preview\naicommit config --language en  # optional\n```\n\n**Important Notes:**\n- `--base-url` should be the base URL only (e.g., `https://your-resource.openai.azure.com`), NOT the full API path\n- `--model` should be your Azure OpenAI deployment name\n- `--azure-api-version` is required for Azure OpenAI\n\n#### Standard Config File Example\n\n```json\n{\n  \"api_key\": \"your-azure-api-key-here\",\n  \"base_url\": \"https://your-resource.openai.azure.com\",\n  \"model\": \"gpt-4o-mini\",\n  \"language\": \"en\",\n  \"provider\": \"azure\",\n  \"azure_api_version\": \"2024-02-15-preview\"\n}\n```\n\n### Language Settings\n\n```bash\naicommit config --language en     # English (default)\naicommit config --language zh-CN  # Simplified Chinese\naicommit config --language zh-TW  # Traditional Chinese\n```\n\n## Daily Reports\n\n```bash\n# This week's report\naicommit report --this-week\n\n# Last week's report\naicommit report --last-week\n\n# Specific date range\naicommit report --since 2024-01-01 --until 2024-01-31\n```\n\n## Commit Message Format\n\nFollows the [Conventional Commits](https://www.conventionalcommits.org/) specification:\n\n```\n\u003ctype\u003e(\u003cscope\u003e): \u003csubject\u003e\n\n\u003cbody\u003e\n```\n\nSupported types: `feat` | `fix` | `refactor` | `docs` | `style` | `test` | `chore`\n\n## Development\n\n```bash\ngit clone https://github.com/SimonGino/aicommit.git\ncd aicommit\ngo mod download\ngo test ./...\ngo build -o aicommit ./cmd/aicommit\n```\n\n## Uninstallation\n\n```bash\n# Linux/macOS\nsudo bash -c \"$(curl -fsSL https://raw.githubusercontent.com/SimonGino/aicommit/main/scripts/uninstall.sh)\"\n\n# Windows (Run PowerShell as Administrator)\niwr -useb https://raw.githubusercontent.com/SimonGino/aicommit/main/scripts/uninstall.ps1 | iex\n```\n\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimongino%2Faicommit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimongino%2Faicommit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimongino%2Faicommit/lists"}