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