A simple native macOS terminal built with Swift and libghostty. Minimal be design - suited for everyday use, just not packed with the bells and whistles power users expect.
Full list: docs/FEATURES.md.
Homebrew (recommended):
brew trust --tap 0x96f/justty
brew tap 0x96f/justty
brew install --cask justty
The cask clears Gatekeeper quarantine on install. Details: docs/HOMEBREW.md.
Manual:
Justty-macos.zip from the latest release.Justty.app.Justty.app somewhere lasting (for example /Applications or ~/Applications).Release builds are signed with a stable Justty Self-Signed identity (not an Apple Developer ID / not notarized). Verify both the Authority string and the leaf SHA-256 fingerprint (CN alone is forgeable):
codesign -dv --verbose=4 Justty.app
# expect Authority=Justty Self-Signed
codesign --verify --verbose=4 Justty.app
codesign -d --extract-certificates=/tmp/justty-cert Justty.app
openssl x509 -inform DER -in /tmp/justty-cert0 -noout -fingerprint -sha256
# expect SHA256 Fingerprint=82:9B:F9:9F:A6:C3:28:64:98:C3:57:24:04:3A:F2:CD:71:4B:35:BD:D1:C2:88:B7:D8:86:B6:C2:DD:E2:2C:11
rm -f /tmp/justty-cert*
Gatekeeper may still say the app “can’t be opened because it is from an unidentified developer.”
Recommended: right-click (or Control-click) Justty.app → Open → Open again in the dialog. You only need to do this once.
Alternative (clears the quarantine flag after download):
xattr -dr com.apple.quarantine /path/to/Justty.app
open /path/to/Justty.app
More help: docs/TROUBLESHOOTING.md. Maintainers: docs/SIGNING.md.
git clone --recurse-submodules <your-repo-url> justty
cd justty
open justty.xcodeproj
If you already cloned without submodules:
git submodule update --init --recursive
Build and run the justty scheme. App sandbox is off so Ghostty can spawn a real shell (.exec).
If packages fail to resolve or shells won’t start, see docs/TROUBLESHOOTING.md.
MIT
43 commits
Swift
97.6%
Shell
2.4%
A simple native macOS terminal built with Swift and libghostty. Minimal be design - suited for everyday use, just not packed with the bells and whistles power users expect.
Full list: docs/FEATURES.md.
Homebrew (recommended):
brew trust --tap 0x96f/justty
brew tap 0x96f/justty
brew install --cask justty
The cask clears Gatekeeper quarantine on install. Details: docs/HOMEBREW.md.
Manual:
Justty-macos.zip from the latest release.Justty.app.Justty.app somewhere lasting (for example /Applications or ~/Applications).Release builds are signed with a stable Justty Self-Signed identity (not an Apple Developer ID / not notarized). Verify both the Authority string and the leaf SHA-256 fingerprint (CN alone is forgeable):
codesign -dv --verbose=4 Justty.app
# expect Authority=Justty Self-Signed
codesign --verify --verbose=4 Justty.app
codesign -d --extract-certificates=/tmp/justty-cert Justty.app
openssl x509 -inform DER -in /tmp/justty-cert0 -noout -fingerprint -sha256
# expect SHA256 Fingerprint=82:9B:F9:9F:A6:C3:28:64:98:C3:57:24:04:3A:F2:CD:71:4B:35:BD:D1:C2:88:B7:D8:86:B6:C2:DD:E2:2C:11
rm -f /tmp/justty-cert*
Gatekeeper may still say the app “can’t be opened because it is from an unidentified developer.”
Recommended: right-click (or Control-click) Justty.app → Open → Open again in the dialog. You only need to do this once.
Alternative (clears the quarantine flag after download):
xattr -dr com.apple.quarantine /path/to/Justty.app
open /path/to/Justty.app
More help: docs/TROUBLESHOOTING.md. Maintainers: docs/SIGNING.md.
git clone --recurse-submodules <your-repo-url> justty
cd justty
open justty.xcodeproj
If you already cloned without submodules:
git submodule update --init --recursive
Build and run the justty scheme. App sandbox is off so Ghostty can spawn a real shell (.exec).
If packages fail to resolve or shells won’t start, see docs/TROUBLESHOOTING.md.
MIT
43 commits
Swift
97.6%
Shell
2.4%