{"id":37426320,"url":"https://github.com/utsmannn/commitah","last_synced_at":"2026-01-16T06:15:12.441Z","repository":{"id":275185529,"uuid":"901743044","full_name":"utsmannn/commitah","owner":"utsmannn","description":"Generating commit messages using Generative AI","archived":false,"fork":false,"pushed_at":"2025-02-08T06:23:30.000Z","size":299,"stargazers_count":23,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-08T07:22:28.543Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/utsmannn.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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2024-12-11T08:28:28.000Z","updated_at":"2025-02-08T06:18:44.000Z","dependencies_parsed_at":"2025-01-31T18:45:09.543Z","dependency_job_id":null,"html_url":"https://github.com/utsmannn/commitah","commit_stats":null,"previous_names":["utsmannn/commitah"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/utsmannn/commitah","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utsmannn%2Fcommitah","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utsmannn%2Fcommitah/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utsmannn%2Fcommitah/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utsmannn%2Fcommitah/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/utsmannn","download_url":"https://codeload.github.com/utsmannn/commitah/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/utsmannn%2Fcommitah/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477633,"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":[],"created_at":"2026-01-16T06:15:11.957Z","updated_at":"2026-01-16T06:15:12.430Z","avatar_url":"https://github.com/utsmannn.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Commitah CLI\n\nA powerful Command Line Interface (CLI) tool that leverages AI to generate meaningful and standardized Git commit messages. Commitah analyzes your staged changes and provides contextual commit message suggestions following conventional commit standards.\n\n## Features\n\n- 🤖 **AI-Powered Messages**: Generates commit messages by analyzing git diff using various AI providers\n- 🎨 **Interactive UI**: User-friendly CLI interface for selecting commit messages\n- ⚙️ **Multiple AI Providers**: Supports OpenAI, Gemini, DeepSeek, and Ollama\n- 🔧 **Configurable**: Customize message specifications and provider settings\n- 📝 **Conventional Commits**: Follows standardized commit message format\n\n| Commit selection v2 |\n| ---- |\n| ![alt text](img/img-select.png) |\n\n| AI Provider on configuration v2 |\n| ---- |\n| ![alt text](img/img-config.png) |\n\n## Prerequisites\n\n- Node.js v16 or later\n- Git installed and available in PATH\n- API key from your chosen AI provider (OpenAI, Gemini, DeepSeek) or Ollama running locally\n\n## Installation\n\n```bash\nnpm install --global commitah\n```\n\n## Usage\n\nBasic usage:\n```bash\n# Stage your changes first\ngit add .\n\n# Generate commit message\ncommitah\n```\n\nAvailable options:\n```bash\n# Show current configuration\ncommitah --config\n\n# Update configuration\ncommitah --config-update\n\n# Preview commit message without committing\ncommitah --show\n```\n\n## Configuration\n\nConfiguration is stored in `~/.commitahconfig-v2`. The tool will create a default configuration on first run. \u003cbr\u003e You can update the configuration using the `--config-update` option.\n\nExample configuration:\n```json\n{\n  \"provider\": \"OpenAI\",\n  \"providerApiKey\": \"your-api-key\",\n  \"providerUrl\": \"https://api.openai.com/v1\",\n  \"messageSpec\": \"conventional commit\",\n  \"sizeOption\": 3,\n  \"model\": \"gpt-4-turbo-preview\"\n}\n```\n\n### Supported Providers\n\n- **OpenAI**: Uses GPT models\n- **Gemini**: Uses Google's Gemini models\n- **DeepSeek**: Uses DeepSeek's language models\n- **Ollama**: Uses locally hosted models\n\n## Ollama Setup Instructions\n\n1. First, install Ollama on your system following the instructions at [Ollama's official website](https://ollama.ai)\n\n2. Pull the **recommended models**:\n```bash\n# Pull Qwen2.5 Coder\nollama pull qwen2.5-coder\n\n# Pull Dolphin 3\nollama pull dolphin3\n\n# Pull Gemma 2B\nollama pull gemma:2b\n```\n\n3. Configure Commitah to use Ollama:\n```bash\ncommitah --config-update\n```\nThen:\n- Select 'Ollama' as the provider\n- Enter your Ollama URL (default: http://localhost:11434)\n- Select one of the recommended models:\n  - qwen2.5-coder (Recommended for best code understanding)\n  - dolphin3 (Good balance of speed and accuracy)\n  - gemma:2b (Lightweight option)\n\nNote: Ensure Ollama is running before using Commitah with these models.\n\n## How It Works\n\n1. Analyzes staged changes using `git diff`\n2. Sends the diff to the configured AI provider\n3. Generates multiple commit message suggestions\n4. Presents an interactive UI to select the preferred message\n5. Creates the commit with the selected message\n\n## Development\n\nTo build from source:\n\n```bash\n# Clone the repository\ngit clone [repository-url]\n\n# Install dependencies\nnpm install\n\n# Build the project\nnpm run build\n```\n\n## License\n\nISC License\n\n## Author\n\nMuhammad Utsman\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futsmannn%2Fcommitah","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Futsmannn%2Fcommitah","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Futsmannn%2Fcommitah/lists"}