Zwei Releases an einem Tag - das passiert, wenn Features bereit sind. Am 17. Juni 2026 haben ich v1.9.0 und v1.10.0 von mage-remote-run veröffentlicht. Das Highlight in v1.9: Virtual Commands unterstützen jetzt JSON Request Bodies — POST- und PUT-Requests gegen die Magento REST API sind damit ohne eigenen JavaScript-Code möglich. v1.10 bringt eine sauberere Plugin-Infrastruktur: Inkompatible Plugins werden jetzt beim Laden erkannt und mit klarer Fehlermeldung abgewiesen.
v1.9.0: Virtual Commands mit JSON Body, Choices und interaktiven Prompts
Virtual Commands sind seit v1.4 ein zentrales Erweiterungs-Feature: REST-Requests per Konfiguration definieren, ohne JavaScript schreiben zu müssen. Bisher waren sie auf GET-Requests beschränkt. Das ist jetzt Geschichte.
JSON Body Templates
Mit body in der Command-Definition lassen sich POST- und PUT-Requests direkt aus der Konfiguration absetzen. Der Body ist ein JSON-Template. Optionen werden als Platzhalter eingebettet und zur Laufzeit ersetzt.
{
"name": "customer update-email",
"method": "PUT",
"endpoint": "/V1/customers/:id",
"description": "Update customer email address",
"body": {
"customer": {
"id": ":id",
"email": ":email"
}
},
"options": {
"id": {
"type": "string",
"required": true,
"description": "Customer ID"
},
"email": {
"type": "string",
"required": true,
"description": "New email address"
}
}
}
mage-remote-run customer update-email --id 42 --email new@example.com
Damit öffnet sich die gesamte Magento REST API für Virtual Commands und eben nicht nur lesende Operationen, sondern auch schreibende Workflows, ohne eigenen Plugin-Code.
Die vollständige Dokumentation dazu findet ihr unter: mage-remote-run.muench.dev/extensibility/virtual-commands
Choices für Options-Definitionen
Optionen können jetzt vordefinierte Auswahlwerte bekommen. Das macht Commands benutzerfreundlicher und verhindert ungültige Eingaben:
"options": {
"status": {
"type": "string",
"required": true,
"description": "Order status",
"choices": ["pending", "processing", "complete", "canceled"]
}
}
Im interaktiven Modus erscheinen die choices als Auswahlmenü. Per CLI werden ungültige Werte direkt zurückgewiesen.
Interaktive Prompts für fehlende Pflichtoptionen
Virtual Commands fragen fehlende Required Options jetzt interaktiv ab anstatt mit einer Fehlermeldung abzubrechen. Das Verhalten hängt vom Kontext ab: Im Terminal erscheint ein Prompt, in CI/CD-Pipelines wird der Fehler wie bisher ausgegeben. Soweit möglich werden Variablen die bereits von CI/CD Systemen wie Gitlab-CI oder Github Actions standardmäßig definiert wurden (wie CI=1), automatisch erkannt, sodass der interaktive Modus nicht die Pipeline blockieren kann.
Für Pipelines lässt sich der interaktive Modus aber auch explizit deaktivieren:
NON_INTERACTIVE=1 mage-remote-run my-command
# alternativ:
NONINTERACTIVE=1 mage-remote-run my-command
Beide Environment-Variablen werden als Alias akzeptiert an das Homebrew-Konvention-Feeling für Shell-Scripting.
Weitere Änderungen in v1.9
- Performance: Config-I/O läuft jetzt vollständig asynchron (
fs.promisesstatt synchronemfs) — spürbar bei häufigen Profil-Wechseln - Performance:
findRegisteredPluginIndexnutztPromise.allfür parallele Prüfungen - Fix: Verschluckte Fehler in Catch-Blöcken wurden repariert — Fehler sind jetzt sichtbar statt still ignoriert
- Refactoring: Duplicated Filter-Matching-Logik wurde in
parseFilterOptionextrahiert - Deps: axios, zod, inquirer und @modelcontextprotocol/sdk auf aktuelle Versionen gehoben
v1.10.0: Plugin-Kompatibilitätsprüfung über peerDependencies
Plugins deklarieren seit v1.6 eine peerDependency auf mage-remote-run. Ab v1.10 wird diese beim Laden tatsächlich ausgewertet.
Wenn ein Plugin eine Version von mage-remote-run voraussetzt, die nicht mit der installierten übereinstimmt, bricht das Laden mit einer klaren Fehlermeldung ab — statt mit unerklärlichem Laufzeitverhalten.
Das ist das übliche Prinzip: explizit schlechter als stumm falsch. Wer Plugins entwickelt oder nutzt, deklariert die peerDependency in der package.json des Plugins:
{
"name": "my-mage-remote-run-plugin",
"peerDependencies": {
"mage-remote-run": ">=1.10.0"
}
}
Die Prüfung läuft beim Plugin-Laden — noch bevor Commands registriert werden. Inkompatible Plugins werden übersprungen und der Fehler protokolliert.
Update
npm update -g mage-remote-run
Oder direkt auf die aktuelle Version:
npm install -g mage-remote-run@latest
Feedback und Bugreports wie immer via GitHub Issues. Wer Virtual Commands produktiv einsetzt oder Plugins entwickelt... ich freue mich über Erfahrungsberichte.