A Modern Git Client for macOS
Status: 🚧 Active Development - Sprint 0 Complete
GitCthulhu is an open-source Git client built specifically for macOS, combining the power of SwiftUI and AppKit to deliver a native, performant experience. The project follows a structured development approach with clear sprints and comprehensive testing.
- Native macOS Experience: Built with SwiftUI + AppKit hybrid architecture
- Repository Management: Open, clone, and manage multiple Git repositories
- File Status Tracking: Real-time file status with staging/unstaging capabilities
- Branch Operations: Create, switch, merge, and visualize branches
- Commit Management: Full commit workflow with message editing and history
- Remote Operations: Push, pull, fetch with authentication support
- Modern UI: Clean, intuitive interface following macOS design patterns
- Language: Swift 5.9+
- Frameworks: SwiftUI, AppKit, Combine
- Architecture: Modular design with MVVM pattern
- Git Backend: Native Git integration (libgit2 planned)
- Testing: Swift Testing framework
- CI/CD: GitHub Actions
- Minimum Requirements: macOS 12+
GitCthulhu/
├── Sources/
│ ├── GitCthulhu/ # Main application
│ │ ├── App/ # App lifecycle
│ │ ├── Views/ # SwiftUI Views
│ │ └── ViewModels/ # MVVM ViewModels
│ ├── GitCore/ # Git operations core
│ │ ├── Repository/ # Repository management
│ │ ├── Operations/ # Git operations
│ │ └── Models/ # Data models
│ ├── UIKit/ # Shared UI components
│ │ ├── Components/ # Reusable components
│ │ └── Extensions/ # SwiftUI extensions
│ └── Utilities/ # Helper utilities
│ ├── FileManager/ # File operations
│ └── Logger/ # Logging system
├── Tests/ # Test suites
├── .github/ # GitHub workflows & templates
└── Documentation/ # Project documentation
- Xcode project structure created
- Swift Package Manager configured
- Modular architecture established
- Basic UI framework implemented
- Testing infrastructure setup
- CI/CD pipeline configured
- GitHub Issues and collaboration system
- Git repository core functionality
- Repository opening and validation
- Error handling and logging
- Basic repository information display
- Xcode 15.0+
- macOS 12.0+
- Git 2.30+
# Clone the repository
git clone https://github.com/jiayun/GitCthulhu.git
cd GitCthulhu
# Build the project
swift build
# Run tests
swift test
# Run the application
swift run GitCthulhuWe welcome contributions! Please see our contributing guidelines and check out our collaboration guide for working with AI assistance.
- Check existing Issues
- Follow our Issue templates
- Submit PRs using our PR template
| Sprint | Status | Deliverables |
|---|---|---|
| Sprint 0 | ✅ Complete | Project setup, CI/CD, basic architecture |
| Sprint 1 | 🔄 Next | Git core functionality, repository management |
| Sprint 2 | 📋 Planned | File status management, staging operations |
| Sprint 3 | 📋 Planned | Commit functionality and history |
| Sprint 4 | 📋 Planned | Branch management and operations |
| Sprint 5 | 📋 Planned | Remote operations (push/pull/fetch) |
| Sprint 6 | 📋 Planned | MVP polish and release preparation |
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with SwiftUI and AppKit
- Testing powered by Swift Testing
- Developed with AI assistance from Claude
Note: This project is in active development. Features and APIs may change as we progress through the development sprints.