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.
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
Examples of Editors built with MakeCode:
- More editors at https://makecode.com/labs
masteris the active development branch, currently
v*is the servicing branch for
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
pxt link ../pxt
If you have multiple checkouts of pxt, you can do the following:
npm iin 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.
If you are developing against pxt, you can run
gulp watch from within the root of the
pxt repository to watch for changes and rebuild.
If you are working on the CLI exclusively,
There are a number of custom icons (to use in addition
to http://semantic-ui.com/elements/icon.html) in the
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
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
In the documentation, highlighting of code snippets uses highlight.js (hljs). Currently, the following languages are included:
If you need to add other languages or update existing ones,
you can find the distribution at https://highlightjs.org/download/;
select all the languages you want to include (including the ones above!),
download and unzip,
and finally copy over
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
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 https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general.aspx. If the use is not covered in Microsoft’s published guidelines or you are not sure, please consult your legal counsel or MakeCode team (email@example.com).