CPX 2.0 : un exécuteur façon npx pour les paquets Composer
CPX, désormais un paquet officiel Laravel, exécute les binaires de n'importe quel paquet Composer sans l'installer dans le projet ni globalement.
La version 2.0 privilégie les binaires locaux, remplace les raccourcis intégrés par des alias personnalisés, exécute scripts et gists, et produit du JSON pour les agents IA.
CPX est un outil en ligne de commande qui exécute des commandes de n'importe quel paquet Composer sans l'installer dans le projet — l'équivalent Composer de npx pour npm. Chaque paquet est installé dans son propre répertoire isolé, ce qui évite les conflits de dépendances propres à composer global require ; les exécutions suivantes réutilisent cette installation tout en vérifiant les mises à jour.
On indique le nom du paquet (avec contrainte de version optionnelle) suivi de la commande et de ses arguments, par exemple cpx friendsofphp/php-cs-fixer:^3.0 php-cs-fixer fix ./src. Si le paquet n'a qu'un seul binaire, la commande peut être omise ; avec plusieurs binaires, la version 2.0 demande de choisir. On peut aussi pointer vers un répertoire local doté d'un composer.json valide et d'un vendor/autoload.php installé : cpx y exécute le binaire déclaré, pratique pour développer un paquet en local.
Principal changement par rapport à la 1.x : cpx remonte l'arborescence depuis le répertoire courant pour trouver le projet Composer le plus proche et privilégie son binaire dans le bin-dir. Ainsi, cpx pint exécute la version épinglée par le projet. Les contraintes de version sont respectées et --skip-local force la copie isolée.
La liste fixe d'alias de la 1.x disparaît ; chacun définit les siens avec cpx alias, stockés dans ~/.cpx/ et gérés via cpx aliases et cpx unalias. cpx installed liste les paquets exécutés, cpx clean supprime les inutilisés (--all efface tout) et cpx list affiche désormais les commandes de cpx.
cpx exec exécute des fichiers PHP, du code inline via -r ou des gists (avec épinglage de révision par SHA et prise en charge de GITHUB_TOKEN contre les limites de débit). cpx tinker délègue à php artisan tinker dans les projets Laravel et ouvre sinon un shell PsySH. Les deux détectent l'autoloader Composer, aliasent les classes non importées et amorcent les applications Laravel (config, facades, .env, $app) ou Symfony ($kernel, $container) — désactivable avec --no-boot. Le code tourne dans un processus PHP séparé avec transmission du code de sortie. La fonction cpx_require() charge des paquets à la demande dans les scripts.
En mode non interactif — stdin redirigé, option -n ou agent IA détecté via laravel/agent-detector — cpx supprime le TTY et l'affichage de progression et renvoie du JSON sur une ligne ; --json force ce comportement en interactif, et l'écrasement d'un alias exige --force.
cpx 2.0 requiert PHP 8.3+ et s'installe via composer global require cpx/cpx. Créé à l'origine par Liam Hammett, c'est désormais un paquet officiel laravel/cpx ; Taylor Otwell l'a présenté à la Laracon US 2026. Un guide de migration accompagne le passage de la 1.x à la 2.x, et la documentation se trouve sur GitHub et cpx.dev.
Tribune des lecteurs
Pas encore de contributions — lance le débat.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
En attente de ton clic …
·