Skip to content
Microsoft MakeCode (PXT - Programming eXperience Toolkit)
Branch: master
Clone or download
ChaseMor Sprite editor fixes (#5686)
* Added back cursor preview

* Fixed preview for larger brush sizes

* Made Rectangle start from the top left corner of the cursor

* Switch Coord to be an interface

* Single click inside selection deselects

* Fixed selection missing from block preview

* Switched to drawing the floating layer to the paint layer
Fixed issues with merging selected region on pencil tool start.

* Fixed Whitespace for Travis

* Switched to this.context and also used bit shifting when needed
Latest commit a50238f Jun 17, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Updating feature request template Apr 2, 2019
.vscode fixing jacdac resolution path May 25, 2019
backendutils Move to TypeScript 2.6.1 (#3559) Dec 11, 2017
cli Fix gdb path for docker build with DAL (#5666) Jun 17, 2019
common-docs Update Jun 17, 2019
devops Add script to update cloud settings Oct 3, 2016
docfiles Fixing share page to point to live always (#5680) Jun 14, 2019
docs Merge remote-tracking branch 'origin/master' into dev Jun 17, 2019
external download ai from official location Nov 16, 2016
libs string.indexOf block (#5636) Jun 4, 2019
localtypings merge master Jun 12, 2019
pxt-cli fixing new line in pxt cli Jun 14, 2018
pxtblocks merge master Jun 12, 2019
pxtcompiler update vm output format to support image caching (#5662) Jun 11, 2019
pxteditor merge master Jun 6, 2019
pxtlib Sprite editor fixes (#5686) Jun 18, 2019
pxtpy Py module (#5621) May 31, 2019
pxtrunner Merge remote-tracking branch 'origin/master' into dev Jun 5, 2019
pxtsim Fix ie crash from className typing (#5684) Jun 17, 2019
pxtwapp Updates to PXT app (#2381) Jul 3, 2017
pxtwinrt Import extension as file (#5501) Apr 23, 2019
scripts Allow for microbit .map file in parsestack.js Jun 17, 2019
svgicons Sprite editor marquee tool (#5618) May 31, 2019
tests Py module (#5621) May 31, 2019
theme fix single page print (#5673) Jun 13, 2019
webapp merge master Jun 14, 2019
.gitattributes adding extensions in gitattributes Jun 15, 2018
.gitignore Add pxt-blockly npm package, copy files (#5554) May 20, 2019
.travis.yml Fix travis build breaking changes (#5670) Jun 12, 2019 Updating information with issue tracker guidance May 23, 2018
Jakefile.js Sprite editor marquee tool (#5618) May 31, 2019
LICENSE Update LICENSE Apr 12, 2017
Makefile Re-wire built system to use one jakefile Mar 5, 2016 Updated travis-ci link to lower case Microsoft May 7, 2019
ThirdPartyNotice Switch to smaller qrcodes (#5458) Apr 12, 2019
jakeutil.js Delay loading blockly (#4117) Apr 14, 2018
karma.conf.js Expandable blocks redo (#3835) Feb 9, 2018
osscg-cart-overrides.json Config files for automated OSS registration (#4380) May 30, 2018
osscg-template.json Config files for automated OSS registration (#4380) May 30, 2018
package.json 5.17.24 Jun 17, 2019
ptrcheck-ignore Add ignore file for 'pxt ptrcheck' Jul 12, 2016
pxtarget.json code-gen re-work (#4671) Sep 18, 2018
tslint.json Add Microsoft's recommended tslint rules (#4285) May 11, 2018

Microsoft MakeCode

Build Status Community Discord

Microsoft MakeCode is based on the open source project Microsoft Programming Experience Toolkit (PXT). Microsoft MakeCode is the name in the user-facing editors, PXT is used in all the GitHub sources.

PXT is a framework for creating special-purpose programming experiences for beginners, especially focused on computer science education. PXT's underlying programming language is a subset of TypeScript (leaving out JavaScript dynamic features).

The main features of PXT are:

  • a Blockly-based code editor along with converter to the text format
  • a Monaco code editor that powers VS Code, editor's features are listed here.
  • extensibility support to define new blocks in TypeScript
  • an ARM Thumb machine code emitter
  • a command-line package manager

More info:

Examples of Editors built with PXT:


  • master is the active development branch, currently v3.* builds
  • v0 is the servicing branch for v0.* builds

Running a target from localhost

Please follow the instructions here.

Linking a target to PXT

If you are modifying your own instance of PXT and want a target (such as pxt-microbit) to use your local version, cd to the directory of the target (pxt-microbit, in our example, which should be a directory sibling of pxt) and perform

npm link ../pxt

If you have multiple checkouts of pxt, you can do the following:

  • run npm i in pxt and the target
  • in the target, run pxt link ..\some-other-pxt (you may need to update your CLI first by running npm install -g pxt)

If you run npm i afterwards (in either the target or pxt), you might need to repeat these steps.


First, install Node: minimum version 8.

To build the PXT command line tools:

npm install
npm run build

Then install the pxt command line tool (only need to do it once):

npm install -g pxt

After this you can run pxt from anywhere within the build tree.

To start the local web server, run pxt serve from within the root of an app target (e.g. pxt-microbit). PXT will open the editor in your default web browser.


There are a number of custom icons (to use in addition to in the svgicons/ directory. These need to be 1000x1000px. Best start with an existing one. To see available icons go to http://localhost:3232/icons.html (this file, along with icons.css containing the generated WOFF icon font, is created during build).

If you're having trouble with display of the icon you created, try:

npm install -g svgo
svgo svgicons/myicon.svg


The tests are located in the tests/ subdirectory and are a combination of node and browser tests. To execute them, run npm run test:all in the root directory.


MIT License

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.

Contact Us

Get in touch


MICROSOFT, the Microsoft Logo, and MAKECODE are registered trademarks of Microsoft Corporation. They can only be used for the purposes described in and in accordance with Microsoft’s Trademark and Brand guidelines published at If the use is not covered in Microsoft’s published guidelines or you are not sure, please consult your legal counsel or MakeCode team (

You can’t perform that action at this time.