Thanks to visit codestin.com
Credit goes to github.com

Skip to content

dinoDanic/diny

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

diny logo

diny

from git diff to clean commits

diny is a tiny dinosaur that writes your git commit messages for you.
It looks at your staged changes and generates clear, conventional-friendly messages.

๐Ÿ”“ No API key required โ€ข ๐Ÿ”Œ Plug and play โ€ข โšก Fast and reliable โ€ข ๐ŸŒŸ Open source


diny showcase
diny showcase diny showcase diny showcase diny showcase diny showcase

Features

  • ๐Ÿ” Reads staged changes with git diff
  • ๐Ÿงน Filters out noise (lockfiles, binaries, build artifacts)
  • โšก Generates commit messages via Ollama
  • ๐Ÿ“ Produces concise, consistent messages
  • ๐Ÿ”„ Interactive workflow with multiple options
  • ๐Ÿง  Smart regeneration that learns from previous attempts
  • โœ๏ธ Custom feedback system for precise message refinement
  • ๐Ÿงท Save to file (stash the generated message for later)
  • ๐Ÿ“ Draft mode (prepare a commit message without committing)
  • โœ๏ธ Edit in your editor before committing
  • ๐Ÿ“Š Timeline analysis of commit history and message patterns
  • ๐ŸŽจ Customizable UI themes (10+ dark and light themes)

Install

macOS / Linux

brew install dinoDanic/tap/diny

Windows

Scoop (Recommended)

scoop bucket add dinodanic https://github.com/dinoDanic/scoop-bucket
scoop install diny

Manual Installation

Download pre-built binaries from GitHub Releases

Usage

Stage your changes, then run:

git add             # Stage files
diny commit

Auto Command (Git Alias)

Set up a git alias that creates a git auto command for diny-generated commit messages.

diny auto          # Set up the git auto alias
diny auto remove   # Remove the git auto alias

After setup, you can run:

git auto           # uses diny to generate commit message

LazyGit Integration

Integrate diny directly into LazyGit for seamless commit message generation from the LazyGit UI.

diny link lazygit

This adds a custom command to LazyGit's configuration, allowing you to generate commit messages with diny without leaving LazyGit.

Commands

diny comes with a handful of simple commands. Each one is designed to fit naturally into your git workflow:

diny auto                                 # Set up a git alias so you can run `git auto`

diny commit                               # Generate a commit message from your staged changes
diny commit  --print                      # Print generated message to stdout only
diny commit  --print | git commit -F -    # Generated message and commit

diny config                               # Show your current diny configuration
diny init                                 # Initialize diny with an interactive setup wizard
diny link lazygit                         # Integrate diny with LazyGit
diny theme                                # Select from 10+ dark and light UI themes
diny theme list                           # List all available themes with previews
diny timeline                             # Summarize and analyze your commit history
diny update                               # Update diny to the latest version

Update

Built-in update command

diny update

Manual update

macOS/Linux:

brew update && brew upgrade dinoDanic/tap/diny

Windows (Scoop):

scoop update diny

Why diny exists

I'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.

I 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.

It's AI doing what it's actually good atโ€”handling the repetitive stuff I'd rather not think about.

TODO

[X] - Add lazygit integratio