- Can I use symfony/ai-mate in a Laravel application?
- Yes, but treat it as a development-only CLI tool rather than a drop-in Laravel package. It is Symfony-bundled and assumes Symfony console, Symfony dotenv, and a Symfony-style project layout, while Laravel gives you Composer and console workflow compatibility. Install it with require-dev, review the init changes to composer.json, and validate .env resolution explicitly before relying on it.
- How do I install symfony/ai-mate in a Laravel project?
- Run composer require --dev symfony/ai-mate, then vendor/bin/mate init, followed by composer dump-autoload. Pin the dependency to 0.14.* or an exact version because this is pre-1.0 software. Run init on a scratch branch and review the composer.json diff before committing it.
- Does symfony/ai-mate work with Laravel's .env file?
- It can, but the env layer needs care. Version 0.14 hard-requires symfony/dotenv for mate.env_file, which introduces a second dotenv implementation alongside Laravel's vlucas/phpdotenv. Confirm that mate.env_file points at Laravel's .env and check precedence, interpolation, and immutable-versus-mutable loading semantics. Also re-verify API key detection after the has_api_key fix in #2514.
- Why does symfony/ai-mate init rewrite composer.json?
- The init flow mutates composer.json in place to set up Mate extension discovery. Release 0.14 includes a fix that preserves non-ASCII characters during the rewrite, but that does not remove the mutation risk. Treat init as a change-managed operation, run it on a scratch branch, and review the diff before committing; no dry-run mode is described in the provided context.
- What PHP and Laravel versions does symfony/ai-mate support?
- The provided context does not state exact PHP, Composer, or Laravel version constraints, so check the package's Composer metadata and documentation before adoption. The package is at 0.14 and pre-1.0, so compatibility can change between minor releases. Verify constraints in your Laravel project and gate upgrades through review.
- Is symfony/ai-mate safe to use in production?
- No. The package is explicitly a development tool and is not intended for production use. Install it with composer require --dev and keep it out of production autoload paths. Use read-only commands such as tools:list and tools:inspect first, and only move to tools:call once you understand the registry.
- What are tools:list, tools:inspect, and tools:call used for in symfony/ai-mate?
- These are CLI commands for working with the Mate tool registry exposed to AI assistants. Start with tools:list and tools:inspect because they are read-only and help you understand what capabilities are available. Then use tools:call once the registry is understood and you are comfortable with the invoked tool behavior.
- What changed in symfony/ai-mate 0.14 that matters for Laravel upgrades?
- The release is described as additive at the command-output level with four bug fixes, but several items affect Laravel integration. It hard-requires symfony/dotenv, preserves non-ASCII during composer.json rewrites, fixes a has_api_key false positive for unset env vars, and changes debug log path resolution. Re-check .env precedence, key resolution, log-shipping assumptions, and .gitignore rules after upgrading.
- How should I pin symfony/ai-mate in a Laravel codebase?
- Pin it to 0.14.* or an exact version because the package is pre-1.0 and minor bumps can shift behavior even without deprecation notices. Keep it in require-dev and gate version bumps through review. The 0.13 to 0.14 upgrade already changed env and logging behavior, so do not assume patch-level safety.
- Is there an official Laravel integration for symfony/ai-mate, or do I need to wrap Artisan commands myself?
- The provided context does not describe a supported Laravel integration path. Treat symfony/ai-mate as a Symfony-published CLI tool invoked from a Laravel repository, and expect to wrap Artisan commands yourself where Laravel-specific behavior is needed. Validate the dotenv requirement and composer.json mutation step before standardizing the workflow.