CPX 2.0: un ejecutor estilo npx para paquetes Composer
CPX, ahora un paquete oficial de Laravel, ejecuta binarios de cualquier paquete Composer sin instalarlo en el proyecto ni globalmente.
La versión 2.0 prefiere los binarios locales, sustituye los atajos fijos por alias propios, ejecuta scripts y gists, y emite JSON para agentes de IA.
CPX es una herramienta CLI que ejecuta comandos de cualquier paquete Composer sin instalarlo en el proyecto: el equivalente en Composer a lo que npx es para npm. Cada paquete se instala en su propio directorio aislado, evitando los conflictos de dependencias típicos de composer global require; las ejecuciones repetidas reutilizan esa instalación y comprueban actualizaciones.
Se indica el nombre del paquete (con restricción de versión opcional) seguido del comando y sus argumentos, por ejemplo cpx friendsofphp/php-cs-fixer:^3.0 php-cs-fixer fix ./src. Si el paquete tiene un solo binario, el comando puede omitirse; con varios, la versión 2.0 pide elegir. También se puede apuntar a un directorio local con un composer.json válido y vendor/autoload.php instalado: cpx ejecuta el binario declarado directamente desde ese checkout, útil para desarrollar paquetes en local.
El mayor cambio respecto a la 1.x: cpx sube por el árbol de directorios hasta encontrar el proyecto Composer más cercano y prefiere su binario en el bin-dir. Así, cpx pint ejecuta la versión fijada por el proyecto. Se respetan las restricciones de versión y --skip-local fuerza la copia aislada.
La lista fija de alias de la 1.x desaparece; cada usuario define los suyos con cpx alias, guardados en ~/.cpx/ y gestionados con cpx aliases y cpx unalias. cpx installed lista los paquetes ejecutados, cpx clean elimina los no usados recientemente (--all borra todo) y cpx list ahora muestra los comandos de cpx.
cpx exec ejecuta archivos PHP, código en línea con -r o gists (con fijación de revisión mediante SHA y soporte de GITHUB_TOKEN contra los límites de la API). cpx tinker delega en php artisan tinker en proyectos Laravel y, en caso contrario, abre un shell PsySH. Ambos detectan el autoloader de Composer, crean alias de clases sin importar y arrancan aplicaciones Laravel (config, facades, .env, $app) o Symfony ($kernel, $container), desactivable con --no-boot. El código se ejecuta en un proceso PHP propio con propagación del código de salida. La función cpx_require() carga paquetes bajo demanda dentro de los scripts.
En modo no interactivo — stdin redirigido, opción -n o un agente de IA detectado mediante laravel/agent-detector — cpx suprime el TTY y el renderizado de progreso y devuelve JSON de una sola línea; --json fuerza este comportamiento en modo interactivo y sobrescribir un alias requiere --force.
cpx 2.0 requiere PHP 8.3 o superior y se instala con composer global require cpx/cpx. Creado originalmente por Liam Hammett, ahora es un paquete oficial laravel/cpx; Taylor Otwell lo presentó en la Laracon US 2026. Una guía de actualización cubre la migración de 1.x a 2.x, y la documentación está en GitHub y cpx.dev.
Tribuna de lectores
Aún no hay aportaciones — abre el debate.
Inicia la conversación
Sin cuenta ni contraseña — introduce tu correo y te enviamos un enlace de acceso de un solo uso. ¿Primera vez? Todo se configura automáticamente.
Tu valoración se aplicará automáticamente al iniciar sesión.
Revisa tu bandeja de entrada
Hemos enviado un enlace de acceso a …. Ábrelo en este dispositivo — esta pestaña te conectará automáticamente.
Esperando tu clic …
·