{"id":45106588,"url":"https://github.com/mpalczew/occam","last_synced_at":"2026-02-19T22:02:11.674Z","repository":{"id":337246458,"uuid":"1152324806","full_name":"mpalczew/occam","owner":"mpalczew","description":"Minimalist macOS app launcher. 800 lines of Swift. Zero dependencies. Zero telemetry.","archived":false,"fork":false,"pushed_at":"2026-02-08T17:21:32.000Z","size":447,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-02-08T20:48:53.964Z","etag":null,"topics":["app-launcher","macos","privacy","productivity","spotlight-alternative","swift"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mpalczew.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-07T17:54:02.000Z","updated_at":"2026-02-08T17:21:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mpalczew/occam","commit_stats":null,"previous_names":["mpalczew/occam"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/mpalczew/occam","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpalczew%2Foccam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpalczew%2Foccam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpalczew%2Foccam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpalczew%2Foccam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mpalczew","download_url":"https://codeload.github.com/mpalczew/occam/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpalczew%2Foccam/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29634687,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T18:02:07.722Z","status":"ssl_error","status_checked_at":"2026-02-19T18:01:46.144Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app-launcher","macos","privacy","productivity","spotlight-alternative","swift"],"created_at":"2026-02-19T22:01:40.743Z","updated_at":"2026-02-19T22:02:11.658Z","avatar_url":"https://github.com/mpalczew.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Occam\n\n**The simplest way to launch apps on macOS.**\n\nOne shortcut. Instant results. No bloat.\n\n![Occam](assets/screenshot.png)\n\n[![Build](https://github.com/mpalczew/occam/actions/workflows/ci.yml/badge.svg)](https://github.com/mpalczew/occam/actions/workflows/ci.yml)\n[![macOS 13+](https://img.shields.io/badge/macOS-13%2B-blue)](#requirements)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n[![Latest Release](https://img.shields.io/github/v/release/mpalczew/occam)](https://github.com/mpalczew/occam/releases/latest)\n\n\u003c/div\u003e\n\n---\n\n## Why Occam?\n\n- **Fast** -- Scans ~200 apps in ~50ms. No background indexing, no persistent processes chewing CPU.\n- **Private** -- Zero network calls. Zero telemetry. Your data stays on your Mac.\n- **Tiny** -- ~800 lines of Swift. No frameworks, no dependencies, no Electron.\n- **Smart** -- Fuzzy matching with recency sorting. Your most-used apps surface first.\n\n## Install\n\n```bash\nbrew tap mpalczew/occam\nbrew install --cask occam\n```\n\n### Other options\n\n\u003cdetails\u003e\n\u003csummary\u003eDownload from GitHub Releases\u003c/summary\u003e\n\n1. Download the latest `Occam-x.x.x-universal.zip` from [Releases](https://github.com/mpalczew/occam/releases/latest)\n2. Unzip and drag **Occam.app** to your Applications folder\n3. Launch Occam\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eBuild from source\u003c/summary\u003e\n\n```bash\ngit clone https://github.com/mpalczew/occam.git\ncd occam\nmake build\ncp -r .build/Occam.app /Applications/\n```\n\nRequires Xcode Command Line Tools (`xcode-select --install`).\n\n\u003c/details\u003e\n\n## Usage\n\nPress **Cmd+Space** to open Occam. Start typing to search.\n\n| Key | Action |\n|-----|--------|\n| Cmd+Space | Toggle search panel |\n| Type | Fuzzy search apps and settings |\n| Up/Down | Navigate results |\n| Enter | Launch selected |\n| Cmd+1-9 | Launch by position |\n| Esc | Dismiss |\n| Cmd+Q | Quit Occam |\n\nOn first launch, Occam will offer to disable Spotlight's Cmd+Space shortcut (or you can switch to Option+Space).\n\n## What it searches\n\n- All `.app` bundles under `/Applications` and `/System/Applications` (recursive)\n- 25 System Settings panes (Wi-Fi, Bluetooth, Display, Sound, Keyboard, and more)\n- Built-in commands: \"Quit Occam\", \"Restart Occam\"\n\nResults are sorted by most recently launched when the search field is empty.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eArchitecture \u0026 Technical Details\u003c/strong\u003e\u003c/summary\u003e\n\n### How it works\n\n- **No dock icon** -- Runs as a background agent (`LSUIElement = true`)\n- **Borderless floating panel** -- `NSPanel` with vibrancy blur, appears near the top of screen\n- **Fuzzy matching** -- Scores consecutive character runs, word-start matches, and prefix matches\n- **Recency sorting** -- Launch history stored in UserDefaults\n- **Global hotkey** -- Carbon `RegisterEventHotKey` (the only reliable API for global shortcuts on macOS)\n- **Login item** -- Offered on first launch via `SMAppService`\n\nNo `mdfind`, no `NSMetadataQuery`, no background indexing. Fresh `FileManager` scan each time you open the panel (~50ms for ~200 apps).\n\n### Project structure\n\n```\nSources/Occam/\n  main.swift          # NSApplication entry point\n  AppDelegate.swift   # Panel management, hotkey registration, launch logic\n  SearchPanel.swift   # Borderless floating NSPanel\n  SearchView.swift    # SwiftUI search UI (text field + results list)\n  SearchState.swift   # Observable state, recency sorting, built-in commands\n  AppDiscovery.swift  # Recursive FileManager scan of /Applications\n  FuzzyMatcher.swift  # Subsequence scoring algorithm\n  SystemSettings.swift # System Settings pane URLs\n  HotkeyConfig.swift  # Cmd+Space / Option+Space config\n  RecentApps.swift    # Launch history in UserDefaults\n  LaunchItem.swift    # Data model\n```\n\nZero external dependencies. Hybrid AppKit + SwiftUI. ~800 lines total.\n\n\u003c/details\u003e\n\n## Uninstall\n\n1. Quit Occam (Cmd+Q or type \"quit\" in the search panel)\n2. Delete Occam.app from Applications\n3. Remove login item: System Settings \u003e General \u003e Login Items \u003e remove Occam\n\n## Requirements\n\n- macOS 13 (Ventura) or later\n- Apple Silicon or Intel Mac\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpalczew%2Foccam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmpalczew%2Foccam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpalczew%2Foccam/lists"}