All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Complete rewrite from bash to Python for improved maintainability and safety
- 13 modular modules organized by category (dev/security):
- Dev modules: trash, homebrew, docker, dev_caches, git
- Security modules: system_integrity, network, wifi, privacy, app_audit, launch_audit, tools
- Hybrid module: system_cache
- CLI with six commands:
maid clean- Run cleanup operationsmaid audit- Run security audits (read-only)maid report- Generate comprehensive report cardmaid init- Generate default configuration filemaid list- List all available modulesmaid log- Show last run log
- YAML configuration file (
~/.maid.yml) with safe defaults - Dry-run mode enabled by default for first-time users
- Sudo gating: modules that require elevated privileges are opt-in via
--sudoflag - Action logging: all cleanup and audit actions logged to
~/.maid/last_run.json - Report card output in three formats: terminal (with color), JSON, and markdown
- Apple Silicon and Intel support via platform detection
- Security tool integration (Lynis, osquery, KnockKnock) - runs if installed, suggests installation if not
- Retention-based WiFi cleanup: removes networks older than 90 days (configurable), always keeps current network
- Strict allowlist approach for dev cache cleaning: only touches known regenerable cache directories
- TCC (Transparency, Consent, and Control) permission auditing: reads user-level privacy database
- System integrity checks: SIP, FileVault, Gatekeeper, XProtect, Firewall
- Application and launch daemon auditing: identifies unsigned apps and non-Apple launch items
- Network security checks: firewall status, open listening ports, VPN profiles
- Original
maid.shbash script diskutil secureErase freespace- extremely slow and unnecessary on modern SSDs/private/var/foldersdeletion - dangerous and breaks system functionality- Hardcoded SSID deletion - replaced with retention-based approach
known_hostsfile deletion - removed for safety- Forced memory purge - removed as macOS handles memory management automatically