Thank you for your interest in contributing to Perspective Studio. This project is built to make running open-source AI models approachable for everyone, and contributions that support that mission are welcome.
- Fork the repository
- Clone your fork locally
- Open
perspective studio.xcodeprojin Xcode 26+ - Build and run on macOS 26+
- macOS 26 or later
- Xcode 26 or later
- Apple Silicon Mac (M1 or later) for local model inference
Use the Bug Report template. Include your macOS version, Mac model, and steps to reproduce.
Accessibility is a core priority. Use the Accessibility Issue template for any barriers you encounter with VoiceOver, keyboard navigation, or other assistive technologies.
Use the Feature Request template. Describe the use case and how the feature would help.
- Create a branch from
main - Make your changes
- Ensure the project builds without warnings
- Test with VoiceOver enabled
- Open a pull request using the PR template
- Swift 6.2 with strict concurrency
- SwiftUI for all UI (no UIKit unless absolutely necessary)
- Use
@Observableinstead ofObservableObject/@Published - Use
async/awaitinstead ofDispatchQueue - Use
foregroundStyle()instead offoregroundColor() - Use
clipShape(.rect(cornerRadius:))instead ofcornerRadius() - No force unwraps or force try unless unrecoverable
All UI contributions must be accessible. This is not optional.
- Add
.accessibilityLabel()and.accessibilityHint()to all interactive elements - Use
.accessibilityHidden(true)on decorative images - Test every UI change with VoiceOver
- Support keyboard navigation
- Do not convey information by color alone
Be respectful, be kind, and be constructive. We are building something for everyone.