Graphical User Interface for creating and running Scratch 3.0 projects.
JavaScript CSS Other
Switch branches/tags
Nothing to show
Clone or download
paulkaplan Merge pull request #2691 from LLK/fix-finally-bug
Fix project loader cleanup function. Safari does not support the use of .finally
Latest commit 777b68f Jul 20, 2018


Scratch GUI is a set of React components that comprise the interface for creating and running Scratch 3.0 projects

Build Status Greenkeeper badge


This requires you to have Git and Node.js installed.

In your own node environment/application:

npm install

If you want to edit/play yourself:

git clone
cd scratch-gui
npm install

Getting started

Running the project requires Node.js to be installed.


Open a Command Prompt or Terminal in the repository and run:

npm start

Then go to http://localhost:8601/ - the playground outputs the default GUI component


NOTE: If you're a windows user, please run these scripts in Windows cmd.exe instead of Git Bash/MINGW64.

Run linter, unit tests, build, and integration tests.

npm test

Run unit tests in isolation.

npm run unit-test

Run unit tests in watch mode (watches for code changes and continuously runs tests). See jest cli docs for more options.

npm run unit-test -- --watch

Run integration tests in isolation.

npm run integration-test

You may want to review the documentation for Jest and Enzyme as you write your tests.

Publishing to GitHub Pages

You can publish the GUI to so that others on the Internet can view it. Read the wiki for a step-by-step guide.


We provide Scratch free of charge, and want to keep it that way! Please consider making a donation to support our continued engineering, design, community, and resource development efforts. Donations of any size are appreciated. Thank you!