Build

Local package checks, binary rebuild flow, theme generation, and GitHub Pages publishing setup.

Package Checks

swift build
swift test
./Script/test.sh

./Script/test.sh verifies the package across macOS, iOS, iOS Simulator, and Mac Catalyst destinations.

Rebuild libghostty

./Script/build.sh

./Script/build.sh \
  --platforms macos,ios \
  --source /path/to/ghostty \
  --skip-tests

The build scripts apply patches from Patches/ghostty, build target libraries with Zig, merge them into GhosttyKit.xcframework, and update release artifacts.

Release Manifest

./Script/build-manifest.sh build/GhosttyKit.xcframework.zip <download_url>

The script sha256-hashes the zip and substitutes the URL and checksum into Package.swift.template to produce Package.swift; both arguments are required. When products, targets, or binary metadata change, keep Package.swift, Package.local.swift, and Package.swift.template aligned.

Theme Generation

./Script/generate-themes.sh

This regenerates Sources/GhosttyTheme/Themes from iTerm2-Color-Schemes.

GitHub Pages

The documentation site is a static site under docs/. .github/workflows/pages.yml publishes it with GitHub Actions on every main push that changes docs. docs/.nojekyll keeps GitHub Pages serving files exactly as written.

Local Preview

cd docs
python3 -m http.server 8000