Skip to content

Latest commit

 

History

History
37 lines (24 loc) · 1.53 KB

File metadata and controls

37 lines (24 loc) · 1.53 KB

Contributing to Macterm

Thanks for your interest in contributing! Macterm is a macOS terminal emulator built with SwiftUI and libghostty.

Setup

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.xcframework

See CLAUDE.md for an in-depth tour of the codebase and architecture.

Before You Commit

Run the same checks CI runs:

mise run format   # Auto-fix formatting with swiftformat
mise run lint     # swiftlint
mise run test     # Swift test suite

If any of these fail in CI, your PR will be blocked. Running them locally first keeps the loop fast.

Pull Requests

  • 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 edit Macterm.xcodeproj/ directly — it's gitignored and your changes will be wiped on the next regeneration.

Reporting Issues

File issues at https://github.com/thdxg/macterm/issues with steps to reproduce and your macOS version.