We are proud to introduce MChef (beta). An open source, free, fast environment/productivity tool for Moodle™ plugin developers.

Introducing MChef video. How to install, what it is, creating an example recipe, etc…

Introducing MChef

MChef is a developer-first Docker wrapper built specifically for Moodle plugin development.

If you’ve ever wrestled with mixing plugin code into core, juggling multiple Moodle versions, or manually spinning up test sites — MChef exists to remove that friction.

Currently in beta status for Linux/Mac and alpha status for Windows.

👉 GitHub: https://github.com/citricity/mchef

Works with PHP8.2+

What Is MChef?

MChef is a CLI tool that wraps Docker to give you clean, isolated, switchable Moodle development environments — without polluting core or over-engineering your setup.

It separates your plugin code from Moodle core, so you can:

  • Switch Moodle™ versions effortlessly

  • Keep your plugin repo clean

  • Avoid committing core changes

  • Test across multiple versions safely

CI Tooling (Experimental)

M-Chef can also be used in continuous integration to build Moodle™ Docker images.

This feature is still in its early stages and should not be used for production deployments. However, it is already being used internally to rapidly build disposable Moodle™ environments for QA and automated testing.

When using the mchef “ci” command, M-Chef automatically prepares a leaner build by:

  • Stripping out developer-centric tools (e.g. Xdebug)

  • Reducing image size

  • Improving runtime performance

  • Minimising the potential attack surface

The result is a cleaner, faster Docker image suitable for testing pipelines and internal validation workflows.

As the CI functionality matures, it is expected to evolve into a more complete build and publish pipeline for Moodle™ environments.

Why You Need It

Composure with recipes

Working on a team project? Wouldn’t it be great if everyone had a unified environment featuring the same Moodle™ version, PHP version and plugins? Well, now you can achieve this easily by creating and running MChef recipes!

Run multiple local sites

Working on multiple projects? Need more than one local dev site? No problem. If you configure mchef to work in proxy mode, you can have multiple sites running on your local machine without having to worry about port numbers. Simply configure proxy mode from the terminal.

mchef config --proxy 

Switch Moodle™ Versions Instantly

Because plugin code lives separately from core, you can swap Moodle™ versions without restructuring your repo.

⚡ Create Local Dev Sites in Seconds

Spin up a fresh local Moodle™ instance fast — ideal for:

  • Feature development

  • Regression testing

  • Testing against different DB types

  • CI-style verification

Open Source

Like Moodle™, MChef is open source and free to use. It has been developed primarily by Citricity Limited, and also with help from the Moodle™ community. We are very grateful to anyone who contributes to this project. If you are interested in doing so, please visit our github page. https://github.com/citricity/mchef