php local/devkit/cli/run.phpSymlink or copy bin/devkit to your Moodle root:
ln -s public/local/devkit/bin/devkit devkit
./devkitAll examples below use ./devkit — replace with php local/devkit/cli/run.php if you prefer the long form.
Uses Symfony Console (v7.x).
List all installed plugins.
./devkit plugins:list
./devkit plugins:list --json
./devkit plugins:list --include-standardOptions: --json, --include-standard.
List all database tables, or tables for a specific plugin component.
./devkit db:show
./devkit db:show mod_forum
./devkit database:show mod_assign --format=jsonOptions: component (optional), --format (table|json).
Get detailed info (fields, indexes, keys) for a specific database table.
./devkit db:table forum
./devkit database:table assign --format=jsonOptions: tablename (required), --format (table|json).
Format the db/install.xml file for a plugin.
./devkit db:format mod_forum
./devkit database:format mod_forumOptions: component (required).
Run all linters on paths.
./devkit lint local/devkit/
./devkit lint mod/assign/ --format=json
./devkit lint local/devkit/ --linters=phpcs --linters=phplint
./devkit lint local/devkit/ --relative
./devkit lint local/devkit/ --rules=/moodle\.Commenting/ --rules=no-unused-vars
./devkit lint local/devkit/ --format=githubOptions: paths (array arg), --format (text|json|jsonl|github), --decorate/--no-decorate, --progress/--no-progress, --relative/--no-relative, --rules (case-insensitive substring or /pattern/flags regex), --linters (filter).
Moodle coding standards only.
PHP syntax check only.
Static analysis (configurable rule level, default 8) only.
JS linting only.
CSS/SCSS linting only.
PHPDoc checking (uses local_moodlecheck).
Language string consistency check only.
Format code files with an opinionated code-style.
./devkit format local/devkit/classes/
./devkit format local/devkit/classes/local/cli/commands/format.php
./devkit format mod/assign/ lang/en/Formatting pipeline:
| Extension | Formatters |
|---|---|
.php |
Pint → PHPCBF |
.css, .scss |
Biome → Stylelint |
.js, .jsx, .ts, .tsx |
Biome → ESLint |
db/install.xml |
XMLDB |
Ignored paths: .git/, amd/build/, js/esm/build/, node_modules/, tests/fixtures/, vendor/.
Options: paths (array arg, files or directories).
Start MCP server (stdio). See MCP docs.