A keyboard-first, local-first launcher for macOS, Windows, and Linux. Open apps, files, folders, clipboard history, and quick commands without leaving the keyboard.
π Docs Β· π¬ Demo video Β· π User guide
look1.mov
- Find and open anything β apps, files, folders indexed locally. Type, Enter, done.
- Calc inline β type
2^10,4!,200*15%,sqrt(2),2*pi. No command mode needed. - Kill a process by port β
Cmd+/thenkill :3000. Confirms before killing. - Search clipboard history β
c"meetingfinds the snippet you copied an hour ago. - Translate or look up a word β
t"hellofor quick translation,tw"wordfor a definition panel. - Regex, path, and kind-scoped search β
r"^Visual.*,git/project/readme,a"safari,f"note,d"documents. - Switch running apps from the launcher β an icon strip on the right half of the search bar.
Cmd+1..Cmd+9on macOS /Alt+1..Alt+9on Linux+Windows jumps to a running app. Toggle on/off inSettings > Appearance > Running Apps.
All local. No account. No telemetry. No plugin marketplace to manage.
- Fast β typical search under 1 ms on a 2000-item index; empty-query browse under 30 Β΅s.
- Small β single native app per platform. No Electron, no background daemons.
- Local-first β candidates indexed in a local SQLite file; the only network calls are explicit (
t",tw",Cmd+Enterweb search). - Zero-config by default β presets cover common apps (
alias_note,alias_code,alias_term,alias_chat,alias_music,alias_brow). Configure more via~/.look.configwhen you want to. - Keyboard-first β every action has a key; mouse never required.
If you want a launcher that stays out of your way and does exactly what you asked, that's the pitch.
| look | Spotlight | Raycast | Alfred | ulauncher | rofi | |
|---|---|---|---|---|---|---|
| Platform | macOS Β· Windows Β· Linux | macOS only | macOS Β· Win (beta) | macOS only | Linux only | Linux only |
| Open source | β GPLv3 | β | β | β | β | β |
| Local-first | β | β | β cloud sync | β | β | β |
| No Electron | β | β | β | β | β | β |
| No plugin store | β | β | β | β Powerpack | β | β |
If this is useful, β star the repo β it's the single biggest signal that helps the project keep shipping.
brew tap kunkka19xx/tap
brew install --cask lookThen bind Cmd+Space to Look (disable Spotlight's shortcut in System Settings > Keyboard > Keyboard Shortcuts > Spotlight). Release builds are signed and notarized β no Gatekeeper bypass needed.
Released artifacts are x86_64 only. ARM builds aren't published; if you need one, please open an issue.
Arch Linux (AUR):
yay -S look-bin
# or
paru -S look-binOr without an AUR helper:
git clone https://aur.archlinux.org/look-bin.git
cd look-bin
makepkg -siUbuntu/Debian:
curl -fsSL https://raw.githubusercontent.com/kunkka19xx/look/main/scripts/linux/install-look.sh | bashOr download the .deb manually from Releases and run sudo dpkg -i Look_*.deb.
Any distro (AppImage):
chmod +x Look_*.AppImage
./Look_*.AppImageAfter installing, launch with lookapp from a terminal, or search "Look" in your app launcher. Press Alt+Space to toggle the window at any time. Look autostarts on login by default (on full DEs like GNOME/KDE).
Uninstall:
# Arch
yay -R look-bin
# Ubuntu/Debian
sudo dpkg -r look
# AppImage β just delete the file
rm Look_*.AppImageNixOS (flake):
# Run directly
nix run 'github:kunkka19xx/look?dir=apps/linows'
# Install to profile
nix profile install 'github:kunkka19xx/look?dir=apps/linows'Declarative (NixOS):
# flake.nix β add input and cachix config
{
nixConfig = {
extra-substituters = [ "https://look.cachix.org" ];
extra-trusted-public-keys = [ "look.cachix.org-1:8elPCeSVBzlDZXqIRKBK9GyLIK/Hoe1xiWZF0ir7uX4=" ];
};
inputs.look.url = "github:kunkka19xx/look?dir=apps/linows";
# ... your other inputs
}
# configuration.nix β add package
{ pkgs, inputs, ... }:
{
environment.systemPackages = [
inputs.look.packages.${pkgs.system}.default
];
}Pre-built binaries are served via Cachix. On first rebuild, nix will ask to trust the cache β say yes. No source compilation needed.
Update to latest release:
nix flake update look --flake /path/to/your/flake
sudo nixos-rebuild switch --flake /path/to/your/flake#hostnameNote: On GNOME desktops, log out and log back in after the first install so the GNOME Shell extension (used for window focusing and hotkey on Wayland) can load.
Window manager users (i3, sway, Hyprland, etc.): Autostart via .desktop files only works on full DEs (GNOME, KDE). On standalone WMs, add Look to your config manually. The Alt+Space hotkey and window rules (float, no border) are registered automatically at runtime β you only need the autostart line:
# i3: ~/.config/i3/config
exec --no-startup-id lookapp
# (Alt+Space works via X11 global shortcut plugin)
# sway: ~/.config/sway/config
exec lookapp
# (Alt+Space, float, and border rules are injected automatically via swaymsg)
# Hyprland: ~/.config/hypr/hyprland.conf
exec-once = lookapp
# (Alt+Space, float, and border rules are injected automatically via hyprctl)Hyprland 0.55+ only. Focus-existing-window uses the
wlr-foreign-toplevel-managementprotocol. Older Hyprland versions relied on the legacyhyprctl dispatch focuswindowsyntax which was deprecated in 0.55; selecting an already-running app on <0.55 may launch a second instance instead of focusing. Upgrade to 0.55+ for correct behavior.
To build from source, see apps/linows/BUILDING.md.
Released artifacts are x86_64 only. Windows on ARM (Surface Pro X / Snapdragon X) can run the x64 build under emulation; native ARM builds aren't published β open an issue if you need one.
One PowerShell line, no admin required:
iex "& { $(irm https://raw.githubusercontent.com/kunkka19xx/look/main/scripts/windows/install-look.ps1) }"The script resolves the latest release, downloads the NSIS installer, verifies its SHA256 against the published checksums, and runs it silently into %LOCALAPPDATA%\Programs\Look. SmartScreen will warn on the first download while reputation builds β click "More info β Run anyway" if Windows blocks the script itself.
Uninstall:
iex "& { $(irm https://raw.githubusercontent.com/kunkka19xx/look/main/scripts/windows/install-look.ps1) } -Uninstall"The launcher's global hotkey is Alt+Space (not user-configurable yet β if it conflicts with another app you use, remap that one). For a manual install: download Look_<version>_x64-setup.exe from Releases, verify the SHA256 against the published Look-<version>-windows-checksums.txt, then run. Uninstall via Settings β Apps or %LOCALAPPDATA%\Programs\Look\uninstall.exe. To wipe user data: Remove-Item -Recurse "$env:LOCALAPPDATA\look".
Other install options (curl, pin version, update/uninstall)
macOS β Homebrew update / uninstall:
# update
brew upgrade --cask kunkka19xx/tap/look
# uninstall
brew uninstall --cask lookmacOS β curl installer:
curl -fsSL https://raw.githubusercontent.com/kunkka19xx/look/main/scripts/install-look.sh | bashPin a specific version or repo fork:
curl -fsSL https://raw.githubusercontent.com/kunkka19xx/look/main/scripts/install-look.sh | bash -s -- --version <version> --repo kunkka19xx/lookDirect URL:
curl -fsSL https://raw.githubusercontent.com/kunkka19xx/look/main/scripts/install-look.sh | bash -s -- --url "https://github.com/kunkka19xx/look/releases/download/v<version>/Look-<version>-macOS.zip"CLI naming note: macOS ships /usr/bin/look, so terminal command examples use lookapp.
If Look is fully quit and Spotlight is still unbound, relaunch from Launchpad, or via:
open "/Applications/Look.app"| Action | macOS | Windows | Linux |
|---|---|---|---|
| Toggle launcher | Cmd+Space |
Alt+Space |
Alt+Space |
| Open / run | Enter |
Enter |
Enter |
| Web search | Cmd+Enter |
Ctrl+Enter |
Ctrl+Enter |
| Reveal in file manager | Cmd+F (Finder) |
Ctrl+F (Explorer) |
Ctrl+F (Files) |
| Move to Trash (or empty the Trash folder) | Cmd+D |
β | β |
Command mode (calc, shell, kill, sys) |
Cmd+/ |
Ctrl+/ |
Ctrl+/ |
| Settings | Cmd+Shift+, |
Ctrl+Shift+, |
Ctrl+Shift+, |
| Back / hide | Escape |
Escape |
Escape |
| Switch to running app N (home screen) | Cmd+1..Cmd+9 |
Alt+1..Alt+9 |
Alt+1..Alt+9 |
(Throughout the rest of the docs, Cmd+X on macOS maps to Ctrl+X on Windows and Linux; the launcher-toggle hotkey uses Alt+Space on Windows/Linux instead of Cmd+Space because Win+Space / Super+Space are typically reserved by the OS or desktop environment.)
Full reference: docs/user-guide.md.
Built-in: Catppuccin, Tokyo Night, Rose Pine, Gruvbox, Dracula, Kanagawa, plus Custom. Switch in Settings > Appearance.
- π Docs site β hosted, searchable user guide and reference
- User guide (in-repo) β full feature reference, shortcuts, configuration, permissions, troubleshooting
- Architecture β how the Swift app + Rust core fit together
- Features β what's shipped, what's planned
- Contributing β how to contribute
- Development β building locally, repo layout, release process
In scope:
- apps, files, folders, clipboard, command mode, translation, regex/path search
- local-first behavior, zero telemetry
- near-term plugin/extension exploration
Out of scope for v1:
- online-first behavior
- semantic/vector search
- full content indexing (names and metadata only)
- macOS β shipped and stable (SwiftUI, native). This is the design source of truth.
- Windows + Linux β a new shared Tauri v2 app (
apps/linows/) is under active development. It targets both platforms with a single codebase (Rust backend, vanilla HTML/CSS/JS frontend). Current status:- Core search, preview, multi-pick, clipboard history, translation β done
- Command mode (calc, pomo, kill, shell, sys) β done
- Settings screen (appearance, themes, blur, font autocomplete) β done
- Platform-aware blur (Mica/Acrylic on Windows, CSS backdrop-filter on Linux)
- Dynamic window scaling based on monitor resolution
- 6 built-in themes + Custom
- Windows (WinUI3) β the current
apps/windows/WinUI3/C# app isarchived.
GPLv3 β see LICENSE.
Thanks to everyone who has contributed β see the contributor graph.