nunomaduro/pao
pao is a tiny CLI helper for Laravel/PHP projects by Nuno Maduro. It makes running common project tasks easier by providing a simple command runner you can ship with your app or use in development, keeping team workflows consistent and repeatable.
composer require laravel/pao --dev).PAO_AGENT=1) or user-agent sniffing, which could be bypassed in edge cases (e.g., custom CI agents).php -d memory_limit=-1 and profile using Xdebug.composer.json if using unsupported tools.PAO_IGNORE_COMMANDS env var.phpunit --pao) or global?migrate, about, and route:list, reducing CI token usage by 75%.autoload-dev to ensure PAO loads in test environments.post-test) to force JSON output for non-PAO-aware tools.PAO_AGENT=1 explicitly.phpunit --pao | jq).phpunit | tee output.log).composer require laravel/pao --dev..paorc for PHPStan error limits).| Tool | Compatibility | Notes |
|---|---|---|
| PHPUnit 12-13 | ✅ Full | Supports assertions, deprecations, warnings. |
| Pest 4-5 | ✅ Full | Captures --coverage, --profile output. |
| Paratest | ✅ Full | Handles parallel test dots. |
| PHPStan | ✅ Full | Structured error grouping by file. |
| Rector | ✅ Full | Uses native JSON output. |
| Laravel Artisan | ✅ Full (Laravel 12+) | Strips ANSI/whitespace. |
| Symfony Console | ⚠️ Partial | May need custom hooks. |
| Custom Tools | ❌ Not Supported | Requires manual integration. |
PAO_AGENT env var).composer require laravel/pao --dev).curl -H "User-Agent: Gemini CLI" http://localhost).phpunit --pao).jq filters).PAO_AGENT_USER_AGENTS env var).PAO_DEBUG=1).PAO_VERBOSE=1 to log agent detection and output transformations.env.PAO_AGENT: true).How can I help you explore Laravel packages today?