---
title: "Installing extensions"
manual: "Getting Started"
version: "main"
permalink: "https://docs.typo3.org/permalink/t3start:installing-extensions@main"
source: "Extensions/InstallingExtensions.rst"
rendered: "2026-09-27T06:56:27+00:00"
---

# Installing extensions {#installing-extensions}

Both system extensions and third-party extensions are managed using Composer. Composer handles
the installation of the extension and also installs any dependencies that may be
required. Composer is also used to uninstall extensions.

## Find the Composer package name for an extension {#install-extension-with-composer}

Visit the [Extension Repository](https://extensions.typo3.org/),
and search for the extension.

On the extension page , under **"Composer support"**,
will be the Composer command required to install that extension.

For example, the extension [EXT:news](https://extensions.typo3.org/extension/news)
has the package name [`georgringer/news`](https://packagist.org/packages/georgringer/news).

Typically the package name will be vendor + slash + extension key.
However, if the extension key contains an underscore, it is replaced
with a dash in the package name. For example:
[EXT:extension_builder](https://extensions.typo3.org/extension/extension_builder):

-   **extension key**

    `extension_builder`

-   **vendor**

    `friendsoftypo3`

-   **Composer package name**

    [`friendsoftypo3/extension-builder`](https://packagist.org/packages/friendsoftypo3/extension-builder)

## Use `composer require` to install the extension {#use-bash-composer-require-to-install-the-extension}

**/var/www/site/$**

```bash
composer require <packagename>
```

To install the news extension:

**/var/www/site/$**

```bash
composer require georgringer/news
```

This will add the extension requirement to the installations `composer.json`
and install the extension.

Whilst the extension is installed and activated automatically, it still needs to be set up before it can be used:

## Setup the extension {#setup-the-extension}

**/var/www/site/$**

```bash
./vendor/bin/typo3 extension:setup
```

The extension setup command takes care of executing additional installation procedures, such as database migrations and
clearing caches if necessary. The extension setup command is not specific to a single extension but instead looks at the overall
state and executes all necessary steps.

### Uninstalling extensions {#uninstalling-extensions}

The composer command `remove` uninstalls an extension.

**/var/www/site/$**

```bash
composer remove georgringer/news
```

The updated `composer.lock` file needs to be committed to the version
control system.

### Installing local extensions {#install-local-extensions-using-composer}

Local extensions including sitepackages and custom extensions also need to be
installed using Composer.

Custom extensions should be placed in a dedicated, local directory: `documentroot/packages`.

Once this directory exists, update the installations `composer.json` and add this directory
as a new repository:

**/var/www/site/composer.json**

```bash
{
    "repositories": [
        {
            "type": "path",
            "url": "./packages/*/"
        },
    ],
}
```

Then run `composer require` to the install the local extension `my-local-extension` with vendor `vendor`:

**/var/www/site/$**

```bash
composer require vendor/my-local-extension:@dev
```

By executing this command, Composer locates `vendor/my-local-extension` and then symlinks
it to `typo3conf/ext/my-local-extension` once `composer install` is executed.
The setup from above defines that the extension is to be placed by composer into the folder `:file:packages/my-local-extension`
if it has not been already there.

### Additional information {#additional-information}

## Find out the extension key for an extension {#find-out-extension-key}

The extension key of an extension can be found in its `composer.json`.

**EXT:blog_example/composer.json**

```json
{
    "name": "t3docs/blog-example",
    "type": "typo3-cms-extension",
    "..": "...",
    "extra": {
        "typo3/cms": {
            "extension-key": "blog_example",
        }
    }
}
```

Before installing an extension, the extension key can be found on its page in the
[TYPO3 Extension Repository (TER)](https://extensions.typo3.org/).

The extension key is listed on the top. For the extension
[EXT:news](https://extensions.typo3.org/extension/news), the extension key is `news`.
