---
title: "Deprecation: #89139 - Console Commands configuration format Commands.php"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:deprecation-89139"
source: "Changelog/10.3/Deprecation-89139-ConsoleCommandsConfigurationFormatCommandsPhp.rst"
typo3-version: "10.3"
typo3-major: 10
type: "deprecation"
issue: 89139
forge: "https://forge.typo3.org/issues/89139"
tags: ["CLI", "PHP-API", "PartiallyScanned", "ext:core"]
rendered: "2026-09-20T18:31:11+00:00"
---

# Deprecation: #89139 - Console Commands configuration format Commands.php {#deprecation-89139}

See [forge#89139](https://forge.typo3.org/issues/89139)

## Description {#description}

The console command configuration file format `Configuration/Commands.php`
has been marked as deprecated in favor of the symfony service tag
`console.command`. The tag allows to configure dependency injection and
command registration in one single location.

## Impact {#impact}

Providing a command configuration in `Configuration/Commands.php` will
trigger a PHP `E_USER_DEPRECATED` error when the respective commands have not already
been defined via symfony service tags.

Extensions that provide both, the deprecated configuration file and service
tags, will not trigger a PHP `E_USER_DEPRECATED` error in order to allow extensions to
support multiple TYPO3 major versions.

## Affected Installations {#affected-installations}

TYPO3 installations with custom extensions that configure symfony console commands
via `Configuration/Commands.php` and have not been migrated to add symfony
service tags.

## Migration {#migration}

Add the `console.command` tag to command classes. Use the tag attribute `command`
to specify the command name. The optional tag attribute `schedulable` may be set
to false to exclude the command from the TYPO3 scheduler.

```yaml
services:
  _defaults:
    autowire: true
    autoconfigure: true
    public: false

  MyVendor\MyExt\Command\FooCommand:
    tags:
      - name: 'console.command'
        command: 'my:command'
        schedulable: false
```

Command aliases are to be configured as separate tags.
The optional tag attribute `alias` should be set to true for alias commands.

```yaml
MyVendor\MyExt\Command\BarCommand:
  tags:
    - name: 'console.command'
      command: 'my:bar'
    - name: 'console.command'
      command: 'my:old-bar-command'
      alias: true
      schedulable: false
```
