Conjure

A native macOS application launcher. Open it normally, search for an application, and press Return to open it or bring its existing instance forward. Global shortcuts are deliberately deferred.

Build and run

Requires macOS 14 or later and a Swift 6 toolchain (Xcode 16 or later).

make run

This builds a release executable, assembles an ad-hoc-signed application at .build/Conjure.app, gracefully quits any running instance of that exact development bundle, and launches a fresh process through Launch Services. This ensures rebuilt code is loaded; simply opening an already-running app in Finder does not reload its executable. Other copies of Conjure are left running. The local signature is for development, not notarized distribution.

make build   # Build the application without opening it.
make test    # Run the discovery and search behavior tests.

Open Package.swift in Xcode to edit the project. Use the bundled app above to run it with its application identity and metadata.

Controls

  • Type to filter applications; the first match is selected automatically.
  • Up/Down or Control-K/Control-J changes the selection without leaving search or modifying its text.
  • Return, keypad Enter, the Open Application button, or a double-click opens the selection.
  • Escape, Command-W, or switching focus away dismisses the launcher.
  • Reopen from Finder or the Dock to show it again with an empty search. Dismissal leaves the process running; Command-Q quits it.
  • Standard macOS text-editing shortcuts work in the search field.
  • Drag the panel background to move it.

Applications are discovered in /Applications, /System/Applications, /System/Library/CoreServices/Applications, and ~/Applications, including nested folders. Discovery runs off the UI thread and refreshes whenever the launcher is presented. Hidden items, invalid bundles, and helpers inside application packages are excluded; symlinked applications are deduplicated by their canonical paths.

Search is case- and accent-insensitive. Ranking is exact name, prefix, substring, then ordered-subsequence fuzzy matches. Fuzzy matches favor smaller gaps and earlier starts. Ties and empty searches are alphabetical. Hover over a result to see its path. Launch failures appear in a native alert without dismissing the launcher.

Native UI

The launcher keeps its Raycast-inspired 750 × 474-point, titlebar-free rounded panel, large borderless search field, compact icon rows, right-aligned application labels, and bottom-right launch pill. Its Sunset palette uses a dark brown background, soft amber and rust glows, warm cream text, and orange accents on the caret, selection, and action outline.

The brown tint is 35% opaque over an active, behind-window NSVisualEffectView using the native HUD material. This exposes macOS's blurred backdrop while retaining the warm palette and glows; the system material supplies an opaque fallback when Reduce Transparency is enabled. Both the panel and launch pill use native rounded alpha masks alongside layer clipping, keeping material inside its rounded outline and making the window shadow follow the same shape.

AppKit still provides text editing, table navigation, scrolling, application icons, controls, menus, fonts, and visual-effect materials. The background uses cached native radial gradients that fade to transparent: static soft blobs, without animations, timers, image assets, blur filters, or third-party UI dependencies. Decorative drawing does not intercept clicks. Increased-contrast settings strengthen the selection outline, and text colors are tuned for readability across the glows and selection.

  • Sources/Conjure: application lifecycle, native window, and application launching.
  • Sources/ConjureKit: filesystem discovery and search ranking.
  • Tests/ConjureKitTests: deterministic discovery and ranking checks.

The launcher uses Apple's visual-effect materials, table row selection drawing, application launching, and reopen lifecycle.

S
Description
No description provided
Readme 3.1 MiB
Languages
Swift 99.9%
Makefile 0.1%