---
title: "Create a new console command"
manual: "TYPO3 Explained"
version: "12.4"
permalink: "https://docs.typo3.org/permalink/t3coreapi:extension-make-console-command@12.4"
source: "ExtensionArchitecture/Kickstarter/Make/ConsoleCommand.rst"
rendered: "2026-10-21T15:29:37+00:00"
---

> [!WARNING]
> **Attention**
>
> TYPO3 v12 has reached end-of-life as of April 30th 2026 and
> is no longer being maintained. Use the version switcher on the top
> left of this page to select documentation for a supported version of TYPO3.
>
> Need more time before upgrading?
> You can purchase Extended Long Term Support (ELTS) for TYPO3 v12 here:
> [TYPO3 ELTS](https://typo3.com/services/extended-support-elts).

# Create a new console command {#extension-make-console-command}

The "Make" extension can be used to create a new [console
command](https://docs.typo3.org/permalink/t3coreapi:symfony-console-commands@12.4):

**Composer**

```bash
vendor/bin/typo3 make:command
```

**Classic mode installation (no Composer)**

```bash
typo3/sysext/core/bin/typo3 make:command
```

You will be prompted with a list of installed extensions. If your newly created
extension is missing, check if you installed it properly.

-   **`Enter the command name to execute on CLI [myextension:dosomething]:`**

    This name will be used to call the command later on. It should be
    prefixed with your extensions name without special signs. It is considered
    best practise to use the same name as for the controller, in lowercase.

-   **`Should the command be schedulable? (yes/no) [no]:`**

    If you want the command to be available in the backend in module
    **System > Scheduler** choose `yes`. If it should be only callable
    from the console, for example if it prompts for input, choose `no`.

## Have a look at the created files {#have-a-look-at-the-created-files}

The following files will be created or changed:

**Page tree of directory `src/extensions`**

```none
$ tree src/extensions
└── my-test
    ├── Classes
    |   └── Command (*)
    |   |   └── DoSomethingCommand.php (*)
    ├── Configuration
    |   └── Services.yaml (*)
    ├── composer.json
    └── ext_emconf.php
```

## Call the new command {#call-the-new-command}

After a new console command was created you have to delete the cache for it to
be available, then you can call it from the command line:

**Composer**

```bash
vendor/bin/typo3 cache:flush
vendor/bin/typo3 myextension:dosomething
```

**Classic mode installation (no Composer)**

```bash
typo3/sysext/core/bin/typo3 cache:flush
typo3/sysext/core/bin/typo3 myextension:dosomething
```

## Next steps {#next-steps}

You can now follow the [console command tutorial](https://docs.typo3.org/permalink/t3coreapi:console-command-tutorial@12.4)
and learn how to use arguments, user interaction, etc.
