diff --git a/typo3/sysext/extensionmanager/Classes/Controller/ListController.php b/typo3/sysext/extensionmanager/Classes/Controller/ListController.php
index 93bf495..5f59a36 100644
--- a/typo3/sysext/extensionmanager/Classes/Controller/ListController.php
+++ b/typo3/sysext/extensionmanager/Classes/Controller/ListController.php
@@ -142,8 +142,13 @@ class ListController extends AbstractModuleController
      */
     public function indexAction()
     {
+        $filter = null;
+        if ($this->request->hasArgument('filter')) {
+            $filter = $this->request->getArgument('filter');
+        }
+
         $this->addComposerModeNotification();
-        $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensionsWithAdditionalInformation();
+        $availableAndInstalledExtensions = $this->listUtility->getAvailableAndInstalledExtensionsWithAdditionalInformation($filter);
         ksort($availableAndInstalledExtensions);
         $this->view->assignMultiple(
             [
diff --git a/typo3/sysext/extensionmanager/Classes/Utility/ListUtility.php b/typo3/sysext/extensionmanager/Classes/Utility/ListUtility.php
index c45d9da..32f4ce6 100644
--- a/typo3/sysext/extensionmanager/Classes/Utility/ListUtility.php
+++ b/typo3/sysext/extensionmanager/Classes/Utility/ListUtility.php
@@ -108,21 +108,25 @@ class ListUtility implements \TYPO3\CMS\Core\SingletonInterface
     /**
      * Returns the list of available, but not necessarily loaded extensions
      *
+     * @param null|string
      * @return array[] All extensions with info
      */
-    public function getAvailableExtensions()
+    public function getAvailableExtensions($filter = null)
     {
         if ($this->availableExtensions === null) {
             $this->availableExtensions = [];
             $this->emitPackagesMayHaveChangedSignal();
             foreach ($this->packageManager->getAvailablePackages() as $package) {
                 $installationType = $this->getInstallTypeForPackage($package);
-                $this->availableExtensions[$package->getPackageKey()] = [
-                    'siteRelPath' => str_replace(Environment::getPublicPath() . '/', '', $package->getPackagePath()),
-                    'type' => $installationType,
-                    'key' => $package->getPackageKey(),
-                    'ext_icon' => ExtensionManagementUtility::getExtensionIcon($package->getPackagePath()),
-                ];
+
+                if ($filter == null || $filter == $installationType) {
+                    $this->availableExtensions[$package->getPackageKey()] = [
+                        'siteRelPath' => str_replace(Environment::getPublicPath() . '/', '', $package->getPackagePath()),
+                        'type' => $installationType,
+                        'key' => $package->getPackageKey(),
+                        'ext_icon' => ExtensionManagementUtility::getExtensionIcon($package->getPackagePath()),
+                    ];
+                }
             }
         }

@@ -291,11 +295,12 @@ class ListUtility implements \TYPO3\CMS\Core\SingletonInterface
      * Gets all available and installed extension with additional information
      * from em_conf and TER (if available)
      *
+     * @param null|string
      * @return array
      */
-    public function getAvailableAndInstalledExtensionsWithAdditionalInformation()
+    public function getAvailableAndInstalledExtensionsWithAdditionalInformation($filter = null)
     {
-        $availableExtensions = $this->getAvailableExtensions();
+        $availableExtensions = $this->getAvailableExtensions($filter);
         $availableAndInstalledExtensions = $this->getAvailableAndInstalledExtensions($availableExtensions);
         $availableAndInstalledExtensions = $this->enrichExtensionsWithIconInformation($availableAndInstalledExtensions);
         return $this->enrichExtensionsWithEmConfAndTerInformation($availableAndInstalledExtensions);
diff --git a/typo3/sysext/extensionmanager/Resources/Private/Language/locallang.xlf b/typo3/sysext/extensionmanager/Resources/Private/Language/locallang.xlf
index ff936c4..4e53cb4 100644
--- a/typo3/sysext/extensionmanager/Resources/Private/Language/locallang.xlf
+++ b/typo3/sysext/extensionmanager/Resources/Private/Language/locallang.xlf
@@ -150,6 +150,15 @@
 			<trans-unit id="extensionList.search" resname="extensionList.search">
 				<source>Search</source>
 			</trans-unit>
+			<trans-unit id="extensionList.filter.showAll" resname="extensionList.filter.showAll">
+				<source>All</source>
+			</trans-unit>
+			<trans-unit id="extensionList.filter.showSystemExtensions" resname="extensionList.filter.showSystemExtensions">
+				<source>System</source>
+			</trans-unit>
+			<trans-unit id="extensionList.filter.showLocalExtensions" resname="extensionList.filter.showLocalExtensions">
+				<source>Local</source>
+			</trans-unit>
 			<trans-unit id="searchTemplate.submitButton" resname="searchTemplate.submitButton">
 				<source>Go</source>
 			</trans-unit>
diff --git a/typo3/sysext/extensionmanager/Resources/Private/Templates/List/Index.html b/typo3/sysext/extensionmanager/Resources/Private/Templates/List/Index.html
index 318cd3c..35779b8 100644
--- a/typo3/sysext/extensionmanager/Resources/Private/Templates/List/Index.html
+++ b/typo3/sysext/extensionmanager/Resources/Private/Templates/List/Index.html
@@ -7,10 +7,43 @@

 <f:section name="content">
     <f:render partial="List/UploadForm" />
-
     <form class="form-inline">
-        <div class="form-group">
-            <f:form.textfield name="Tx_Extensionmanager_extensionkey" placeholder="{f:translate(key:'extensionList.search')}" id="Tx_Extensionmanager_extensionkey" value="{search}" class="form-control" />
+        <div class="row">
+            <div class="col-sm-6">
+                <div class="form-group">
+                    <f:form.textfield name="Tx_Extensionmanager_extensionkey" placeholder="{f:translate(key:'extensionList.search')}" id="Tx_Extensionmanager_extensionkey" value="{search}" class="form-control" />
+                </div>
+            </div>
+            <div class="col-sm-6">
+                <div class="pull-right">
+                    <f:link.action
+                        action="index"
+                        controller="List"
+                        title="{f:translate(key:'extensionList.filter.showAll')}"
+                        class="btn btn-default"
+                        style="width: 80px;">
+                        <f:translate key="extensionList.filter.showAll" />
+                    </f:link.action>
+                    <f:link.action
+                        action="index"
+                        controller="List"
+                        arguments="{filter:'System'}"
+                        title="{f:translate(key:'extensionList.filter.showSystemExtensions')}"
+                        class="btn btn-default"
+                        style="width: 80px;">
+                        <f:translate key="extensionList.filter.showSystemExtensions" />
+                    </f:link.action>
+                    <f:link.action
+                        action="index"
+                        controller="List"
+                        arguments="{filter:'Local'}"
+                        title="{f:translate(key:'extensionList.filter.showLocalExtensions')}"
+                        class="btn btn-default"
+                        style="width: 80px;">
+                        <f:translate key="extensionList.filter.showLocalExtensions" />
+                    </f:link.action>
+                </div>
+            </div>
         </div>
     </form>
     <br>
