Use launchd para invocar seu script. Isso não abrirá o Terminal.
Para lançamentos periódicos, use StartInterval
e StartCalendarInterval
. man launchd.plist
mostrará como fazer isso.
Como alternativa, você também tem cron
no OS X.