{"id":25949704,"url":"https://github.com/cowboy-bebug/kommit","last_synced_at":"2025-10-04T20:10:27.804Z","repository":{"id":280122972,"uuid":"941011673","full_name":"cowboy-bebug/kommit","owner":"cowboy-bebug","description":"🛋️ Git therapy for repos with commitment issues","archived":false,"fork":false,"pushed_at":"2025-03-23T20:52:34.000Z","size":171,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T21:31:51.528Z","etag":null,"topics":["commit-messages-generator","git","git-tools","gpt-4o","o3-mini"],"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/cowboy-bebug.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":"2025-03-01T09:11:51.000Z","updated_at":"2025-03-23T20:52:37.000Z","dependencies_parsed_at":"2025-03-23T21:26:51.508Z","dependency_job_id":null,"html_url":"https://github.com/cowboy-bebug/kommit","commit_stats":null,"previous_names":["cowboy-bebug/kommitment","cowboy-bebug/kommit"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/cowboy-bebug/kommit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cowboy-bebug%2Fkommit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cowboy-bebug%2Fkommit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cowboy-bebug%2Fkommit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cowboy-bebug%2Fkommit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cowboy-bebug","download_url":"https://codeload.github.com/cowboy-bebug/kommit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cowboy-bebug%2Fkommit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278366664,"owners_count":25975095,"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","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["commit-messages-generator","git","git-tools","gpt-4o","o3-mini"],"created_at":"2025-03-04T12:28:48.161Z","updated_at":"2025-10-04T20:10:27.792Z","avatar_url":"https://github.com/cowboy-bebug.png","language":"Go","readme":"# Kommit\n\n![kommit](./kommit.gif)\n\n\u003e _Because your repository has commitment issues!_\n\nKommit is a therapeutic approach to git commits, helping your codebase express\nitself through meaningful,\n[conventional commit messages](https://www.conventionalcommits.org/en/v1.0.0/)\ngenerated with AI.\n\n## 🤔 Why Kommit?\n\nLet's face it - most of us struggle with commitment issues when it comes to\nwriting\n[good git commit messages](https://github.com/torvalds/subsurface-for-dirk/blob/724527bc3b660a9d54aab8e4dff50430450f1643/README.md?plain=1#L128-L150).\nWe've all been there:\n\n```bash\ngit commit -m \"fixed stuff\"\ngit commit -m \"updates\"\ngit commit -m \"it works now\"\n```\n\nAnd who hasn't stared at that blinking cursor after `git commit -m` for what\nfeels like an eternity, mind suddenly blank, unable to summarize what you just\nspent hours working on?\n\nYour future self (and your teammates) deserve better. Kommit helps you write\nclear, meaningful commit messages that tell the real story of your changes.\n\n## 💊 Features\n\n- **AI-Powered Analysis**: Analyzes your staged changes and generates\n  meaningful, conventional commit messages\n- **Relationship Counseling**: Improves communication between you and future\n  developers\n- **Emotional Intelligence**: Helps your code express what it's really trying to\n  do\n- **Commitment Structure**: Follows conventional commit formats for better git\n  history\n- **Scope Analysis**: Suggests relevant scopes based on your project structure\n- **Self-Growth Options**: Choose to accept the AI suggestion, request another,\n  or write your own\n\n## 📦 Installation\n\n### Using Homebrew (macOS and Linux)\n\n```bash\nbrew install cowboy-bebug/tap/kommit\n```\n\n### From Source\n\nPrerequisites:\n\n- Go (1.24 or later required)\n- Make\n\n```bash\ngit clone https://github.com/cowboy-bebug/kommit.git\ncd kommit\nmake install\n```\n\nThis installs the `kommit` command-line tool.\n\n### API Key Setup\n\nKommit requires an OpenAI API key to provide its therapeutic services:\n\n```bash\n# Set your OpenAI API key\nexport OPENAI_API_KEY=\"sk-...\"\n\n# Alternatively, you can use a dedicated key for Kommit\nexport KOMMIT_OPENAI_API_KEY=\"sk-...\"\n```\n\n\u003e **🔐 Therapy Privacy:** If both environment variables are set,\n\u003e `KOMMIT_OPENAI_API_KEY` takes precedence over `OPENAI_API_KEY`. This allows\n\u003e you to use a separate API key for Kommit if you prefer to keep your therapy\n\u003e sessions isolated from other OpenAI usage.\n\n## 😌 Getting Started\n\n### Initial Therapy Session\n\nBegin your repository's healing journey:\n\n```bash\ngit kommit init\n```\n\nThis creates a `.kommitrc.yaml` configuration file. It'll analyze your project\nstructure and suggest meaningful scopes so your commits can finally express\nthemselves properly.\n\n### Commit Therapy\n\nWhen you're ready to commit changes:\n\n1. Stage your changes with `git add` - **focus on logically grouping related\n   changes**\n2. Start a therapy session:\n\n   ```bash\n   git kommit\n   ```\n\n3. Review the AI-generated commit message\n4. Choose to:\n   - Accept the message and commit\n   - Work through your commitment issues yourself (edit the message)\n   - Request another therapy session for a better message (re-run)\n   - Terminate the therapy session (exit without committing)\n\n\u003e **💡 Therapy Tip:** The key to successful commit therapy is to stage logically\n\u003e related changes together. Instead of worrying about writing the perfect commit\n\u003e message, focus on what belongs together in a commit. Let Kommit handle\n\u003e translating your changes into meaningful messages - that's what your therapist\n\u003e is here for!\n\n## 🔍 How It Works\n\nKommit uses OpenAI's models to analyze your staged changes and generate\nmeaningful commit messages following conventional commit formats. It's like\ncouples therapy between you and your future self - improving how you communicate\ntoday so there's less confusion tomorrow.\n\nThe therapy process:\n\n1. Analyzes your staged changes\n2. Considers your project's context and scopes\n3. Generates a conventional commit message\n4. Gives you options for proceeding\n5. Handles the git commit process\n\n## 🛠️ Configuration\n\nAfter running `git kommit init`, you'll have a `.kommitrc.yaml` file with your\ntherapy plan:\n\n```yaml\nllm:\n  model: gpt-4o-mini # Your therapist's qualifications\ncommit:\n  types:\n    - feat\n    - fix\n    - docs\n    # ... other conventional commit types\n  scopes:\n    - ui\n    - api\n    - auth\n    # ... project-specific scopes\n```\n\n## 💭 Examples\n\n**Before therapy:**\n\n```bash\n$ git commit -m \"fixed the thing that was broken yesterday\"\n$ git log -1 --format=medium\ncommit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0\nAuthor: Developer Name \u003cdev@example.com\u003e\nDate:   Mon Mar 4 10:30:45 2023 -0800\n\n    fixed the thing that was broken yesterday\n```\n\n**After therapy**:\n\n```bash\n$ git kommit\n$ git log -1 --format=medium\ncommit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0\nAuthor: Developer Name \u003cdev@example.com\u003e\nDate:   Mon Mar 4 10:30:45 2023 -0800\n\n    feat(auth): implement JWT token refresh mechanism\n\n    - Added token refresh endpoint to authentication service\n    - Implemented automatic refresh when token is near expiration\n    - Updated documentation with new token lifecycle\n\n    [Generated by Kommit]\n```\n\n## 🙏 Contributing\n\nYour contributions to this therapeutic journey are welcome! Whether you're\nfixing bugs, adding features, or improving documentation, we appreciate your\nhelp in making git history a better place.\n\n## 📜 License\n\nMIT - Because everyone deserves access to commit message therapy.\n\n---\n\n_Remember: Good commit messages are like good apologies - specific, sincere, and\nthey don't include the phrase \"various changes\". Your future self will thank you\nfor the therapy._\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcowboy-bebug%2Fkommit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcowboy-bebug%2Fkommit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcowboy-bebug%2Fkommit/lists"}