Skip to content
Are certain websites a distraction? SelfRestraint is a cross platform application which blocks access to websites for a predetermined period of time. It can not be undone by the app or by a restart – you must wait for the timer to run out.
Branch: master
Clone or download
Pull request Compare This branch is 59 commits ahead, 218 commits behind SelfControlApp:master.
ParkerK Merge pull request #9 from dflock/master
I made it work on Linux & Tidied up the code/comments a bit
Latest commit a7d8213 Jul 25, 2014




SelfRestraint is a cross platform version of Steve Lambert's SelfControl, written in Python. It allows you to block distracting sites for a set amount of time, so you can use your computer and access the internet without having to worry about distracting sites.


SelfRestraint was developed by Parker Kuivila The UI and features were inspired by Steve Lambert


SelfRestraint is Free Software under the GPL. You are free to share, modify, and add to the code as you wish.


If you simply want to use the program, just run the included .exe (Windows) or .app (Mac OS X) (Coming Soon!).


If you want to help with the project and build it yourself here's how:

  1. Download the dependancies

  2. For Windows:

    • In the PyInstaller directory run python -F -w --icon=<Path_To_Selfrestraint.ico> \path\to\
  3. If you're on OS X:

    • Navigate to and open
    • Add sys.path = [os.path.join(os.environ['RESOURCEPATH'], 'lib', 'python2.7', 'lib-dynload')] + sys.path above sys.frozen = 'macosx_app'

Known Bugs

  • Mac version requires password, messy workaround
  • Does not work on OS X
  • Quitting means you have to re run the app, and let is finish the countdown
  • Sometimes the timer doesn't end and the block lasts forever (until hosts file is changed)

To Do

  • Add compiled .app
  • Integrate better to use Admin privileges on OSX
  • Increase robustness, and make workarounds harder
  • Add site/config file to prevent constant reentering of sites
You can’t perform that action at this time.