# Extensions Quickstart

> This guide will cover how to get started with developing an extension for Directus.

This guide will cover how to get started with developing an extension for Directus. You will set up a development environment, build an extension, and load it into your project.

## Loading an Extension Volume

Follow the steps in the [Create a Project](/getting-started/create-a-project) guide to set up your project locally. This `docker-compose.yml` file will set up a local volume for extensions to be loaded from. This directory exists on your local filesystem and is also mounted into the Docker container.

Add the following to the `environment` section of your `docker-compose.yml` file to automatically reload your extensions when they are rebuilt:

```yaml
EXTENSIONS_AUTO_RELOAD: true
```

<callout icon="i-lucide-info">

**Restarting Directus**
When changing the `docker-compose.yml` file, you will need to restart Directus by restarting the Docker container.

</callout>

## Initializing an Extension

In your terminal, navigate to the `extensions` directory and run the following command and follow the prompts to initialize an extension:

```bash
npx create-directus-extension@latest
? Choose the extension type: endpoint
? Choose a name for the extension: my-first-endpoint
? Choose the language to use: javascript
? Auto install dependencies?: Yes
```

This will create a new subdirectory in `extensions` with a boilerplate extension.

## Building Your Extension

Run `npm run build` to build your extension. This will create a `dist` directory in your extension directory with your built extension. This is the code that will be loaded into your Directus project.

You can alternatively run `npm run dev` to automatically rebuild your extension when you make changes.

With the `EXTENSIONS_AUTO_RELOAD` environment variable set, your extension will be automatically reloaded in Directus when you make changes.

## Using Your Extension

Navigate to the extensions page in your project settings. You should now see your new extension in the list.

Endpoints are only available via API, so navigate to `http://localhost:8055/my-first-endpoint` in your browser to access your new endpoint. Other extension types are available in their respective selection panes within the Data Studio.

## Next Steps

Now that you've built your first extension, you can start building out your own. Check out the [API Extensions](/guides/extensions/api-extensions) overview or [App Extensions](/guides/extensions/app-extensions) overview for more information on building each extension type.
