Is there a way to limit how frequently you can start an application? On my phone, I'm am enjoying a new tweak called MailStop which sole purpose is to limit my reflex of checking my mail far too often. I have set it to not allow me to start the Mail app for five hours once I have already started it. This has had a great impact on my mail checking abuse. I get to stop and remember I'm checking it far too often every time I try to open it during these hours.

There are other ways to limit the Mail app abuse with this application, but my question os the same as the title: Is there a way to limit how frequently you can start an application on the mac?
You can do this using AppleScript :

1. Open AppleScript Editor

2. Paste following code:


property appName : "Mail"
property minSecsBetweenLaunches : 600 -- seconds
property checkEvery : 5 -- seconds

-- DO NOT MODIFY AFTER THIS LINE IF NOT SURE --

property lastSeenOpen : ""
property lastMailState : ""

on run
    idle
end run

on idle
    my check()
    return checkEvery -- check every n seconds
end idle

on check()
    tell application "Finder" to set processes_names to name of processes
    if (lastMailState is "") then
        -- First run
        set lastMailState to (processes_names contains appName)
        if lastMailState then
            set lastSeenOpen to current date
        end if
    else
        if (processes_names contains appName) then
            if (lastMailState is false) then
                -- App just started
                set lastMailState to true
                if (lastSeenOpen is not "") then
                    -- Already been launched, check if launch allowed
                    set timeLeft to minSecsBetweenLaunches - ((current date) - lastSeenOpen)
                    if (timeLeft > 0) then
                        tell application appName to quit
                        activate
                        display dialog "Wait " & timeLeft & " sec. before opening " & appName & " again."
                    end if
                end if
            end if
            set lastSeenOpen to current date
        else
            if (lastMailState is true) then
                -- App just quit
                set lastMailState to false
            end if
        end if
    end if
end check


3. Adjust settings

The 3 first lines of the script can be edited to fit your needs. By default, check every 5 seconds if Mail has not been seen open since 10 min (which is 600 seconds).

4. Create the app

File menu > Export


Choose app name &amp; destination
select to export as Application 
check "stay open..."


5. Hide from dock

In the Finder, find the app you just exported, then right-click on it, and select "Show package content". Then open "Info.plist" of the "Contents" folder in TextEdit, and, before&nbsp;the&nbsp;last&nbsp;&lt;/dict> of the file, paste:


&lt;key>LSBackgroundOnly&lt;/key>
&lt;string>1&lt;/string>


For info, after edit, end of my file looks like :


[...]
        &lt;string>event log&lt;/string>
    &lt;/dict>
    &lt;key>LSBackgroundOnly&lt;/key>
    &lt;string>1&lt;/string>
&lt;/dict>
&lt;/plist>


And save it of course.

6. Set your app as startup item

System Preferences > Users > ...