{"id":22033810,"url":"https://github.com/kobylinski/caper-bush","last_synced_at":"2026-01-18T04:29:48.936Z","repository":{"id":265184173,"uuid":"894783125","full_name":"kobylinski/caper-bush","owner":"kobylinski","description":"An Oh My Zsh plugin that enhances Git's tab autocomplete by using AI to generate concise, context-aware summaries of staged changes for thoughtful commit messages.","archived":false,"fork":false,"pushed_at":"2024-11-28T05:26:57.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-28T06:25:39.659Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/kobylinski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2024-11-27T01:31:39.000Z","updated_at":"2024-11-28T05:27:01.000Z","dependencies_parsed_at":"2024-11-28T08:33:56.895Z","dependency_job_id":null,"html_url":"https://github.com/kobylinski/caper-bush","commit_stats":null,"previous_names":["kobylinski/caper-bush"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kobylinski/caper-bush","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kobylinski%2Fcaper-bush","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kobylinski%2Fcaper-bush/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kobylinski%2Fcaper-bush/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kobylinski%2Fcaper-bush/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kobylinski","download_url":"https://codeload.github.com/kobylinski/caper-bush/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kobylinski%2Fcaper-bush/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266703988,"owners_count":23971394,"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-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":[],"created_at":"2024-11-30T09:01:36.636Z","updated_at":"2025-07-23T15:31:22.968Z","avatar_url":"https://github.com/kobylinski.png","language":"Shell","funding_links":[],"categories":["Plugins","Recently Updated"],"sub_categories":["ZSH on Windows","[Nov 30, 2024](/content/2024/11/30/README.md)"],"readme":"# Caper Bush\n\nCaper Bush is an Oh My Zsh plugin that enhances Git's tab autocomplete by using AI to generate concise,\ncontext-aware summaries of staged changes for thoughtful commit messages.\n\n## Usage\n\nOnce installed, Caper Bush integrates directly with Git's autocomplete for the `git commit -m` command. Simply\npress `\u003cTab\u003e` after typing `git commit -m` to:\n\n1. Analyze the staged changes in your repository.\n2. Receive AI-generated suggestions for concise and context-aware commit messages.\n3. Select a commit message from the dropdown or manually edit one.\n\n## Installation\n\n### Install Dependencies\n\nThis plugin requires the following tools to function properly:\n\n- `jq`: For parsing JSON responses.\n- `yq`: For working with YAML configuration files.\n\n```bash\nbrew install jq\nbrew install yq\n```\n\n### Install the Plugin\n\nClone the repository into your custom Oh My Zsh plugins directory:\n\n```bash\ngit clone https://github.com/kobylinski/caper-bush ~/.oh-my-zsh/custom/plugins/caper-bush\n```\n\n### Enable the Plugin\n\nEdit your `.zshrc` file and add caper-bush to the list of enabled plugins:\n\n```bash\nplugins=(... caper-bush)\n```\n\nReload your Zsh configuration:\n\n```bash\nsource ~/.zshrc\n```\n\n## Configuring OpenAI Key and Assistant\n\nTo set up Caper Bush, you need to configure your OpenAI API key and assistant in the OpenAI console. This step\nensures that the plugin can generate commit messages tailored to your project.\n\n### Acquire Your OpenAI API Key\n\n1. Log in to your OpenAI account at [https://platform.openai.com/](https://platform.openai.com/).\n2. Navigate to the API Keys section in your account settings.\n3. Click Create API Key and copy the generated key.\n4. Keep the key secure, as it will be required in your project-specific configuration file.\n\n### Configure the Assistant in OpenAI Console\n\n1. Navigate to the Assistants section in the OpenAI console.\n2. Click Create Assistant and give it a meaningful name, such as Caper Bush Commit Assistant.\n3. In the System Instructions field, provide the following configuration to ensure proper functionality:\n\n```\nAnalyze the staged changes provided as a diff and create the most accurate commit messages as a programmer reviewing the code. Use no more than 15 words per message. Use conventional commit prefixes including:  feat: A new feature;  fix: A bug fix;  docs: Documentation changes;  style: Code style changes;  refactor: Code refactoring;  perf: Performance improvements;  test: Adding or updating  tests; build: Changes to the build system;  ci: Changes to CI/CD;  chore: Minor updates; revert: Reverting a commit;  config: Configuration changes;  hotfix: Critical fixes only if commit looks like fix but the branch is main or master;  deps: Dependency updates;  db: Database changes; prototype: Experimental work. Your response will be handled by the application, so it should have a consistent format. Don't explain. In the case of more extensive changes, propose 2 to 6 messages. Don't use new line characters in or between messages. Use the pipe `|` character to separate messages. Provide the output as raw text. Example answer: `feat: add new authentication feature|fix: resolve login page bug|docs: update API documentation`\n```\n\n4. Save the assistant configuration and note down the Assistant ID displayed in the console.\n\n## Add Configuration to Your Project\n\n1. In the root directory of your Git project, create a .caper-bush.yml file if it doesn’t already exist:\n\n```bash\ntouch .caper-bush.yml\n```\n\n2. Open `.caper-bush.yml` and add your OpenAI API key, Assistant ID, and any project-specific context or\n   rules:\n\n```yaml\napi_key: \"your-openai-api-key\"\nassistant_id: \"your-assistant-id\"\n\n# Project specific description to adjust asistant answers\n# this text will be attached to the message requests\n# for example:\nabout: \"Ignore changes in docs directory.\"\n```\n\n## Verify the Configuration\n\n1. Ensure your `.caper-bush.yml` file is present in the root of your Git repository.\n2. Test the setup by running:\n\n```bash\ngit commit -m \"\u003cTAB\u003e\n```\n\n3. After the first usage, check your .caper-bush.yml file to verify that the thread_id field has been\n   automatically added. Each repository will have its own dedicated thread for AI interactions, stored in this\n   field:\n\n```yaml\nthread_id: \"project-dedicated-thread-id\"\n```\n\n4. If everything is configured correctly, the plugin will generate and display commit message suggestions\n   based on your staged changes.\n5. Once the thread_id is present, the plugin will reuse this thread for subsequent interactions in the same\n   repository.\n\n## License\n\nThis project is licensed under the MIT License. See the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkobylinski%2Fcaper-bush","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkobylinski%2Fcaper-bush","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkobylinski%2Fcaper-bush/lists"}