{"id":25949709,"url":"https://github.com/mingeme/aicommit","last_synced_at":"2026-05-05T16:06:45.915Z","repository":{"id":280105022,"uuid":"940986824","full_name":"mingeme/aicommit","owner":"mingeme","description":"AI-powered git commit message generator","archived":false,"fork":false,"pushed_at":"2025-03-01T09:23:32.000Z","size":43,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-01T09:25:40.219Z","etag":null,"topics":["ai","cli","git"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mingeme.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2025-03-01T07:53:11.000Z","updated_at":"2025-03-01T09:23:35.000Z","dependencies_parsed_at":"2025-03-01T09:37:46.044Z","dependency_job_id":null,"html_url":"https://github.com/mingeme/aicommit","commit_stats":null,"previous_names":["mingeme/aicommit"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mingeme%2Faicommit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mingeme%2Faicommit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mingeme%2Faicommit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mingeme%2Faicommit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mingeme","download_url":"https://codeload.github.com/mingeme/aicommit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241847281,"owners_count":20030220,"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","cli","git"],"created_at":"2025-03-04T12:28:48.785Z","updated_at":"2026-05-05T16:06:45.907Z","avatar_url":"https://github.com/mingeme.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# aicommit\n\n\u003e **ANNOUNCEMENT**: This project is no longer maintained. Please migrate to the new project at [github.com/mingeme/fuckmit](https://github.com/mingeme/fuckmit).\n\n`aicommit` is an AI-powered git commit message generator.\n\n![showcase](./assets/showcase.gif)\n\n## Installation\n\n### Using Homebrew (macOS and Linux)\n\n```bash\n# Install from Homebrew tap\nbrew install mingeme/tap/aicommit\n```\n\n### From Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/mingeme/aicommit.git\ncd aicommit\n\n# Install dependencies\npnpm install\n\n# Build the project\npnpm run build\n\n# Link the CLI tool globally\npnpm link\n```\n\n## Development\n\n```bash\n# Run in development mode\npnpm run dev\n\n# Build the project\npnpm run build\n\n# Run tests\npnpm test\n```\n\n## Version Management\n\nThe version number is automatically generated based on Git tags:\n\n- If the current commit has a tag, that tag will be used as the version (preserving the 'v' prefix if present)\n- If the current commit doesn't have a tag, a version in the format `{tag}-{shortHash}` will be generated, where `{tag}` is the tag and `{shortHash}` is the short Git commit hash\n- If no tags exist in the repository, a fallback version in the format `v0.1.0-{shortHash}` will be used\n- The version is stored in `src/utils/version.ts`, which is automatically generated and should not be manually edited\n- The version file is only generated if it doesn't already exist, to regenerate it run `pnpm run version`\n- The `src/utils/version.ts` file is included in `.gitignore` since it's generated during build\n\n## Usage\n\n```bash\n# Show help\naicommit --help\n\n# Generate a commit message and create a commit\naicommit\n\n# Generate a commit message without creating a commit (dry-run mode)\naicommit --dry-run\n# or\naicommit -d\n\n# Authenticate with a provider\naicommit auth add \u003cprovider\u003e \u003capiKey\u003e\n# or\naicommit auth use \u003cprovider\u003e\n# or set specific provider properties\naicommit auth set \u003cprovider\u003e.\u003cmodel/apiKey/endpoint\u003e \u003cvalue\u003e\n\n# Manage prompt configurations\naicommit prompt init        # Create a default prompt configuration in current directory\naicommit prompt init --global  # Create a default prompt configuration in global config directory\naicommit prompt show        # Show current prompt configuration\n```\n\n### Options\n\n- `-d, --dry-run`: Generate a commit message without creating a commit\n- `auth add \u003cprovider\u003e \u003capiKey\u003e`: Add a new provider configuration\n- `auth use \u003cprovider\u003e`: Set the current provider\n- `auth set \u003cprovider\u003e.\u003cproperty\u003e \u003cvalue\u003e`: Update a specific property (model, apiKey, or endpoint) for a provider\n- `prompt init`: Create a new prompt configuration file\n- `prompt show`: Show current prompt configuration\n- `-h, --help`: Display help information\n\n## Customizing Prompts\n\nYou can customize the prompts used for generating commit messages by creating a `.aicommit.yml` or `.aicommit.yaml` file either in your current working directory or in the global config directory (`~/.config/aicommit/`).\n\nThe file should have the following format:\n\n```yaml\nprompt:\n  system: |\n    Your custom system prompt here\n  user: |\n    Your custom user prompt template here\n\n    {{diff}}\n\n# Optional: exclude specific files from the diff\nexclude:\n  - \"package-lock.json\"\n  - \"**/node_modules/**\"\n  - \"dist/**\"\n```\n\nThe `{{diff}}` placeholder will be replaced with the actual git diff content.\n\n### Excluding Files from Diff\n\nYou can exclude specific files or patterns from the git diff by adding an `exclude` section to your `.aicommit.yml` file:\n\n```yaml\nexclude:\n  - \"package-lock.json\"      # Exclude a specific file\n  - \"**/node_modules/**\"     # Exclude all node_modules directories recursively\n  - \"dist/**\"                # Exclude all files in the dist directory\n  - \"**/*.lock\"              # Exclude all .lock files in any directory\n```\n\nThe exclude patterns support Git's pathspec syntax, including recursive glob patterns with `**/`. This is useful for excluding generated files, large dependency files, or any content you don't want to include in your commit message generation.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmingeme%2Faicommit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmingeme%2Faicommit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmingeme%2Faicommit/lists"}