Look - Keyboard-First macOS Launcher#

Look Github Repository

Look is a keyboard-first launcher for macOS focused on fast local actions. It provides instant access to apps, files, folders, and system settings without leaving the keyboard.

Platform notice (April 2026): The current stable release is macOS-first. A Windows version is now actively in development.

Look

Why Look?#

If you're tired of slow launchers or expensive tools like Raycast, Look offers a free, lightweight alternative that stays out of your way. It's designed for developers and power users who want quick access to everything on their Mac without leaving the keyboard.

Core Concepts#

  • Local-first indexing: All search indexing happens locally on your machine
  • Swift UI shell + Rust engine: Modern macOS UI powered by efficient Rust search
  • Usage-aware ranking: Results improve over time based on your usage patterns
  • Customizable themes: Multiple built-in themes with full customization options

Key Features#

  • Fast Local Search: Instantly search apps, files, folders, and system settings
  • Query Prefixes: Use prefixes like a", f", d" to narrow search scope
  • Clipboard History: Access recent clipboard items with c"
  • Translation: Quick translation with t" and dictionary lookup with tw"
  • Command Mode: Built-in calculator, shell commands, force quit, and system info
  • Customizable Themes: Multiple built-in themes including Catppuccin, Tokyo Night, and more
  • Privacy-First: No external services required for core features

System Requirements#

  • macOS 15.0+
  • Keyboard shortcut: Cmd+Space (conflicts with Spotlight by default)

Installation#

Requirements#

  • macOS 15.0+

Windows build status: in active development (not publicly released yet).

bash
brew tap kunkka19xx/tap
brew install --cask look

Update#

bash
brew upgrade --cask kunkka19xx/tap/look

Manual Download#

Download the latest release from GitHub Releases.

Uninstall#

bash
brew uninstall --cask look

Or manually remove:

bash
rm -rf ~/Library/Application Support/Look
rm -f ~/.look.config

First Launch#

Release builds are Developer ID signed and notarized, so normal first launch should open without Gatekeeper bypass.

If Cmd+Space is still opening Spotlight:

  1. Open System SettingsKeyboardKeyboard Shortcuts...
  2. Go to Spotlight section
  3. Disable "Show Spotlight search" or rebind it to another shortcut
Spotlight

Getting Started#

Basic Usage#

  1. Open Look: Press Cmd+Space (or your configured shortcut)
  2. Type to Search: Start typing to search apps, files, folders, or settings
  3. Navigate: Use Tab/Shift+Tab or arrow keys to move between results
  4. Open: Press Enter to open the selected item

Query Prefixes#

Use these prefixes to narrow your search scope:

PrefixModeExample
a"Apps onlya"term
f"Files onlyf"term
d"Folders onlyd"term
r"Regex search (case-insensitive)r"pattern
c"Clipboard historyc"term
t"Quick translation panelt"hello
tw"Dictionary lookup paneltw"word

Apps only search example#

a

Directories only search example#

d

Path-like queries (e.g., git/project/readme) are also supported and bias toward path matches.

Query Aliases#

Define aliases in ~/.look.config to map search terms to related apps:

ini
alias_note=Notion|Obsidian|Notes|Apple Notes|Bear|Logseq
alias_code=Visual Studio Code|VSCode|Cursor|Windsurf|IntelliJ IDEA|PyCharm|WebStorm|Neovim|Xcode|Zed
  • Aliases apply to app + System Settings search only
  • Aliases boost matching apps but don't create synthetic results
  • Keep lists short (5-10 targets) for best results

Typical Workflow#

  1. Press Cmd+Space to open launcher
  2. Type to search apps/files/folders/settings
  3. Use Tab/Shift+Tab or arrow keys to navigate
  4. Press Enter to open

Keyboard Shortcuts#

Global Shortcuts#

ShortcutAction
Cmd+SpaceToggle launcher (default, configurable)
Cmd+Shift+,Open/close settings panel
Cmd+Shift+;Reload configuration

Navigation#

ShortcutAction
TabNext result
Shift+TabPrevious result
/ Move selection up/down
EnterOpen selected result
EscapeGo back / close (context dependent)
Shift+EscapeHide launcher (alternative)

Actions#

ShortcutAction
Cmd+HToggle help/shortcuts screen
Cmd+EnterWeb search current query (Google)
Cmd+FReveal selected item in Finder
Cmd+CCopy selected file/folder path
Cmd+/Enter command mode

Settings Panel Zoom#

ShortcutAction
Cmd+-Zoom out (temporary)
Cmd+=Zoom in (temporary)
Cmd+0Reset zoom

Query Prefixes#

PrefixMode
a"Apps only
f"Files only
d"Folders only
r"Regex search
c"Clipboard history
t"Translation
tw"Dictionary lookup

Features#

Clipboard History (`c"`)#

Access recently copied text items:

  • Type c" to enter clipboard mode
  • Browse recent text clips
  • Press Enter to copy an item back to clipboard

Note: Clipboard history is stored in-memory only and cleared when the app restarts.

Clipboard histories search example#

c

Translation (`t"` / `tw"`)#

Quick translation without leaving the launcher:

  • t"hello → Translate "hello" to Vietnamese/English/Japanese
  • tw"word → Dictionary lookup with definitions and examples

Translate sentences, words via web#

t

Search words by MacOS's built-in LookUp#

t

Translation requires network connectivity.

Command Mode (`Cmd+/`)#

Built-in quick commands:

CommandDescription
calcCalculator (e.g., calc 2+2)
shellExecute shell commands
killForce quit applications
sysSystem information
command

Notes:

  • shell input containing sudo shows an orange warning cue
  • kill flow requires explicit confirmation

Background Image#

Add a custom background image:

  1. Place image in ~/look_bg.png
  2. Adjust opacity and blur in settings
  3. Choose layout mode: fill, fit, tile, or stretch

Lazy Indexing#

When enabled (default), the app only reindexes when:

  • File/app changes are detected
  • Manual reload is triggered (Cmd+Shift+;)
  • App restarts

Disable for immediate indexing on every launch (slower but fresher results).

Settings Panel#

Open with Cmd+Shift+,. Contains three tabs:

Appearance#

  • Theme: 7 built-in presets (Catppuccin, Tokyo Night, Rose Pine, Gruvbox, Dracula, Kanagawa, Custom)
  • Tint Color: accent color (RGB + opacity)
  • Blur: blur material and opacity
  • Font: name and size
  • Font Color: text color (RGB + opacity)
  • Border: thickness and color

Advanced#

  • Background image (path, layout mode, opacity, blur)
  • Indexing settings (File Scan Depth: 1-12, File Scan Limit: 500-50000)
  • Backend log level
  • Launch at login
  • Config reset: Create Fresh Config button with confirmation popup

Shortcuts#

  • In-app keyboard shortcut documentation
  • Toggle help screen with Cmd+H

Configuration#

Look uses a configuration file at ~/.look.config. Changes take effect immediately after saving, or you can press Cmd+Shift+; to reload.

Configuration File Location#

  • Default: ~/.look.config
  • Custom: Set LOOK_CONFIG_PATH environment variable
  • Reload: Cmd+Shift+;
  • Reset: Settings → Advanced → "Create Fresh Config"

Format#

  • One key=value per line
  • # starts a comment
  • Unknown keys ignored
  • Invalid values fall back to defaults

Backend Settings#

App Scanning#

ini
app_scan_roots=/Applications,/System/Applications,/System/Applications/Utilities,/System/Library/CoreServices/Applications
app_scan_depth=3
app_exclude_paths=
app_exclude_names=

File Scanning#

ini
file_scan_roots=Desktop,Documents,Downloads
file_scan_depth=4
file_scan_limit=4000
file_exclude_paths=

Other Backend Options#

ini
lazy_indexing_enabled=true
skip_dir_names=node_modules,target,build,dist,library,applications
backend_log_level=info
launch_at_login=false

Backend Keys Reference#

KeyDescriptionDefault
app_scan_rootsDirectories to scan for apps(see above)
app_scan_depthMax depth for app scanning3
file_scan_rootsDirectories to scan for filesDesktop,Documents,Downloads
file_scan_depthMax depth for file scanning (1-12)4
file_scan_limitMax files to index (500-50000)4000
lazy_indexing_enabledEnable lazy indexingtrue
skip_dir_namesDirectories to skip(see above)
backend_log_levelLog verbosityinfo
launch_at_loginStart at loginfalse

UI Theme Settings#

Theme Preset#

ini
ui_theme=catppuccin
Theme

Available: catppuccin, tokyoNight, rosePine, gruvbox, dracula, kanagawa, custom

Appearance#

ini
ui_tint_red=0.08
ui_tint_green=0.10
ui_tint_blue=0.12
ui_tint_opacity=0.55
ui_blur_material=hudWindow
ui_blur_opacity=0.95
ui_font_name=SF Pro Text
ui_font_size=14
ui_font_red=0.96
ui_font_green=0.96
ui_font_blue=0.98
ui_font_opacity=0.96
ui_border_thickness=1.0
ui_border_red=1.0
ui_border_green=1.0
ui_border_blue=1.0
ui_border_opacity=0.12

Background Image#

ini
ui_background_image=~/look_bg.png
ui_background_image_mode=fill
ui_background_image_opacity=0.5
ui_background_image_blur=10
KeyOptions
ui_background_image_modefill, fit, tile, stretch

Settings Panel#

ini
settings_blur_multiplier=0.8

Search Aliases#

Define aliases to map search terms to related apps:

ini
alias_note=Notion|Obsidian|Notes|Apple Notes|Bear|Logseq
alias_code=Visual Studio Code|VSCode|Cursor|Windsurf|IntelliJ IDEA|PyCharm|WebStorm|Neovim|Xcode|Zed
alias_term=Terminal|iTerm|iTerm2|Ghostty|WezTerm|Alacritty|Kitty|Warp
alias_chat=Slack|Discord|Telegram|Messages
alias_music=Spotify|Apple Music|Music
alias_brow=Safari|Arc|Google Chrome|Chrome|Firefox|Brave

Alias behavior:

  • Aliases apply to app + System Settings search only
  • Aliases boost matching apps but don't create synthetic results
  • If an aliased app is not installed, no error is shown
  • Keep lists short (5-10 targets) for best results

Troubleshooting#

Hotkey Doesn't Open Launcher#

  1. Check Spotlight shortcut conflict:
    • System SettingsKeyboardKeyboard Shortcuts...Spotlight
    • Disable or rebind "Show Spotlight search"
  2. Relaunch Look and try again
  3. Check if app is running:
bash
ps aux | grep Look

Results Seem Stale or Incomplete#

  1. Reload configuration: Cmd+Shift+;
  2. Check scan settings in ~/.look.config:
    • file_scan_roots
    • file_scan_depth (range: 1-12)
    • file_scan_limit (range: 500-50000)
  3. Verify exclude rules aren't too broad
  4. Keep lazy_indexing_enabled=true and use Cmd+Shift+; to force refresh

Translation Returns Warnings/No Result#

  • Confirm network connectivity
  • Check that translation service is accessible
  1. Check app_scan_roots includes the app's location
  2. Verify app_exclude_names doesn't exclude it
  3. Reload config: Cmd+Shift+;

First Launch Issues#

Current releases are signed and notarized. If you still encounter Gatekeeper issues:

  1. Confirm you installed a recent release
  2. Check System Settings → Privacy & Security for any blocks
  3. Legacy workaround (older builds only):
    • Right-click app → Open → confirm
    • Or use Privacy & SecurityOpen Anyway

Need to Inspect Local DB#

You can query the local SQLite database to inspect indexed candidates:

bash
sqlite3 "$HOME/Library/Application Support/Look/look.db" "SELECT id,title,use_count FROM candidates ORDER BY use_count DESC LIMIT 20;"

Reset Configuration#

To reset to default configuration:

  1. Open Settings (Cmd+Shift+,)
  2. Go to Advanced → "Create Fresh Config"
  3. Confirm the action (press Y)

This replaces your current ~/.look.config with the latest default template.

Development#

Building from Source#

Requirements#

  • macOS 15.0+
  • Xcode (for app shell)
  • Rust stable toolchain (for core engine)
  • Node.js (for web components, optional)

Repository Structure#

look/
├── apps/macos/LauncherApp/    # Swift UI shell
├── core/                       # Rust engine
│   ├── engine/                # Search & indexing
│   ├── matching/              # Fuzzy matching
│   ├── ranking/               # Result ranking
│   └── storage/               # SQLite storage
├── bridge/ffi/                # Swift-Rust FFI
└── docs/                      # Documentation

Build Commands#

bash
# Check Rust workspace
cd core
cargo check --workspace

# Check FFI bridge
cd bridge/ffi
cargo check

# Run local dev app
make app-run

Dev App Behavior#

make app-run:

  • Builds local app bundle with Xcode (Debug)
  • Stops any running Look process
  • Launches with LOOK_CONFIG_PATH=$HOME/.look.dev.config
  • Shows red TEST APP badge for visual distinction

Running Tests#

bash
# Rust tests
cd core
cargo test -p look-engine

# Swift tests (if available)
cd apps/macos/LauncherApp
swift test

Architecture Overview#

Look is built with a hybrid Swift/Rust architecture:

  • Swift UI Shell: Modern macOS native interface using SwiftUI
  • Rust Engine: Fast search and indexing via FFI
  • SQLite Storage: Local database for candidates and usage data

Core Components#

  1. Search Engine: Handles fuzzy matching and ranking
  2. Index Manager: Manages file/app indexing
  3. Storage Layer: SQLite for persistence
  4. FFI Bridge: Swift-Rust communication

Contributing#

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests and linting
  5. Submit a pull request

See CONTRIBUTING.md for details.