1
0

Auto-Git

Author: Victor Giers

⚠️ This README.md has been automatically generated using AI and might contain hallucinations or inaccuracies. Please proceed with caution!

Auto-Git is a unique and interactive desktop application designed to help you manage your Git repositories with ease. It features a playful cat mascot that guides you through various Git operations, making the process more engaging and user-friendly.


Features

  • Interactive Cat Mascot: A cute cat character that provides feedback and assistance during Git operations.
  • Intelligent Committing: Set thresholds for automatic committing based on file changes or time intervals.
  • README Generation: Automatically generate README.md files for your repositories using AI models.
  • Folder Management: Easily add, remove, and select Git folders to monitor.
  • Commit History: View commit history with detailed diffs and options to revert or checkout commits.
  • Push to Gitea: Push your commits directly to a Gitea server with ease.
  • Customizable Settings: Adjust various settings such as sky mode, autostart, and commit thresholds.

Prerequisites

Before installing Auto-Git, ensure that both Git and Ollama are installed and available in your systems PATH:

  1. Git

  2. Ollama


Installation

Download the latest release for your platform:

(Linux builds coming soon.)

  1. Download the appropriate installer for your system.
  2. Run the installer and follow the on-screen instructions.
  3. Launch Auto-Git from your applications menu (macOS) or Start menu (Windows).

Usage

  1. Add a Folder
    • Click on “Add Folder” to select and add a Git repository to Auto-Git.
  2. Monitor Folders
    • Select a folder in the sidebar to monitor its changes and view commit history.
  3. Commit Changes
    • Auto-Git will automatically commit changes when thresholds are reached, or you can manually commit with a custom message.
  4. Generate README
    • Use the built-in AI integration to generate or update a README.md for any monitored repository.
  5. Push to Gitea
    • Configure your Gitea API key in Settings, then push commits directly from Auto-Git.

Git safety behavior

  • Starting monitoring establishes a baseline; changes that already existed are left untouched.
  • Monitoring commits only paths reported by filesystem events. It never stages the whole repository.
  • Build output and dependency folders such as node_modules, dist-tauri, and src-tauri/target are always excluded.
  • Auto-Git refuses to commit when the index already contains staged work or when Git is rebasing, merging, resolving conflicts, or using a detached HEAD.
  • Threshold- and timer-based commit-message rewrites rebuild commit objects directly without checkout, rebase, hooks, signing, or staging. Every rewritten and descendant commit is checked for identical tree, topology, metadata, and the expected message before the guarded branch compare-and-swap. They do not retain a duplicate history ref. The Reword button preference affects only that button, not scheduled rewrites.
  • Commit history follows local branches, so Jump Here can navigate backward and forward while HEAD is detached. Jumping to a commit that is the unique tip of a local branch reattaches that branch.
  • Starting monitoring reconciles Git changes already present in the working tree, including changes made while monitoring was paused, and commits only those reported paths through the normal guarded monitoring pipeline.
  • Adding any folder immediately enables monitoring in the UI. Existing Git repositories start their watcher at once; non-repositories stay armed and attach the watcher automatically when Init Repo completes, without another Play click.
  • Automatic commit-message rewriting performs all Git safety checks before contacting Ollama, bounds diffs to the configured model context, requests an exact JSON schema, and stops after the first failed automatic attempt instead of retrying on each scheduler tick.
  • Rewrite all is shown whenever the current HEAD history contains paw-marked commits and rewrites all of them in one manually initiated model request and one transactional history update.
  • Every automatic candidate batch receives a persisted one-shot identifier before its model request. The same batch can never be sent automatically again, including after a failure or app restart.
  • Reword, paw retry, and Rewrite all run their Git preflight synchronously. Dirty, staged, and untracked working changes are preserved because message rewriting never touches the worktree or index. Conflicts, detached HEAD, and in-progress Git operations return an immediate UI error and start no model request.
  • Automatic stashing, forced checkout, rebase abort, and hard-reset recovery are not used by monitoring or commit-message rewriting.
  • Commit squashing is temporarily disabled until it uses an equivalently isolated transactional mechanism.

Settings

  • Sky Mode:
    Toggle between light and dynamic themes that adjust color to the current sky color in your area.
  • Autostart:
    Enable or disable Auto-Git to start automatically on system boot.
  • Close to Tray:
    Minimize Auto-Git to the system tray instead of closing it completely.
  • Intelligent Commit Thresholds:
    Set file change or time-based thresholds for automatic commits.
  • AI Model Selection:
    • Default for commit message inference: qwen2.5-coder:7b
    • Default for README generation: qwen2.5-coder:32b
  • Gitea API Key:
    Enter your Gitea API token to push repositories online with one click.

Build from Source

If you want to build Auto-Git yourself, follow these steps:

  1. Clone or download the repository to your local machine.
  2. Install Node.js, npm, Rust, and the Tauri prerequisites for your operating system.
  3. Open a terminal, navigate into the project folder, and run:
    npm install
    
  4. Run the app in development mode:
    npm start
    
  5. Build the Tauri distributables:
    npm run dist
    
  6. The output installers/packages will be located under src-tauri/target/release/bundle/.

License

This project is licensed under the MIT License. See LICENSE for details.

Description
A simple, lightweight GUI for Git operations built with vanilla JS. Provides an easy visual interface to stage, commit, and branch without needing the command line.
Readme 2.6 MiB
Languages
Rust 67.2%
JavaScript 23.3%
HTML 9.5%