# albertlauncher/albert

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/albertlauncher-albert).**

7,945 stars · 328 forks · C++ · NOASSERTION

## Links

- GitHub: https://github.com/albertlauncher/albert
- Homepage: https://albertlauncher.github.io
- awesome-repositories: https://awesome-repositories.com/repository/albertlauncher-albert.md

## Topics

`albert` `albertlauncher` `application-launcher` `cpp` `keyboard-launcher` `launcher` `plugins` `python` `qt` `qt6`

## Description

Albert is a keyboard launcher that opens files, applications, and runs commands by typing search queries into a search bar. It functions as a keyboard-driven workflow tool, enabling users to navigate their file system, launch installed applications, and execute shell commands without touching a mouse.

The launcher processes user input through a plugin-based modular architecture, where functionality is extended by dynamically loaded C++ and Python plugins. Queries are dispatched to all enabled handlers in parallel, with results merged and ranked by a combination of match quality and historical usage frequency. When primary handlers return no matches, a fallback handler chain displays alternative results, and trigger-based input routing allows specific handlers to be invoked exclusively.

The project supports community plugin installation and provides frameworks for developing both native C++ shared library plugins with full Qt access and Python modules following a stub file interface. Plugin modules can be loaded, unloaded, enabled, or disabled at runtime through settings or query handlers. The search system includes configurable string matching strategies, input history navigation, and result item activation with default or alternative actions via keyboard shortcuts.

Installation is available through package managers, Homebrew cask, prebuilt binaries, or source code compilation, with release history review for tracking updates.

## Tags

### Development Tools & Productivity

- [Keyboard Launchers](https://awesome-repositories.com/f/development-tools-productivity/keyboard-launchers.md) — Launches applications, opens files, and runs commands by typing search queries without touching a mouse.
- [Application Launchers](https://awesome-repositories.com/f/development-tools-productivity/application-installers/application-launchers.md) — Opens installed applications by typing their name into the search interface. ([source](https://albertlauncher.github.io/))
- [Shell Command Execution](https://awesome-repositories.com/f/development-tools-productivity/shell-command-execution.md) — Runs shell commands directly from the search bar without opening a terminal window. ([source](https://albertlauncher.github.io/))
- [Community Extension Installers](https://awesome-repositories.com/f/development-tools-productivity/cli-command-extensions/community-extension-installers.md) — Adds new search sources and actions by installing community-maintained plugins through a simple API. ([source](https://albertlauncher.github.io/))
- [Qt Plugin Development](https://awesome-repositories.com/f/development-tools-productivity/compilers-toolchains/c-extension-interfaces/c-extension-development/qt-plugin-development.md) — Enables creating native C++ plugins with full access to Qt and the event loop for maximum performance. ([source](https://albertlauncher.github.io/extension/))
- [File System Navigators](https://awesome-repositories.com/f/development-tools-productivity/file-system-navigators.md) — Locates files on the system by matching typed queries against file names and paths.
- [Keyboard Launcher Plugin Frameworks](https://awesome-repositories.com/f/development-tools-productivity/plugin-development-frameworks/keyboard-launcher-plugin-frameworks.md) — Provides frameworks for developing both native C++ shared library plugins and Python modules to extend the launcher.

### Software Engineering & Architecture

- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures.md) — Extends core functionality through dynamically loaded C++ and Python plugins integrated with the event loop.
- [Parallel Query Dispatchers](https://awesome-repositories.com/f/software-engineering-architecture/concurrent-query-handlers/parallel-query-dispatchers.md) — Dispatches user queries to all enabled handlers in parallel, then merges and ranks results by relevance.
- [Functional Module Management](https://awesome-repositories.com/f/software-engineering-architecture/functional-module-management.md) — Loads, unloads, enables, and disables functional plugin modules at runtime through settings or query handlers. ([source](https://albertlauncher.github.io/basics/))
- [Directory-Based Plugin Discovery](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/registration-discovery-systems/directory-based-plugin-discovery.md) — Discovers and loads plugins by scanning designated directories for Python modules and C++ shared libraries.
- [Parallel Plugin Query Execution](https://awesome-repositories.com/f/software-engineering-architecture/workflow-nodes/parallel-execution/parallel-plugin-query-execution.md) — Sends non-triggered input to all enabled handlers in parallel, then merges and sorts results by match and usage score. ([source](https://albertlauncher.github.io/basics/))

### User Interface & Experience

- [Application Launch Interfaces](https://awesome-repositories.com/f/user-interface-experience/application-launch-interfaces.md) — Finds and opens installed applications by typing their name into a keyboard-driven search interface.
- [Asynchronous Query Handlers](https://awesome-repositories.com/f/user-interface-experience/non-blocking-input-collection/asynchronous-query-handlers.md) — Processes user queries without blocking the main thread to maintain responsive keyboard input.
- [Quick-Launch Application Interfaces](https://awesome-repositories.com/f/user-interface-experience/quick-launch-application-interfaces.md) — Opens files and launches applications by typing search queries into a keyboard-driven interface. ([source](https://albertlauncher.github.io/reference/topics.html))
- [Search-Based Application Launchers](https://awesome-repositories.com/f/user-interface-experience/search-based-application-launchers.md) — Opens files, applications, and actions by typing a search query into a keyboard-driven interface. ([source](https://cdn.jsdelivr.net/gh/albertlauncher/albert@main/README.md))
- [Usage-Based Scoring](https://awesome-repositories.com/f/user-interface-experience/search-result-ranking/relevance-scoring/usage-based-scoring.md) — Ranks search results by combining match quality with historical usage frequency to improve relevance over time.

### Business & Productivity Software

- [Plugin-Based Global Search](https://awesome-repositories.com/f/business-productivity-software/global-search-tools/plugin-based-global-search.md) — Contributes items to the launcher's global search results alongside other installed plugins. ([source](https://albertlauncher.github.io/extension/))

### Data & Databases

- [Python Plugin Integrations](https://awesome-repositories.com/f/data-databases/custom-python-integration/python-plugin-integrations.md) — Creates Python modules following a stub file interface to add custom search and action capabilities. ([source](https://albertlauncher.github.io/extension/))
- [Triggered Plugin Query Handlers](https://awesome-repositories.com/f/data-databases/manual-query-triggers/triggered-plugin-query-handlers.md) — Responds to user queries with a custom list of items and actions when the plugin is explicitly triggered. ([source](https://albertlauncher.github.io/extension/))
- [Plugin Query Handlers](https://awesome-repositories.com/f/data-databases/query-processing/plugin-query-handlers.md) — Processes user input through registered query handlers that return relevant results from various sources. ([source](https://albertlauncher.github.io/reference/topics.html))

### DevOps & Infrastructure

- [CMake-Based Plugin Loaders](https://awesome-repositories.com/f/devops-infrastructure/release-automation/plugin-extensibility/plugin-extensible-runtimes/native-plugin-loaders/cmake-based-plugin-loaders.md) — Creates shared library plugins that integrate with the launcher by implementing a plugin instance class and using CMake macros. ([source](https://albertlauncher.github.io/extension/cplusplus/))

### Operating Systems & Systems Programming

- [File Search by Attribute](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/file-system-management/file-system-utilities/file-metadata-inspection/metadata-preservation-engines/metadata-extraction/file-system-attributes/alternate-file-selection-by-system-attributes/file-search-by-attribute.md) — Finds files on the system by matching a typed query against file names and paths. ([source](https://albertlauncher.github.io/))

### Web Development

- [Query Fallback Chains](https://awesome-repositories.com/f/web-development/error-handling/fallback-handlers/query-fallback-chains.md) — Implements a fallback handler chain that displays alternative results when primary handlers find no matches.
- [Trigger-Based Input Routings](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/web-infrastructure-servers/http-frameworks/http-route-handlers/event-trigger-routing/trigger-based-input-routings.md) — Routes input starting with a trigger exclusively to a specific handler that can set hints and add items asynchronously. ([source](https://albertlauncher.github.io/basics/))

### Part of an Awesome List

- [Desktop Launchers](https://awesome-repositories.com/f/awesome-lists/productivity/desktop-launchers.md) — Keyboard-based launcher for the Linux desktop.
