Case study
iCloud Ignore Utility
Little Bash/ZSH utility to avoid syncing some directories with iCloud on MacOS
I built icignore to solve a recurring problem with iCloud Drive: some directories need to remain inside a synced workspace without being uploaded themselves. Development folders are a typical example, as generated files and dependencies can waste storage and create unnecessary synchronization activity.
How it works
The utility uses the .nosync suffix recognized by macOS. Running icignore ignore <path> renames the target directory with this suffix, then creates a symbolic link at its original location. Finder, terminals and applications can therefore continue using the same path while iCloud ignores the underlying directory.
The operation is reversible through icignore unignore, while icignore status inspects both the symbolic link and the real directory. The CLI also refuses unsafe overwrites and provides a --dry-run option to preview filesystem changes.
Distribution
The application is written in Go and distributed as a standalone binary. Releases are built with GoReleaser for macOS and Linux on both ARM64 and AMD64 architectures.
A dedicated Homebrew tap makes the macOS installation straightforward:
brew tap mathis-lambert/icloud-ignore
brew install --cask icignoreTagged releases automatically publish the compiled archives and update the Homebrew cask with the corresponding URLs and checksums. This keeps the installation process reproducible without requiring users to build the project locally.
Built with
- Go
- HomeBrew