Can I vibe code Hazel?
Watches Mac folders and files everything by your rules.
Hazel is a rules engine over folders: when a file matching X lands in Y, rename it, move it, tag it. That's precisely the kind of automation an AI agent writes on demand — a launchd-triggered script watching your Downloads folder covers most people's entire Hazel setup. Describe your rules in plain English ('PDFs with an invoice number go to ~/Documents/Invoices as YYYY-MM-vendor.pdf') and you get working code plus a log. The GUI rule editor is lovely; it's also the only part you can't script.
Write a Hazel-style folder automation for my Mac. Create a rules.yaml where each rule has: watch folder, match (glob, regex on filename, file age, extension), and actions (rename with a date/vendor template, move, tag, run a shell command). Build a small Node or Python watcher that applies rules, with --dry-run printing what would happen, an append-only log at ~/Library/Logs/tidy.log, and collision-safe renames. Install it as a launchd agent that runs on file changes in Downloads and Desktop. Start me with three rules: file invoices by month, sort screenshots into ~/Pictures/Screenshots, and delete .dmg files older than 30 days.
A launchd-powered folder watcher that applies your renaming, filing, and cleanup rules from one readable config file, with a dry-run mode and a log.
- The visual rule editor — your rules live in a config file you edit by hand
- Deep conditions like content matching and date math without writing them yourself
- Built-in app sweeping, trash management, and AppleScript hooks
- Years of edge-case hardening around file events, network drives, and macOS updates
It's a modest one-time license for automation that has quietly worked through every macOS release, and nobody wants to debug their own file watcher the week it eats a document.
A prompt is the first move, not the whole game. Course 01 teaches you to take a prompt like this one to a shipped, working app — reviewing, correcting, and steering the agent the whole way.
Start Course 01 →