Adding Extensions

searching for an extension in MakeCode


The MakeCode editor allows users to publish their own extensions that can then be used in the editor. This is useful for publishing drivers for accessories or other useful pieces of hardware, as well as adding in new software features. The MakeCode team have published a guide to build your own extensions.


Only packages on the approved extension list are visible to users directly in the MakeCode Editor on makecode.microbit.org. If the Extension is published on Github, it is possible to paste the URL in the extension search box and the editor will find it and allow anyone to add it to their project.



Approval Process

To get your extension to appear in the search and be listed on the approved extension list, you may submit it for approval,

by The Foundation. It must meet specific requirements around documentation and stability, because it's important that our users have a great experience when learning with the micro:bit.


Once we are satisfied that your extension meets requirements (see this example repo), we will submit a Pull Request to the pxt-microbit GitHub Repository to update the following files with your information:


https://github.com/Microsoft/pxt-microbit/blob/master/targetconfig.json and

https://makecode.microbit.org/extensions


A member of the team will comment on the Pull Request asking the Makecode team to approve.


Submit an extension

Requirements

Before you submit your extension for approval, check that it meets the following requirements:

This extension supports a commercially available micro:bit accessory or sensor that is for Educational use and is in alignment with the Foundation's mission statement 
The extension is primarily written in English (block translations are very welcome)
The extension is MIT licensed. This licensing is easy to understand and use and ensures sustainability.
The README contains a link to the product page or blog entry.
The README contains well commented examples of use, using TypeScript or embedded editor elements, rather than screengrabs/images
Blocks are lower cased unless they refer to acronyms.
Blocks have tool tips and links to online help using the Makecode Markdown system.
The extension is in a finished state. Extensions that are in development should be marked 'beta' in the repository description.
You have provided a test suite (test.ts) within the extensions(s). The test suite should be comprehensive enough that if Microsoft (who run MakeCode) or the Micro:bit Educational Foundation make any underlying changes to the way the micro:bit compilation happens, we can be sure that your programs and blocks will still work.
Tests should cover all functionality and be documented so that it's clear how to test it, what to expect and what it is considered a pass/fail. If should not throw errors in the simulator if it is using non simulated hardware.
You are a member of the micro:bit development community on Slack and have joined the #makecode and #makecode-pkg-owners channels.
The repository contains an icon.png to aid search. (Please ensure the icon is 300 x 200pixels and less than 100Kb in size as users will need to download it)
TypeScript follows usual JavaScript notations: camelCase for functions, namespace, class members; UPPERCASE for class names, enum/enum members.