{"id":32709729,"url":"https://github.com/dinoDanic/diny","last_synced_at":"2025-11-02T04:02:21.613Z","repository":{"id":316296738,"uuid":"1062565899","full_name":"dinoDanic/diny","owner":"dinoDanic","description":"generate git commit messages","archived":false,"fork":false,"pushed_at":"2025-10-26T17:37:19.000Z","size":15076,"stargazers_count":83,"open_issues_count":2,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-26T19:29:15.904Z","etag":null,"topics":["ai-tool","automation","cli","cobra-cli","commit","commit-message","developer-tools","generated","git","git-commit-messages","git-diff","go","messages","ollama","opensource","plug-and-play"],"latest_commit_sha":null,"homepage":"https://diny-cli.vercel.app/","language":"Go","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/dinoDanic.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-23T12:30:43.000Z","updated_at":"2025-10-26T17:48:54.000Z","dependencies_parsed_at":"2025-10-26T19:16:41.717Z","dependency_job_id":"324e8e63-2954-47fe-bfdf-7ab839e46ef0","html_url":"https://github.com/dinoDanic/diny","commit_stats":null,"previous_names":["dinodanic/diny"],"tags_count":61,"template":false,"template_full_name":null,"purl":"pkg:github/dinoDanic/diny","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinoDanic%2Fdiny","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinoDanic%2Fdiny/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinoDanic%2Fdiny/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinoDanic%2Fdiny/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dinoDanic","download_url":"https://codeload.github.com/dinoDanic/diny/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dinoDanic%2Fdiny/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":282238838,"owners_count":26636932,"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-11-02T02:00:06.609Z","response_time":64,"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":["ai-tool","automation","cli","cobra-cli","commit","commit-message","developer-tools","generated","git","git-commit-messages","git-diff","go","messages","ollama","opensource","plug-and-play"],"created_at":"2025-11-02T04:01:24.251Z","updated_at":"2025-11-02T04:02:21.607Z","avatar_url":"https://github.com/dinoDanic.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://diny-cli.vercel.app/diny-v2-200-light.png\" alt=\"diny logo\" width=\"200\"/\u003e\n\n# diny\n\n### from git diff to clean commits\n\n\ndiny is a tiny dinosaur that writes your git commit messages for you.  \nIt looks at your staged changes and generates clear, conventional-friendly messages.\n\n🔓 **No API key required** • 🔌 Plug and play • ⚡ Fast and reliable • 🌟 Open source\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cbr /\u003e\n\u003ca href=\"https://peerlist.io/dinodanic/project/diny\"\u003e\u003cimg src=\"https://diny-cli.vercel.app/peerlist-project-of-the-day.png\" alt=\"diny showcase\" width=\"200\"\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n\u003cimg src=\"https://diny-cli.vercel.app/showcase/2.png\" alt=\"diny showcase\" width=\"700\"/\u003e\n\u003cimg src=\"https://diny-cli.vercel.app/showcase/3.png\" alt=\"diny showcase\" width=\"700\"/\u003e\n\u003cimg src=\"https://diny-cli.vercel.app/showcase/4.png\" alt=\"diny showcase\" width=\"700\"/\u003e\n\u003cimg src=\"https://diny-cli.vercel.app/showcase/5.png\" alt=\"diny showcase\" width=\"700\"/\u003e\n\u003cimg src=\"https://diny-cli.vercel.app/showcase/6.png\" alt=\"diny showcase\" width=\"700\"/\u003e\n\n\u003c/div\u003e\n\n---\n\n## Features\n\n- 🔍 Reads staged changes with `git diff`\n- 🧹 Filters out noise (lockfiles, binaries, build artifacts)\n- ⚡ Generates commit messages via Ollama\n- 📝 Produces concise, consistent messages\n- 🔄 Interactive workflow with multiple options\n- 🧠 Smart regeneration that learns from previous attempts\n- ✍️ Custom feedback system for precise message refinement\n- 🧷 Save to file (stash the generated message for later)\n- 📝 Draft mode (prepare a commit message without committing)\n- ✏️ Edit in your editor before committing\n- 📊 Timeline analysis of commit history and message patterns\n- 🎨 Customizable UI themes (10+ dark and light themes)\n\n\n## Install\n\n### macOS / Linux\n\n```bash\nbrew install dinoDanic/tap/diny\n```\n\n### Windows\n\n#### Scoop (Recommended)\n\n```powershell\nscoop bucket add dinodanic https://github.com/dinoDanic/scoop-bucket\nscoop install diny\n```\n\n### Manual Installation\n\nDownload pre-built binaries from [GitHub Releases](https://github.com/dinoDanic/diny/releases)\n\n\n## Usage\n\nStage your changes, then run:\n\n    git add             # Stage files\n    diny commit\n\n### Auto Command (Git Alias)\n\nSet up a git alias that creates a `git auto` command for diny-generated commit messages.\n\n    diny auto          # Set up the git auto alias\n    diny auto remove   # Remove the git auto alias\n\nAfter setup, you can run:\n\n    git auto           # uses diny to generate commit message\n\n### LazyGit Integration\n\nIntegrate diny directly into [LazyGit](https://github.com/jesseduffield/lazygit) for seamless commit message generation from the LazyGit UI.\n\n    diny link lazygit\n\nThis adds a custom command to LazyGit's configuration, allowing you to generate commit messages with diny without leaving LazyGit.\n\n\n## Commands\n\ndiny comes with a handful of simple commands. Each one is designed to fit naturally into your git workflow:\n\n    diny auto                                 # Set up a git alias so you can run `git auto`\n\n    diny commit                               # Generate a commit message from your staged changes\n    diny commit  --print                      # Print generated message to stdout only\n    diny commit  --print | git commit -F -    # Generated message and commit\n\n    diny config                               # Show your current diny configuration\n    diny init                                 # Initialize diny with an interactive setup wizard\n    diny link lazygit                         # Integrate diny with LazyGit\n    diny theme                                # Select from 10+ dark and light UI themes\n    diny theme list                           # List all available themes with previews\n    diny timeline                             # Summarize and analyze your commit history\n    diny update                               # Update diny to the latest version\n\n## Update\n\n### Built-in update command\n\n```bash\ndiny update\n```\n\n### Manual update\n\n**macOS/Linux:**\n```bash\nbrew update \u0026\u0026 brew upgrade dinoDanic/tap/diny\n```\n\n**Windows (Scoop):**\n```powershell\nscoop update diny\n```\n\n## Why diny exists\n\nI'm terrible at commit messages. I type fast, make mistakes, and my history ends up full of gems like \"fix stuff\" and \"ui thing.\" Not great when you need to remember what you actually did.\n\nI built **diny** because I wanted my commits to be useful without thinking about them. It reads your changes, writes a decent message, and has a timeline feature that summarizes your day. Super handy for client updates or just remembering what you worked on when your brain already moved on.\n\nIt's AI doing what it's actually good at—handling the repetitive stuff I'd rather not think about.\n\n\n## TODO\n[X] - Add lazygit integratio\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FdinoDanic%2Fdiny","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FdinoDanic%2Fdiny","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FdinoDanic%2Fdiny/lists"}