What are the differences between LaunchAgents and LaunchDaemons?

Yes, LaunchAgents are only invoked when the user logs into a graphical session.

LaunchDaemons are typically launched when the system boots and are run outside of a specific user session.

The lauchctl manual page lists these folders with short descriptions:

Files

  • ~/Library/LaunchAgents Per-user agents provided by the user.
  • /Library/LaunchAgents Per-user agents provided by the administrator.
  • /Library/LaunchDaemons System-wide daemons provided by the administrator.
  • /System/Library/LaunchAgents Per-user agents provided by Mac OS X.
  • /System/Library/LaunchDaemons System-wide daemons provided by Mac OS X.