amm123

Why Python File Monitor Looked Alive on macOS but Never Reacted to Files

Hey — quick brain dump while it’s still fresh.

So yesterday evening I sat down to wire up a small automation on my Mac. Nothing fancy: I wanted a lightweight utility that watches a folder and reacts when files change. Think “drop a CSV here, script picks it up, does its thing.” I grabbed Python File Monitor (app) — the name is pretty literal — and figured this would be a ten-minute setup before dinner.

It turned into a much longer detour, mostly because macOS decided to be quietly overprotective again.

I’m on macOS Sonoma 14.3, Intel Mac mini that I still keep around for backend stuff. Fresh reboot earlier that day, no weird tweaks. The app installed fine, launched fine, UI loaded, logs looked normal. But the core function — actually reacting to file changes — just didn’t happen.

No crash. No error. Just… silence.

At first I assumed I’d misconfigured something. The tool is simple: you point it at a directory, choose a trigger, optionally bind a Python script. I set it to watch a test folder on my Desktop, dropped a file in there, waited. Nothing. Tried again. Still nothing.

What I tried first (and why it didn’t help)

My first move was the obvious one: check the configuration again. Paths correct, scripts executable, Python interpreter detected. All green. The internal status view even claimed the watcher was “running.”

Then I restarted the app. Same result.

Next wrong turn: I moved the watched folder from Desktop to Documents, thinking maybe Finder permissions were being weird. Nope. Same behavior. Files appeared, the app didn’t care.

At this point I suspected something more macOS-specific. Sonoma has tightened file access rules again, especially for background processes. I opened Console and filtered logs by the app’s process name. Mostly harmless entries. A couple sandbox notices. Nothing screaming “blocked.”

Classic macOS move: fail securely and don’t tell you.

The realization

What finally clicked was noticing that the app never once asked for file access. No prompt on first launch. No “would you like to allow access to files in this folder?” dialog. That’s unusual for anything that’s supposed to watch the filesystem.

So I went digging manually.

System Settings → Privacy & Security → Files and Folders.

Sure enough, the app wasn’t listed anywhere. Not Desktop, not Documents, not Full Disk Access. macOS had decided it didn’t get to see anything, and the app was politely pretending everything was fine.

This lines up exactly with how Apple documents sandboxed file access now. If an app doesn’t explicitly trigger the permission dialog, it can end up in a state where it’s running but blind. Apple explains this behavior (in a very Apple way) in their Privacy & Security overview on support.apple.com, especially around file monitoring and background access.

What actually fixed it

The fix was boring, but immediate.

I added the app manually under Privacy & Security → Full Disk Access, toggled it on, quit the app completely, and launched it again.

Dropped a file into the watched folder.

Instant response. Script fired. Log updated. Everything worked exactly as advertised.

I later tested a more restrictive setup — just enabling access to Documents instead of full disk — and that also worked, as long as the watched folder lived there. The key point is that you have to grant something. macOS won’t ask for you.

If you’re installing it via the App Store, it behaves the same way. The listing on apps.apple.com confirms it’s sandboxed, which is fine, but it means permissions are non-negotiable.

I also checked the developer notes to confirm this wasn’t a bug. The official docs mention that file system events rely entirely on macOS permissions and won’t throw explicit errors when blocked. That tracks with what I saw.

While troubleshooting, I found this page useful because it mirrored the same “runs fine but sees nothing” behavior on modern macOS systems: this page https://technotafastore.xyz/developer/38658-python-file-monitor.html. Not official, but it helped confirm I wasn’t losing my mind.

What I’d do next time (short checklist)

If I were setting this up again, I’d do it in this order and save myself an hour:

  • Launch the app once, then immediately open Privacy & Security
  • Grant Files and Folders or Full Disk Access before configuring anything
  • Restart the app after changing permissions (this matters)
  • Only then test file triggers

Once permissions are correct, the tool itself is solid. Low CPU usage, instant reaction time, no weird Python path issues on Sonoma. It does exactly one job and stays out of the way.

The bigger takeaway here isn’t about this specific utility or OrchardKit’s ecosystem. It’s about how macOS now treats background file access as guilty until proven innocent. Apps don’t fail loudly. They just stop seeing the world.

If something “works” but doesn’t actually do its core job, check Privacy & Security before reinstalling, debugging, or blaming Python. macOS is probably just protecting you from yourself again — quietly, politely, and with zero hints.

Anyway. That’s my Tuesday evening adventure. Back to actually automating things now.