CPX 2.0: Ein Executor im npx-Stil für Composer-Pakete
CPX, jetzt ein First-Party-Laravel-Paket, führt Binaries beliebiger Composer-Pakete aus, ohne sie im Projekt oder global zu installieren.
Version 2.0 bevorzugt lokale Projekt-Binaries, ersetzt feste Shortcuts durch eigene Aliase, führt Skripte und Gists aus und liefert JSON-Ausgabe für KI-Agenten.
CPX ist ein CLI-Tool, das Befehle aus beliebigen Composer-Paketen ausführt, ohne das Paket im Projekt zu installieren — das Composer-Äquivalent zu npx aus der npm-Welt. Jedes Paket landet in einem eigenen isolierten Verzeichnis, was die Abhängigkeitskonflikte von composer global require vermeidet; wiederholte Aufrufe nutzen die Installation erneut und prüfen auf Updates.
Man übergibt den Paketnamen (optional mit Versionsconstraint) sowie den Befehl und seine Argumente, etwa cpx friendsofphp/php-cs-fixer:^3.0 php-cs-fixer fix ./src. Bei Paketen mit nur einem Binary entfällt der Befehl; bei mehreren fragt Version 2.0 nach. Ein Verweis auf ein lokales Verzeichnis mit gültiger composer.json und installiertem vendor/autoload.php führt das deklarierte Binary direkt aus dem Checkout aus — praktisch für lokale Paketentwicklung.
Die größte Verhaltensänderung gegenüber 1.x: cpx sucht vom aktuellen Verzeichnis aufwärts nach dem nächsten Composer-Projekt und bevorzugt dessen Binary aus dem bin-dir. cpx pint nutzt also die vom Projekt gepinnte Version. Versionsconstraints werden beachtet, --skip-local erzwingt die isolierte Kopie.
Die feste Alias-Liste aus 1.x ist gestrichen; eigene Aliase definiert man mit cpx alias, gespeichert in ~/.cpx/ und verwaltet über cpx aliases und cpx unalias. cpx installed listet ausgeführte Pakete, cpx clean räumt ungenutzte auf (--all entfernt alles), und cpx list zeigt nun die cpx-Befehle.
cpx exec führt PHP-Skripte, Inline-Code via -r oder Gists aus (mit Revisions-Pinning per SHA und GITHUB_TOKEN gegen Rate-Limits). cpx tinker delegiert in Laravel-Projekten an php artisan tinker und öffnet sonst eine PsySH-Shell. Beide erkennen den Composer-Autoloader, aliasen nicht importierte Klassen und booten Laravel- (Config, Facades, .env, $app) oder Symfony-Anwendungen ($kernel, $container) — abschaltbar mit --no-boot. Der Code läuft in einem eigenen PHP-Prozess mit Exit-Code-Weitergabe. Die Hilfsfunktion cpx_require() lädt Pakete bei Bedarf nach.
Im nicht-interaktiven Betrieb — umgeleitetes stdin, -n oder ein über laravel/agent-detector erkannter KI-Agent — unterdrückt cpx TTY und Fortschrittsanzeige und gibt JSON-Einzeiler aus; --json erzwingt dies interaktiv, und das Überschreiben von Aliasen erfordert --force.
cpx 2.0 benötigt PHP 8.3+ und wird per composer global require cpx/cpx installiert. Ursprünglich von Liam Hammett geschaffen, ist es nun ein First-Party-Paket laravel/cpx; Taylor Otwell demonstrierte es auf der Laracon US 2026. Ein Upgrade-Guide begleitet den Umstieg von 1.x, Doku gibt es auf GitHub und cpx.dev.
Leserforum
Noch keine Beiträge — eröffne die Debatte.
Starte die Diskussion
Kein Konto, kein Passwort nötig — gib einfach deine E-Mail-Adresse ein, wir senden dir einen einmaligen Anmelde-Link. Beim ersten Mal bist du damit automatisch angemeldet.
Deine Bewertung wird nach der Anmeldung automatisch übernommen.
Schau in dein Postfach
Wir haben einen Anmelde-Link an … gesendet. Öffne ihn auf diesem Gerät — dieser Tab meldet dich automatisch an.
Warte auf deinen Klick …
·