A modern macOS Git client written in Swift, inspired by GitX.
GitY is a complete rewrite of the classic GitX application in Swift, featuring the same familiar UI and functionality with modern macOS technologies.
The easiest way to install GitY is via Homebrew Cask:
brew install --cask dongri/tap/gity- Download
GitY.dmgfrom the latest release. - Open the DMG file.
- Drag
GitY.appto the Applications folder. - Launch GitY from Applications.
Note: GitY is signed and notarized by Apple, so it will launch without any security warnings.
git clone https://github.com/dongri/gity.git
cd gity
xcodebuild -project GitY.xcodeproj -scheme GitY -configuration Release buildAfter installing GitY, you can install the gity command line tool:
- Open GitY
- Go to Settings > Integration
- Click Install Command Line Tools
Then use it from Terminal:
gity # Open current directory
gity . # Open current directory
gity /path/to/repo # Open specific repository- 📁 Repository Browser - Navigate through your Git repository with ease
- 📜 Commit History - View detailed commit history with diffs
- ✏️ Stage View - Stage and unstage files with visual feedback
- 🌿 Branch Management - Create, checkout, and delete branches
- 🔄 Remote Operations - Fetch, pull, and push to remotes
- 📦 Stash Support - Save, apply, pop, and drop stashes
- 📂 Submodule Support - View and manage Git submodules
- 🔍 Diff Viewer - Syntax-highlighted diff viewing
- ⚡ Performance Optimized - Asynchronous loading for smooth UI
- 🖥️ Command Line Tool - Open repositories from Terminal
- 🤖 AI Commit Messages - Generate intelligent commit messages using local LLMs
- ✅ Signed & Notarized - Verified by Apple for security
- macOS 13.0 (Ventura) or later
- Git installed (usually at
/usr/bin/git)
- Xcode 15.0 or later
- macOS 13.0 or later
- Open
GitY.xcodeprojin Xcode - Select the GitY scheme
- Build and run (⌘R)
# Clone the repository
git clone https://github.com/dongri/gity.git
cd gity
# Build
xcodebuild -project GitY.xcodeproj -scheme GitY -configuration Release build
# The app will be in DerivedData
open ~/Library/Developer/Xcode/DerivedData/GitY-*/Build/Products/Release/GitY.app# Clone the repository
git clone https://github.com/dongri/gity.git
cd gity
# Build and run
swift runGitY is built using SwiftUI and follows a clean architecture:
Sources/
├── GitYApp.swift # App entry point
├── Models/
│ ├── GitRepository.swift # Core repository model (async Git operations)
│ ├── GitRef.swift # Branch/Tag references
│ ├── GitCommit.swift # Commit model
│ ├── ChangedFile.swift # File changes
│ ├── GitStash.swift # Stash model
│ └── GitSubmodule.swift # Submodule model
├── Services/
│ └── LocalLLMService.swift # Local LLM integration
├── Views/
│ ├── ContentView.swift # Main content view
│ ├── WelcomeView.swift # Welcome screen
│ ├── MainRepositoryView.swift # Repository view
│ ├── SidebarView.swift # Navigation sidebar
│ ├── StageView.swift # Staging area
│ ├── HistoryView.swift # Commit history
│ ├── DiffView.swift # Diff viewer
│ └── PreferencesView.swift # Settings (including CLI install)
└── Utils/
├── DirectoryWatcher.swift
└── RelativeDateFormatter.swift
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
GitY is released under the MIT License.
- Original GitX by Pieter de Bie
- Swift rewrite inspired by the original Objective-C implementation
Made with ❤️ in Swift