Skip to main content
Dit artikel is gebaseerd op de README.md en UPGRADE.md van laravel/cpx. De inhoud betreft v2.0.0 (uitgebracht op 24 juli 2026).

Wat is cpx?

cpx is een tool waarmee je commando’s uit Composer-pakketten kunt uitvoeren zonder ze te installeren. Zie het als de Composer-variant van npx bij npm.
Intern wordt het pakket geïnstalleerd in een geïsoleerde directory en van daaruit uitgevoerd, zodat het niet botst met de Composer-dependencies van je project of je globale installatie. Vanaf de tweede keer wordt hetzelfde geïnstalleerde pakket hergebruikt, dus dat gaat snel.

Waarom is dit nodig?

Het installeren van losse tools met composer global require kent de volgende problemen.
  • Globale dependencies conflicteren met elkaar (dit gebeurt al snel bij tools die gedeelde dependencies zoals nikic/php-parser of symfony/console gebruiken)
  • Je wilt per project tussen verschillende versies van dezelfde tool wisselen
  • Bij langdurig gebruik vergeet je globale pakketten bij te werken
  • Je wilt een tool die je maar één keer gebruikt niet globaal installeren
cpx zelf is zelfstandig als PHAR en heeft geen Composer-runtimedependencies, dus ook een globale installatie veroorzaakt geen conflicten.

De volledige herschrijving in v2.0

cpx is in v2.0 volledig herschreven en wordt nu gedistribueerd als zelfstandige PHAR. Het basisgebruik (cpx <package-name> <command> [arguments]) en de cachedirectory ~/.cpx zijn behouden. De ontwikkeling van 1.x is bevroren; er komen geen nieuwe releases meer, ook geen bugfixes of beveiligingsfixes. Upgraden is niets meer dan opnieuw globaal installeren.
v2.0 vereist PHP 8.3 of hoger.

Nieuwe functies in v2.0

Voorrang voor lokale binaries

Net als npx voert cpx, als er al een binary in je project is geïnstalleerd, die met voorrang uit voordat er een geïsoleerde kopie wordt geïnstalleerd. Vanaf de huidige directory zoekt het omhoog naar het dichtstbijzijnde Composer-project en voert het de overeenkomende binary in vendor/bin (de standaard bin-dir) uit.
Wil je een geïsoleerde kopie forceren, gebruik dan --skip-local.

Directe uitvoering van een lokale pakketdirectory

Je kunt de directory van een Composer-pakket in ontwikkeling rechtstreeks opgeven en de binary ervan uitvoeren.
De doeldirectory moet een geldige composer.json bevatten en de dependencies moeten vooraf zijn geïnstalleerd in vendor/autoload.php. In dit geval voert cpx geen Composer uit en kopieert of cachet het geen pakketten.

cpx exec en cpx tinker

Er zijn meerdere manieren om snel PHP-code uit te voeren. Binnen een Laravel-project boot cpx exec de applicatie volledig, inclusief config, facades en .env ($app is beschikbaar), en voert cpx tinker de php artisan tinker van het project zelf uit (als laravel/tinker is geïnstalleerd). Op andere plekken start een PsySH-shell. Binnen een script kun je met cpx_require('vendor/package') (hernoemd van composer_require() uit 1.x) een pakket ter plekke autoloaden.

Aliassen

Om lange pakketnamen niet te hoeven onthouden, kun je eigen shortcuts definiëren.
De ingebouwde aliaslijst voor populaire pakketten uit 1.x is geschrapt; als je die nodig hebt, moet je ze zelf definiëren.

Niet-interactieve modus en JSON-output

cpx detecteert een niet-interactieve omgeving automatisch via de AI-agentdetectie van laravel/agent-detector, redirectie van standaardinvoer en de vlag --no-interaction/-n. In de niet-interactieve modus retourneren de beheercommando’s van cpx zelf — zoals installed, aliases, alias, unalias, clean en update — één regel JSON in plaats van opgemaakte tekst. Ook vanuit een interactieve terminal krijg je dezelfde output door --json mee te geven.

Belangrijkste wijzigingen ten opzichte van v1.x (commando’s)

Gerelateerde pagina’s

De cache en pakketten van oude versies in de directory ~/.cpx worden automatisch gemigreerd naar het nieuwe formaat, maar pakketten die je met een versieconstraint uitvoerde worden onder een nieuwe directorynaam beheerd en worden daarom eenmalig opnieuw geïnstalleerd. Overbodig geworden kopieën uit het 1.x-tijdperk verwijder je met cpx clean.

laravel/cpx repository

De broncode en de nieuwste README vind je hier.

cpx 2.0-upgradegids

Gedetailleerde migratie-instructies van 1.x naar 2.x.
Laatst gewijzigd op 6 september 2026