$ show oliverschwendener/ueli
Ueli is a cross-platform keystroke launcher built with Electron, TypeScript, and React (Fluent UI). It provides a hotkey-triggered search window that aggregates search results from a modular extension system. Over 20 built-in extensions enable application and file searching, web search, calculator, color conversion, currency conversion, password generation, text processing, and more. The architecture follows a clean separation of concerns: the main process handles OS-specific operations (window management, tray icon, autostart, file icon extraction), a preload script enforces secure IPC via contextBridge, and the renderer provides a responsive React UI. Extensions implement a common contract and are loaded dynamically via a module registry. The codebase is well-tested (vitest), employs dependency injection, and includes localization in 7 languages. While the project is actively maintained and demonstrates solid engineering practices, some platform-specific components (e.g., Linux file searcher) are incomplete or stubbed, and the large extension surface introduces maintenance overhead.
The LLM identified 5 files worth highlighting for reuse:
A self-contained search filter function that wraps Fuse.js for fuzzy searching. It accepts a query and an array of search result items, configures Fuse.js with customizable options (threshold, keys), and returns scored results. The filter is isolated from the rest of the codebase (no internal imports beyond its own test) and can be extracted into any project requiring fuzzy search on structured data with a simple API.
An implementation of the EventEmitter contract backed by the tiny `mitt` library. It provides typed event emission and subscription, with a clean, testable interface. The class is fully self-contained (only imports the `mitt` type) and demonstrates a minimal, reusable pub-sub pattern that can be extracted for decoupled communication in any TypeScript project.
A standalone INI file parser that handles sections, key-value pairs, comments, and multiline values. It reads a string input and returns a structured object. The parser includes edge case handling (escaped characters, trimming) and has its own unit tests. It depends only on standard Node.js or string processing and can be reused in any project needing INI parsing without external libraries.
A lightweight XML parser that converts XML strings into a generic object structure. It uses a recursive descent approach, handles attributes, nested elements, and text content. The parser is self-contained and tested independently. It offers a clean contract and can be extracted for projects that need basic XML parsing without importing a heavy library.
A factory function that creates a standardized clipboard-copy action object. It takes a text string and returns a `SearchResultItemAction` with the appropriate type and handler reference. The function does not import any internal modules beyond its own type definitions, making it a reusable utility for any codebase that needs to generate clipboard actions for a search or command palette interface.