TypeScript TeX JavaScript CSS HTML Shell
Switch branches/tags
Clone or download
Latest commit fd83371 Jul 13, 2018
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue tracker feature request templates May 17, 2018
.vscode More info on package localization (#4535) Jul 6, 2018
backendutils Move to TypeScript 2.6.1 (#3559) Dec 11, 2017
cli generate meta.json if missing (#4523) Jul 9, 2018
common-docs CLI console (#4485) Jun 15, 2018
devops Add script to update cloud settings Oct 3, 2016
docfiles Support multi-page print in the editor as well as the docs. Moving pr… Jun 21, 2018
docs Edits to format and pix (#4541) Jul 10, 2018
external download ai from official location Nov 16, 2016
libs missing TD_ID on __timePicker Jun 14, 2018
localtypings Let targets remove categories from blocks (#4533) Jul 6, 2018
papers/tr2017 rest of draft now converted to latex Sep 7, 2017
pxt-cli fixing new line in pxt cli Jun 14, 2018
pxtblocks various pxt buildsprites fixes (#4524) Jun 26, 2018
pxtcompiler Handle top level blocks after a variable declaration list (#4536) Jul 9, 2018
pxteditor Choose hardware dialog (#4528) Jul 2, 2018
pxtlib Let targets remove categories from blocks (#4533) Jul 6, 2018
pxtrunner Minor fix to doc versioning (#4469) Jun 14, 2018
pxtsim support for BLE packet (#4513) Jun 21, 2018
pxtwapp Updates to PXT app (#2381) Jul 3, 2017
pxtwinrt Support for embedding inside of LMS controllers (#4377) May 31, 2018
scripts updated scripts May 17, 2018
svgicons Debugger 9000 (#4134) Apr 16, 2018
tests Handle top level blocks after a variable declaration list (#4536) Jul 9, 2018
theme SEMI COLUMNS RULLEZZS Jun 21, 2018
webapp Let targets remove categories from blocks (#4533) Jul 6, 2018
.gitattributes adding extensions in gitattributes Jun 15, 2018
.gitignore support for sending snippets into a temp folder (#3959) May 16, 2018
.travis.yml Use prod react (#4083) Apr 10, 2018
CONTRIBUTING.md Updating information with issue tracker guidance May 23, 2018
Jakefile.js Attempt to fix playground doccdn paths (#4413) Jun 4, 2018
LICENSE Update LICENSE Apr 12, 2017
Makefile Re-wire built system to use one jakefile Mar 5, 2016
README.md Update README.md Jun 16, 2018
ThirdPartyNotice Update tpn (#4503) Jun 19, 2018
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-lock.json 3.22.1 Jul 13, 2018
package.json 3.22.1 Jul 13, 2018
ptrcheck-ignore Add ignore file for 'pxt ptrcheck' Jul 12, 2016
pxtarget.json Better docs/print support for TypeScript (#2326) Jun 20, 2017
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 http://semantic-ui.com/elements/icon.html) 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.



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 opencode@microsoft.com with any additional questions or comments.

Contact Us

Get in touch