We are proud to introduce MChef (beta). An open source, free, fast environment/productivity tool for Moodle™ plugin developers.
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