Scratch Python Module

This package enables communication between Python and Scratch 1.3+ (not 2.x) using the remote sensors feature of Scratch. It works with both Python 2 and Python 3.

Example usage:

Remember to enable remote sensors in Scratch! To do this:

  1. Go to Sensing
  2. Right-click on a 'sensor value'
  3. Select 'enable remote sensor connections'
    import scratch
    s = scratch.Scratch()

    # to make a broadcast to scratch
    s.broadcast("from python")

    # to receive an update from scratch
    message = s.receive()
    # blocks until an update is received
    # message returned as  {'broadcast': [], 'sensor-update': {'scratchvar': '64'}}
    #                  or  {'broadcast': ['from scratch'], 'sensor-update': {}}
    # where scratchvar is the name of a variable in scratch
    # and 'from scratch' is the name of a scratch broadcast

    # send sensor updates to scratch
    data = {}
    data['pyvar'] = 123
    for data['pycounter'] in range(60):

To get a copy

Install using PIP3:

$ pip3 install scratch


Download source:


Download latest development version (using Mercurial):

$ hg clone

Found a bug?

Please submit bug reports or feature requests by emailing