{"id":42536303,"url":"https://github.com/git-ai-project/git-ai","last_synced_at":"2026-05-24T03:04:42.264Z","repository":{"id":302488533,"uuid":"1012625755","full_name":"git-ai-project/git-ai","owner":"git-ai-project","description":"A Git extension for tracking the AI-generated code in your repos","archived":false,"fork":false,"pushed_at":"2026-05-19T00:26:32.000Z","size":122217,"stargazers_count":1884,"open_issues_count":149,"forks_count":171,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-05-19T01:38:36.411Z","etag":null,"topics":["ai","ai-blame","coding-agents"],"latest_commit_sha":null,"homepage":"https://usegitai.com","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/git-ai-project.png","metadata":{"files":{"readme":"README-nix.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-07-02T16:09:26.000Z","updated_at":"2026-05-18T23:20:54.000Z","dependencies_parsed_at":"2026-03-10T18:03:30.499Z","dependency_job_id":null,"html_url":"https://github.com/git-ai-project/git-ai","commit_stats":null,"previous_names":["acunniffe/git-ai","git-ai-project/git-ai"],"tags_count":160,"template":false,"template_full_name":null,"purl":"pkg:github/git-ai-project/git-ai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/git-ai-project%2Fgit-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/git-ai-project%2Fgit-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/git-ai-project%2Fgit-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/git-ai-project%2Fgit-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/git-ai-project","download_url":"https://codeload.github.com/git-ai-project/git-ai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/git-ai-project%2Fgit-ai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33290928,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T02:57:32.698Z","status":"ssl_error","status_checked_at":"2026-05-21T02:57:31.990Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","ai-blame","coding-agents"],"created_at":"2026-01-28T17:03:57.832Z","updated_at":"2026-05-24T03:04:42.258Z","avatar_url":"https://github.com/git-ai-project.png","language":"Rust","funding_links":[],"categories":["Applications","🛠️ Developer Tools","Rust","ai","Agentic Systems"],"sub_categories":["System tools"],"readme":"# Installing git-ai with Nix\n\nThis project provides a Nix flake for easy installation on NixOS, nix-darwin, or any system using Home Manager or Nix profiles.\n\n## Quick Start\n\nTry without installing:\n```bash\nnix run github:acunniffe/git-ai -- --version\n```\n\nInstall to user profile:\n```bash\nnix profile install github:acunniffe/git-ai\n```\n\n## What's Included\n\nThe package provides three commands:\n\n| Command | Description |\n|---------|-------------|\n| `git` | Routes through git-ai (tracks AI authorship) |\n| `git-ai` | Direct git-ai commands |\n| `git-og` | Bypasses git-ai, calls real git |\n\n## Flake Outputs\n\n```\npackages.${system}.default   # Complete package with git wrapper\npackages.${system}.minimal   # Without git symlink (for manual integration)\npackages.${system}.unwrapped # Just the binary\ndevShells.${system}.default  # Development environment\nnixosModules.default         # NixOS module\nhomeManagerModules.default   # Home Manager module (hooks and config only)\noverlays.default             # Nixpkgs overlay\n```\n\n## Installation Methods\n\n### 1. Home Manager with programs.git (Recommended)\n\nThe cleanest approach is to set git-ai as your git package and use the module for hooks.\n\nAdd the input to your flake:\n```nix\n{\n  inputs = {\n    nixpkgs.url = \"github:NixOS/nixpkgs/nixpkgs-unstable\";\n    home-manager.url = \"github:nix-community/home-manager\";\n    git-ai.url = \"github:acunniffe/git-ai\";\n  };\n}\n```\n\nIn your Home Manager configuration:\n```nix\n{ inputs, system, ... }:\n\n{\n  imports = [ inputs.git-ai.homeManagerModules.default ];\n\n  # Use git-ai as the git implementation\n  programs.git = {\n    enable = true;\n    package = inputs.git-ai.packages.${system}.default;\n    # ... your other git settings (signing, aliases, etc.)\n  };\n\n  # Enable git-ai hooks for IDE/agent integration\n  programs.git-ai = {\n    enable = true;\n    installHooks = true;  # Runs git-ai install-hooks on activation\n  };\n}\n```\n\nThis approach:\n- Replaces the standard git with git-ai throughout your environment\n- Installs IDE/agent hooks automatically\n- Creates `~/.git-ai/config.json` with the correct git path\n- Avoids package conflicts\n\n### 2. nix-darwin with Home Manager\n\n```nix\n{\n  inputs = {\n    darwin.url = \"github:lnl7/nix-darwin\";\n    home-manager.url = \"github:nix-community/home-manager\";\n    git-ai.url = \"github:acunniffe/git-ai\";\n  };\n\n  outputs = { darwin, home-manager, git-ai, nixpkgs, ... }: {\n    darwinConfigurations.myhost = darwin.lib.darwinSystem {\n      system = \"aarch64-darwin\";\n      modules = [\n        home-manager.darwinModules.home-manager\n        {\n          home-manager.users.myuser = { pkgs, ... }: {\n            imports = [ git-ai.homeManagerModules.default ];\n\n            programs.git = {\n              enable = true;\n              package = git-ai.packages.${pkgs.system}.default;\n            };\n\n            programs.git-ai = {\n              enable = true;\n              installHooks = true;\n            };\n          };\n        }\n      ];\n    };\n  };\n}\n```\n\n### 3. NixOS System-Wide\n\n```nix\n{\n  inputs = {\n    nixpkgs.url = \"github:NixOS/nixpkgs/nixos-unstable\";\n    git-ai.url = \"github:acunniffe/git-ai\";\n  };\n\n  outputs = { nixpkgs, git-ai, ... }: {\n    nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {\n      modules = [\n        git-ai.nixosModules.default\n        {\n          programs.git-ai = {\n            enable = true;\n            installHooks = true;\n          };\n\n          # Add git-ai to system packages\n          environment.systemPackages = [\n            git-ai.packages.x86_64-linux.default\n          ];\n        }\n      ];\n    };\n  };\n}\n```\n\n### 4. Direct Package (Standalone)\n\nIf not using Home Manager's `programs.git`, add the package directly:\n```nix\n{ inputs, pkgs, ... }:\n\n{\n  home.packages = [\n    inputs.git-ai.packages.${pkgs.system}.default\n  ];\n}\n```\n\n**Note:** This may conflict if you also have `programs.git.enable = true`. Use the `minimal` package to avoid conflicts:\n```nix\nhome.packages = [\n  inputs.git-ai.packages.${pkgs.system}.minimal  # No git symlink\n];\n```\n\n### 5. Using the Overlay\n\n```nix\n{\n  nixpkgs.overlays = [ inputs.git-ai.overlays.default ];\n\n  # Then use:\n  home.packages = [ pkgs.git-ai ];\n}\n```\n\n## Development\n\nEnter a development shell with Rust toolchain:\n```bash\nnix develop github:acunniffe/git-ai\n```\n\nOr clone and develop locally:\n```bash\ngit clone https://github.com/acunniffe/git-ai\ncd git-ai\nnix develop\n\ncargo build\ncargo test\ncargo run -- --version\n```\n\n## Local Flake Development\n\nFor developing from a local checkout:\n```nix\n{\n  inputs.git-ai.url = \"git+file:///path/to/git-ai\";\n}\n```\n\n## Module Options\n\n### homeManagerModules.default\n\nThe Home Manager module handles hooks and configuration only (not package installation).\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `enable` | bool | `false` | Enable git-ai hooks and config |\n| `package` | package | flake default | The git-ai package (for hooks) |\n| `installHooks` | bool | `true` | Run `git-ai install-hooks` on activation |\n\n### nixosModules.default\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `enable` | bool | `false` | Enable git-ai |\n| `package` | package | flake default | The git-ai package to use |\n| `installHooks` | bool | `true` | Run `git-ai install-hooks` on activation |\n| `setGitAlias` | bool | `true` | Add git-ai to system PATH |\n\n## Platforms\n\nSupported systems:\n- `x86_64-linux`\n- `aarch64-linux`\n- `x86_64-darwin`\n- `aarch64-darwin`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgit-ai-project%2Fgit-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgit-ai-project%2Fgit-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgit-ai-project%2Fgit-ai/lists"}