{"id":18469616,"url":"https://github.com/mms-gianni/gitgenie","last_synced_at":"2025-04-08T10:32:51.451Z","repository":{"id":161747484,"uuid":"634784659","full_name":"mms-gianni/GitGenie","owner":"mms-gianni","description":"💡GitGenie is a git plugin that creates commit messages with ChatGPT.","archived":false,"fork":false,"pushed_at":"2023-05-12T06:26:26.000Z","size":735,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-23T11:33:09.139Z","etag":null,"topics":["ai","chatgpt","cli","developer-tools","development","git","git-plugin","github","terminal"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mms-gianni.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":"2023-05-01T07:18:34.000Z","updated_at":"2024-08-08T21:46:50.000Z","dependencies_parsed_at":"2024-04-15T22:09:34.330Z","dependency_job_id":null,"html_url":"https://github.com/mms-gianni/GitGenie","commit_stats":null,"previous_names":["mms-gianni/gitgenie","kubero-dev/gitgenie"],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mms-gianni%2FGitGenie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mms-gianni%2FGitGenie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mms-gianni%2FGitGenie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mms-gianni%2FGitGenie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mms-gianni","download_url":"https://codeload.github.com/mms-gianni/GitGenie/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247824283,"owners_count":21002242,"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","chatgpt","cli","developer-tools","development","git","git-plugin","github","terminal"],"created_at":"2024-11-06T10:11:04.498Z","updated_at":"2025-04-08T10:32:51.445Z","avatar_url":"https://github.com/mms-gianni.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"docs/img/mascot.png\" height=\"200\" /\u003e\u003c/p\u003e\n\n# GitGenie\n  \n  [![Go Report Card](https://goreportcard.com/badge/github.com/mms-gianni/GitGenie)](https://goreportcard.com/report/github.com/mms-gianni/GitGenie)\n  [![GoDoc](https://godoc.org/github.com/mms-gianni/GitGenie?status.svg)](https://godoc.org/github.com/mms-gianni/GitGenie)\n  [![GitHub release](https://img.shields.io/github/release/mms-gianni/GitGenie.svg)](https://github.com/kubero-dev/GitGenie/releases/)\n  [![GitHub license](https://img.shields.io/github/license/mms-gianni/GitGenie.svg)](https://github.com/kubero-dev/GitGenie/blob/main/LICENSE)\n\n\nOnce upon a time, there was a magical genie who lived inside Git as a plugin. This genie loved to help developers write better commit messages when they changed their code.\n\nThe genie was very clever and used its magic ChatGPT powers to analyze the changes in the code and suggest good messages for the developers to use.\n\nAnd if the developers weren't happy with any of the suggestions, he would open an editor and give them the opportunity to adjust the suggestions to their liking.\n\n\u003e **Note**\n\u003e The genie needs your help: There are binaries for Linux and Windows (ARM and x86_64). I have only a Mac(x86_64) to test the binaries. If you have a Windows/Linux or ARM architecture [please let me know in the issues section](https://github.com/kubero-dev/GitGenie/issues/2) if it works.\n\n## Usage\n    \n```bash\ngit add . \ngit gci \n```\n\n```\ngit gci [flags]\n\nFlags:\n  -d, --debug                Print debug information\n  -f, --fast                 Skip editing the commit message\n  -h, --help                 help for git\n  -H, --host string          OpenAI API host (default \"api.openai.com\")\n  -L, --language string      Commit message language: en, ch, de, es, fr, it, ja, ko, pt, zh (default \"en\")\n  -l, --length string        Commit message length: short, medium, long, verylong (default \"medium\")\n  -s, --signoff              Add signing signature to commit message\n  -n, --suggestions string   Number of suggestions to generate (default \"3\")\n  -v, --version              version for git\n```\n\u003cimg src=\"docs/img/demo.gif\" /\u003e\n\n## Installation\n\nDownload the binary for you operating system from the [releases page](https://github.com/mms-gianni/GitGenie/releases/latest) and extract it to /usr/local/bin or any other directory in your PATH.\n\n```bash \ntar -xvzf GitGenie_Mac_x86_64.tar.gz -C /usr/local/bin\n\nexport OPENAI_API_KEY=sk-y..............................\n```\n\nAdd the OpenAI Key ENV to your .bashrc or .zshrc and configure your Genie with the following additional ENV variables to change the default behavior.\n\n- `OPENAI_API_KEY`: OpenAI API token **(required)**\n- `OPENAI_HOST`: OpenAI API host (default: `api.openai.com`)\n- `EDITOR` or `VISUAL`: Editor to edit commit message (default: `vim`)\n- `GENIE_SUGESTIONS`: Number of suggestions to generate (default: `3`)\n- `GENIE_LENGTH`: Length of each suggestion (default: `medium`, can be `short`, `medium`, `long`, `verylong`)\n- `GENIE_MAX_TOKENS`: Maximum number of tokens to generate (overrides `GENIE_LENGTH`)\n- `GENIE_SKIP_EDIT`: Skip editing the commit message (default: `false`)\n- `GENIE_LANGUAGE`: Language to use for the commit message (default: `en`, can be `en`, `ch`, `de`, `es`, `fr`, `it`, `ja`, `ko`, `pt`, `ru`, `zh`)\n- `GENIE_DIFFCONTEXT`: Number of lines of context to use for the diff (default: `5`)\n\n## Privacy\nThere may be many reasons a repository owner does not want to allow genie generated commit messages or code to be sent to a third party service. For this reason, the repository can be configured to block GitGenie completly.\n\nTo block the genie, create a file called `.gitgenieblock` in the root of your repository and add the following content:\n\n```bash\necho \"https://github.com/kubero-dev/GitGenie\" \u003e .gitgenieblock\n```\n\n## Repository Configuration (optional)\nPrepare your repository for GitGenie by adding a `.gitgenie` file to the root of your repository. This file can be used to configure the genie for your repository.\n\nParameters: \n- `language`: Language to use for the commit message (default: `en`, can be `en`, `ch`, `de`, `es`, `fr`, `it`, `ja`, `ko`, `pt`, `ru`, `zh`)\n- `description`: Description of the repository/software (default: `\"\"`)\n\n## Examples\n\nCreate a commit message with 5 suggestions and skip editing the commit message\n```bash\ngit gci -n 5 -f\n```\n\nCreate a commit message in a different language and use a short commit message\n```bash\ngit gci -L de -l short\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmms-gianni%2Fgitgenie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmms-gianni%2Fgitgenie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmms-gianni%2Fgitgenie/lists"}