Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NTFStore icon

NTFStore

Read & write NTFS drives on macOS β€” from a clean menu-bar app.
by Pritish Maheta

MIT License macOS 12+ Apple Silicon Latest release Swift Kext-free


macOS mounts NTFS (Windows-formatted) drives read-only. NTFStore adds full read-write support using a modern, kext-free stack (FUSE-T + ntfs-3g) and gives you a one-click menu-bar control for mounting, unmounting and ejecting.

No kernel extensions. No "Reduced Security". No reboots.


Features

  • βœ… Read & write any NTFS drive
  • πŸ–±οΈ Menu-bar app β€” mount / unmount / eject / open in Finder, per drive
  • 🧩 Kext-free β€” built on FUSE-T (no kernel extension, no Recovery Mode)
  • πŸ”’ No password prompts β€” a scoped sudo NOPASSWD rule for the mount helper only
  • πŸ’ͺ Robust β€” force-mounts dirty / hibernated (Windows fast-startup) volumes, wins the macOS FSKit auto-mount race, and auto-recovers a drive yanked without ejecting
  • πŸͺΆ Light β€” a tiny Swift app + one shell helper; starts at login
  • 🧹 Clean uninstall included

Menu:

NTFStore β€” Pritish Maheta
──────────────────────────────
🟒 Seagate Pritish β€” read-write  β–Έ  Open in Finder
                                     Unmount
                                     Eject (safe to unplug)
──────────────────────────────
Mount all read-write        ⌘M
Refresh                     ⌘R
Quit NTFStore           ⌘Q

Why NTFStore?

NTFStore Paid drivers (Paragon, Tuxera…) Built-in macOS
Price Free & open source Paid Free
Write to NTFS βœ… βœ… ❌ read-only
Kernel extension βœ… none (FUSE-T) often required β€”
Reduced Security / reboot βœ… never sometimes β€”
Menu-bar mount / eject βœ… varies ❌
Handles dirty / hibernated drives βœ… force varies ❌
Auditable code βœ… ~210-line Swift app ❌ closed β€”

NTFStore is a thin, transparent wrapper around the battle-tested open-source ntfs-3g driver running on kext-free FUSE-T β€” no black boxes, no kernel code, no subscription.

Requirements

  • macOS 12+ (built and tested on macOS 26, Apple Silicon)
  • Homebrew
  • Xcode Command Line Tools (xcode-select --install)

Install

git clone <this-repo> NTFStore
cd NTFStore
./install.sh

The installer will:

  1. Install FUSE-T and ntfs-3g via Homebrew
  2. Build the libfuse.2.dylib shim so ntfs-3g uses FUSE-T
  3. Install the privileged mount helper + a scoped sudo NOPASSWD rule
  4. Build & install NTFStore.app and set it to start at login

You'll be asked for your password once. The first mount may ask you to approve FUSE-T in System Settings β†’ Privacy & Security.

Usage

  1. Plug in an NTFS drive.
  2. Click the πŸ–΄ NTFS icon in the menu bar.
  3. Hover your drive β†’ Mount read-write.
  4. When done, Eject (safe to unplug) before pulling the cable.

Uninstall

./uninstall.sh          # remove NTFStore
./uninstall.sh --all    # also remove the FUSE-T & ntfs-3g Homebrew packages

Troubleshooting

Run the built-in doctor β€” it checks the whole stack and prints the fix for anything wrong:

./scripts/doctor.sh

Every issue encountered building this (and its fix) is documented in docs/TROUBLESHOOTING.md β€” symptom β†’ cause β†’ fix, plus a full engineering findings log and a "full reset" procedure. You shouldn't have to debug anything from scratch.


How it works (short version)

macOS 26's built-in FSKit driver mounts NTFS read-only. NTFStore mounts it read-write with ntfs-3g running over FUSE-T (a userspace, NFS-based FUSE implementation β€” no kernel extension). Because ntfs-3g was built for macFUSE, a small version-patched, re-signed copy of FUSE-T's library is installed at /usr/local/lib/libfuse.2.dylib so ntfs-3g loads FUSE-T instead.

Mounting must run as root (to open the raw device) and from your login session (so the FUSE-T mount persists) β€” so the menu-bar app calls a root-owned helper via a scoped passwordless sudo rule. See docs/ARCHITECTURE.md for the full design and the hard-won macOS-26 lessons.

What gets installed

Path What
/Applications/NTFStore.app The menu-bar app
/usr/local/sbin/ntfs-mount-rw.sh Privileged one-shot mount helper
/usr/local/lib/libfuse.2.dylib FUSE-T shim (version-patched)
/etc/sudoers.d/ntfstore NOPASSWD rule for the helper (your user only)
~/Library/LaunchAgents/com.ntfstore.app.plist Start at login
Homebrew: fuse-t (cask), ntfs-3g-mac The engine
/var/log/ntfstore.log Mount log

Caveats

  • NTFS-via-ntfs-3g is reliable but not Apple-blessed β€” eject cleanly and keep backups.
  • The sudo rule is scoped to the single mount-helper path and validates its argument.
  • Apple Silicon + macOS 26 is the tested target; other configs should work but are unverified.

License

MIT β€” see LICENSE. NTFStore bundles/uses FUSE-T and ntfs-3g, which carry their own licenses.

About

πŸ–΄ Read & write NTFS drives on macOS β€” free, open-source, and kext-free. A clean menu-bar app powered by FUSE-T + ntfs-3g: mount, unmount, and eject Windows-formatted drives with one click. No kernel extensions, no Reduced Security, no reboots. Tested on macOS 26 (Apple Silicon).

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages