Norse Polytheistic Mythology
    Wondering what’s next for npm?Check out our public roadmap! »

    TypeScript icon, indicating that this package has built-in type declarations

    0.12.1 • Public • Published

    MKC - command line tool for MakeCode editors

    This package includes a tool that can compile MakeCode (PXT) projects by downloading parts of a released MakeCode web app and running them in node.js.

    This is different than pxt command line tool, which is used primarily during development of MakeCode editors.


    Make sure to install node.js.

    To install globally, run

    npm install -g makecode

    To update the client,

    npm install -u -g makecode


    In a folder with pxt.json file, run:

    > makecode

    You can also pass --hw f4, --hw d5 etc. Try --hw help to get a list. Use makecode -j to build JavaScript (it defaults to native).

    The tool is configured with optional mkc.json file. Example:

        "targetWebsite": "",
        "hwVariant": "samd51",
        "links": {
            "jacdac": "../../pxt-jacdac"
        "overrides": {
          "testDependencies": {}

    All fields are optional.

    • targetWebsite says where to take the compiler from; if you omit it, it will be guessed based on packages used by pxt.json; you can point this to a live or beta version of the editor, as well as to a specific version (including SHA-indexed uploads generated during PXT target builds)
    • hwVariant specifies default hardware variant (currently only used in Arcade); try --hw help command line option to list variants
    • links overrides specific packages; these can be github packages or built-in packages
    • overrides is used to override specific keys in pxt.json

    You can use --config-path to build for a different configuration, eg. makecode -c mkc-arcade.json.

    Local development

    This section describes how to build mkc itself.

    • install node.js
    • run yarn install
    • start the build: yarn watch
    • run node path/to/pxt-mkc/makecode in your project folder

    If you want to test out changes in pxt, first run the build as usual, and then replace $HOME/.pxt/mkc-cache/https_58__47__47_<your-editor>-pxtworker.js with pxt/built/web/pxtworker.js. Make sure to run makecode tool without the -u option.


    A new release will be automatically generated by the build system based on these commit naming guidelines.

    • feat: A new feature
    • fix: A bug fix
    • docs: Documentation only changes style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
    • refactor: A code change that neither fixes a bug nor adds a feature
    • perf: A code change that improves performance
    • test: Adding missing or correcting existing tests
    • chore: Changes to the build process or auxiliary tools and libraries such as documentation generation


    • [ ] allow updating shims.d.ts/enums.d.ts


    This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit

    When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

    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.


    npm i makecode

    DownloadsWeekly Downloads






    Unpacked Size

    145 kB

    Total Files


    Last publish


    • avatar