Thanks for your interest in contributing! Macterm is a macOS terminal emulator built with SwiftUI and libghostty.
Requires macOS 26+, Swift 6.0+, and a full install of Xcode (the Command Line Tools alone aren't enough — xcodebuild needs the Xcode app to build the macOS app target).
mise install # gh, swiftformat, swiftlint, xcodegen, xcbeautify
mise run setup # Download the pre-built GhosttyKit.xcframeworkSee CLAUDE.md for an in-depth tour of the codebase and architecture.
Run the same checks CI runs:
mise run format # Auto-fix formatting with swiftformat
mise run lint # swiftlint
mise run test # Swift test suiteIf any of these fail in CI, your PR will be blocked. Running them locally first keeps the loop fast.
- Keep changes focused. Split unrelated work into separate commits or PRs.
- Commit subjects use the form
<type>: <description>(e.g.fix: option key reaches terminal programs as alt modifier). Types:feat,fix,chore,refactor,docs,test,perf,style,build,ci,revert. - Don't add AI sign-off trailers (
Co-Authored-By: Claude, etc.) to commits. - The Xcode project is generated by xcodegen from
project.yml. Don't editMacterm.xcodeproj/directly — it's gitignored and your changes will be wiped on the next regeneration.
File issues at https://github.com/thdxg/macterm/issues with steps to reproduce and your macOS version.