Symfony Console Runner
Browse and run your Symfony bin/console commands from a VS Code tree view — no more typing command names from memory.

Features
- Activity Bar tree view of every
bin/console command, grouped by namespace (cache:, doctrine:, make:, …).
- Click to run — sends the command to an integrated terminal (interactive, colored, long-running output all work).
- Argument & option prompts — required arguments are prompted via input boxes; options are offered as a multi-select quick-pick, with value prompts for options that take a value.
- Run in Docker — set a container name per project and commands run inside it via
docker exec; leave it empty to run locally.
- Configurable PHP memory limit — optionally run commands with
php -d memory_limit=<value>.
- Environment indicator — the Commands view title and a status bar item show where commands will run (Docker container or local). Click the status bar item to jump straight to the container setting.
Configuration
| Setting |
Default |
Description |
symfonyConsole.phpPath |
php |
PHP binary used to invoke the console. |
symfonyConsole.consolePath |
bin/console |
Console script path, relative to the workspace folder. |
symfonyConsole.dockerContainer |
"" |
Docker container name/ID to run commands in via docker exec. Empty runs locally. |
symfonyConsole.memoryLimit |
"" |
PHP memory limit for commands, applied as -d memory_limit=<value> (e.g. 512M, 2G, -1). Empty uses PHP's default. |
The dockerContainer and memoryLimit settings are resource-scoped, so you can set them per project in .vscode/settings.json.
Run commands inside a Docker container
Set the container name and commands run as docker exec -i <container> php bin/console ...:
{
"symfonyConsole.dockerContainer": "my-app-php"
}
Raise the PHP memory limit
{
"symfonyConsole.memoryLimit": "512M"
}
This applies in every mode, e.g. docker exec -i my-app-php php -d memory_limit=512M bin/console ....
Where commands run
The Commands view title shows the active environment — docker: <container> or local — and a status bar item mirrors it ($(vm) Symfony: <container> or $(terminal) Symfony: local). Clicking the status bar item opens Settings focused on symfonyConsole.dockerContainer.
How it works
The extension shells out to php bin/console list --format=json, which returns a fully structured
dump of every command — name, description, namespace, arguments (is_required, is_array) and
options (accept_value). The tree, prompts, and invocation are all driven from that JSON; no
human-readable output is parsed.
Development
npm install
npm run compile # one-off build
npm run watch # rebuild on change
Press F5 to launch an Extension Development Host with the extension loaded. Open a Symfony
project folder in that window to see the command tree.
Package a .vsix with:
npx @vscode/vsce package