diff --git a/apps/settings/composer/composer/autoload_classmap.php b/apps/settings/composer/composer/autoload_classmap.php
index aec70c4ea274be7aecf96117eac495d69b2a422b..480d84e36393b6830478e1e683082036d9912a13 100644
--- a/apps/settings/composer/composer/autoload_classmap.php
+++ b/apps/settings/composer/composer/autoload_classmap.php
@@ -31,6 +31,7 @@ return array(
     'OCA\\Settings\\Hooks' => $baseDir . '/../lib/Hooks.php',
     'OCA\\Settings\\Mailer\\NewUserMailHelper' => $baseDir . '/../lib/Mailer/NewUserMailHelper.php',
     'OCA\\Settings\\Middleware\\SubadminMiddleware' => $baseDir . '/../lib/Middleware/SubadminMiddleware.php',
+    'OCA\\Settings\\Search\\AppSearch' => $baseDir . '/../lib/Search/AppSearch.php',
     'OCA\\Settings\\Search\\SectionSearch' => $baseDir . '/../lib/Search/SectionSearch.php',
     'OCA\\Settings\\Sections\\Admin\\Additional' => $baseDir . '/../lib/Sections/Admin/Additional.php',
     'OCA\\Settings\\Sections\\Admin\\Groupware' => $baseDir . '/../lib/Sections/Admin/Groupware.php',
diff --git a/apps/settings/composer/composer/autoload_static.php b/apps/settings/composer/composer/autoload_static.php
index 4d0b7bc21a1d941f46b45c41117a0d140f70d195..d98e58c1c6761f8434280f3e013573849c199f76 100644
--- a/apps/settings/composer/composer/autoload_static.php
+++ b/apps/settings/composer/composer/autoload_static.php
@@ -46,6 +46,7 @@ class ComposerStaticInitSettings
         'OCA\\Settings\\Hooks' => __DIR__ . '/..' . '/../lib/Hooks.php',
         'OCA\\Settings\\Mailer\\NewUserMailHelper' => __DIR__ . '/..' . '/../lib/Mailer/NewUserMailHelper.php',
         'OCA\\Settings\\Middleware\\SubadminMiddleware' => __DIR__ . '/..' . '/../lib/Middleware/SubadminMiddleware.php',
+        'OCA\\Settings\\Search\\AppSearch' => __DIR__ . '/..' . '/../lib/Search/AppSearch.php',
         'OCA\\Settings\\Search\\SectionSearch' => __DIR__ . '/..' . '/../lib/Search/SectionSearch.php',
         'OCA\\Settings\\Sections\\Admin\\Additional' => __DIR__ . '/..' . '/../lib/Sections/Admin/Additional.php',
         'OCA\\Settings\\Sections\\Admin\\Groupware' => __DIR__ . '/..' . '/../lib/Sections/Admin/Groupware.php',
diff --git a/apps/settings/lib/AppInfo/Application.php b/apps/settings/lib/AppInfo/Application.php
index 0fd39f71b36d92927db38905e8e75d7a8cea05a4..ce96daa372cc04b4007f2d736a5e334decfaf78c 100644
--- a/apps/settings/lib/AppInfo/Application.php
+++ b/apps/settings/lib/AppInfo/Application.php
@@ -46,6 +46,7 @@ use OCA\Settings\Activity\Provider;
 use OCA\Settings\Hooks;
 use OCA\Settings\Mailer\NewUserMailHelper;
 use OCA\Settings\Middleware\SubadminMiddleware;
+use OCA\Settings\Search\AppSearch;
 use OCA\Settings\Search\SectionSearch;
 use OCP\Activity\IManager as IActivityManager;
 use OCP\AppFramework\App;
@@ -79,6 +80,7 @@ class Application extends App implements IBootstrap {
 		$context->registerServiceAlias('SubadminMiddleware', SubadminMiddleware::class);
 		$context->registerMiddleware(SubadminMiddleware::class);
 		$context->registerSearchProvider(SectionSearch::class);
+		$context->registerSearchProvider(AppSearch::class);
 
 		/**
 		 * Core class wrappers
diff --git a/apps/settings/lib/Search/AppSearch.php b/apps/settings/lib/Search/AppSearch.php
new file mode 100644
index 0000000000000000000000000000000000000000..393f63a9e81b0292969a472d9c350a6e399795bc
--- /dev/null
+++ b/apps/settings/lib/Search/AppSearch.php
@@ -0,0 +1,109 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2020 Joas Schilling <coding@schilljs.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\Settings\Search;
+
+use OCP\IL10N;
+use OCP\INavigationManager;
+use OCP\IUser;
+use OCP\Search\IProvider;
+use OCP\Search\ISearchQuery;
+use OCP\Search\SearchResult;
+use OCP\Search\SearchResultEntry;
+
+class AppSearch implements IProvider {
+
+	/** @var INavigationManager */
+	protected $navigationManager;
+
+	/** @var IL10N */
+	protected $l;
+
+	public function __construct(INavigationManager $navigationManager,
+								IL10N $l) {
+		$this->navigationManager = $navigationManager;
+		$this->l = $l;
+	}
+
+	/**
+	 * @inheritDoc
+	 */
+	public function getId(): string {
+		return 'settings_apps';
+	}
+
+	/**
+	 * @inheritDoc
+	 */
+	public function getName(): string {
+		return $this->l->t('Apps');
+	}
+
+	/**
+	 * @inheritDoc
+	 */
+	public function getOrder(string $route, array $routeParameters): int {
+		return -50;
+	}
+
+	/**
+	 * @inheritDoc
+	 */
+	public function search(IUser $user, ISearchQuery $query): SearchResult {
+		/** @var  $entries */
+		$entries = $this->navigationManager->getAll('all');
+
+		$result = [];
+		foreach ($entries as $entry) {
+			if (
+				stripos($entry['name'], $query->getTerm()) === false &&
+				stripos($entry['id'], $query->getTerm()) === false
+			) {
+				continue;
+			}
+
+			if (strpos($query->getRoute(), $entry['id'] . '.') === 0) {
+				// Skip the current app, unlikely this is intended
+				continue;
+			}
+
+			if ($entry['href'] === '') {
+				// Nothing we can open, so ignore
+				continue;
+			}
+
+			$result[] = new SearchResultEntry(
+				'',
+				$entry['name'],
+				'',
+				$entry['href'],
+				'icon-confirm'
+			);
+		}
+
+		return SearchResult::complete(
+			$this->l->t('Apps'),
+			$result
+		);
+	}
+}