Quick start
1. Build
Requirements: macOS 12+, Xcode Command Line Tools, Go 1.27.3 or newer.
go tool mygo doctor
make lang
make check
CGO_ENABLED=0 go tool mygo build -platform darwin/arm64The packaged app is written to build/darwin-arm64/NTFS Kit.app. For a live-reload development session, run:
go tool mygo devAlways use CGO_ENABLED=0. The project has no cgo or SQLite dependency.
2. Launch and grant access
On first launch macOS asks for access to removable volumes. The app declares NSRemovableVolumesUsageDescription in its Info.plist. Without that permission, diskutil can still list some devices but mount operations may fail.
- Settings:
~/Library/Application Support/NTFS Kit/settings.json - Logs:
~/Library/Logs/NTFS Kit/
If the app opens but no external volume appears, check the permission prompt, reconnect the disk, and press Rescan.
3. Complete a safe first mount
- Open Disk overview and confirm the volume is listed.
- Select it in Disks & volumes and read the device node, UUID and mount point.
- Choose Apple native · Read-only.
- Press Mount. The status must change only after state is read back from
diskutil. - Open Finder, confirm the volume is readable, then unmount it from the app before disconnecting.
This path is non-destructive and requires no extra drivers.
4. Add write support (optional)
Read-write, NTFS repair and NTFS formatting require macFUSE and NTFS-3G. Open Mounting & drivers → Install write support and read the boundary before confirming:
- macFUSE is downloaded from the official DMG, checked against the release SHA-256 and its Developer ID, then installed through macOS authorization.
- NTFS-3G is installed through Homebrew, using the official source or the mirror you select for that installation only.
- Homebrew itself is not installed automatically.
After installation, approve the macFUSE system extension in System Settings → Privacy & Security and restart if macOS asks. Then return to the app and verify both drivers are detected.
5. Troubleshooting
| Symptom | Check |
|---|---|
| No volumes listed | Removable-volume permission, cable, disk power, then Rescan |
| Read-only mount fails | Volume is not already mounted elsewhere; Finder or another app may hold it |
| Write mount refused | macFUSE not loaded or NTFS-3G missing; the app stops before unmounting |
| Write mount returned read-only | The app reports it as a failure; check driver status and logs before retrying |
| Repair disabled | Unmount the volume first; repair never runs on a mounted volume |
| Format blocked | The source must be an external NTFS volume and the typed name must match exactly |