- Xcode app project:
Shellraiser.xcodeprojwith entitlements inShellraiser/Shellraiser.entitlements. - SwiftPM manifest:
Package.swift(builds executable productShellraiser). - Embedded terminal dependency:
ghostty/submodule andghostty/macos/GhosttyKit.xcframework. - Build artifacts are local-only:
.build/,.xcodebuild/, and*.app.
swift build
Builds the SwiftPM target quickly for iteration checks.xcodebuild -project Shellraiser.xcodeproj -scheme Shellraiser -configuration Debug -derivedDataPath .xcodebuild build
Builds the macOS app bundle used for local runs.make build-app
Convenience wrapper for thexcodebuildcommand above.make run
Builds Debug app and opens.xcodebuild/Build/Products/Debug/Shellraiser.app.
- Language: Swift 5.9+, macOS 14 target.
- Use 4-space indentation and keep lines focused and readable.
- Types/protocols:
UpperCamelCase; functions/vars/properties:lowerCamelCase. - Keep model and manager names explicit (
*Model,*Manager,*View). - Add concise doc comments (
///) for non-trivial types/functions. - Prefer small, composable methods and keep UI state changes on
@MainActor. - Prefer small and focused classes
- Test suite lives in
Tests/ShellraiserTestsand is exposed through the SwiftPM targetShellraiserTests. - Run
swift testfor unit and integration coverage during normal iteration. - Minimum validation before commit:
swift testmake build-app
- Commit messages in imperative mood, concise, and scoped
- Keep submodule updates explicit in separate commits when practical (e.g.,
Update ghostty submodule pointer).
- Do not commit secrets, tokens, or local env files.
- Keep
.gitignoreentries for Xcode/Swift build outputs intact. - Treat
ghostty/as upstream code: avoid unrelated edits and document any submodule commit changes clearly.