Thank you for your interest in contributing! Here's how to get started.
- Requirements: macOS 13+, Xcode 16+
- Clone the repository and open
Console.xcodeproj - Xcode will automatically download SPM dependencies (SwiftTerm)
- Build and run (Cmd+R)
The project uses Xcode's folder references. New files added to
Sources/are automatically included in the build. Do not use XcodeGen or any other project generation tools.
- Open an issue with a clear description
- Include macOS version, Xcode version, and steps to reproduce
- Attach console logs or screenshots if applicable
- Open an issue tagged as a feature request
- Describe the use case and expected behavior
- Fork the repository
- Create a feature branch from
develop(git checkout -b feature/my-feature develop) - Make your changes
- Test on macOS 13+ to ensure backward compatibility
- Submit a PR against the
developbranch
- Swift: Follow the conventions in
CLAUDE.md - SwiftUI views: Extract sub-views as
private varcomputed properties - State sharing: Use
@EnvironmentObjectforAppState, never pass it viainit - Threading: File I/O on
.global(qos: .userInitiated), UI updates on.main.async - Comments: English only. Prefer
// TODO:overprint()for debugging
- Write in English
- Use concise, descriptive messages (e.g.,
fix: resolve OSC 7 parsing for paths with spaces)
Please read our Code of Conduct before participating.
By contributing, you agree that your contributions will be licensed under the MIT License.