Skip to content
ViaFirstPublic

About

Fast file search inside the folder open in Finder: Spotlight-style window on a shortcut, fuzzy names, text inside files, live updates. macOS menu bar app.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

Repository files navigation

Rummage icon

Rummage

Fast file search inside the folder that is open in Finder. Press a shortcut in Finder and a Spotlight-style window searches that folder and all its subfolders as you type: by name (fuzzy) or by text inside files.

Finder's own search defaults to "This Mac", is slow and ranks results oddly. Rummage keeps the open folder listed in memory (~120k files in about a second), searches it in a few milliseconds, and keeps results live as files change.

  • Results while you type; case, accents and ё/е ignored; fuzzy: invctrl → invoice-controller.php
  • Extension field with suggestions from the open folder: php, pdf, docx
  • Text inside files (grep with the matching line + Spotlight for PDF/DOCX); ↵ opens VS Code / Cursor at that line
  • ⌘↵ selects the file in the same Finder window; Quick Look, copy path, open in Terminal, drag & drop
  • Live updates via FSEvents: created, renamed, moved and deleted files show up without rescanning
  • Menu bar app, no Dock icon; English, Russian and Hebrew (right-to-left) UI, following the macOS language
  • No dependencies, about 1,800 lines of Swift, universal binary (Apple Silicon + Intel), macOS 14+

Install

  1. Download Rummage-x.y.z.zip from Releases, unzip, move Rummage.app to Applications.
  2. The app is not notarized by Apple, so the first launch is blocked. Either open System Settings → Privacy & Security and click Open Anyway next to Rummage, or run:
    xattr -dr com.apple.quarantine /Applications/Rummage.app
  3. A magnifier icon appears in the menu bar. In Finder press ⌥⌘F. When macOS asks "Rummage wants to control Finder", click Allow: that is how it learns which folder is open (System Settings → Privacy & Security → Automation).

Build from source

Needs only the Xcode Command Line Tools (xcode-select --install).

./build.sh install   # build, copy to ~/Applications, launch
./build.sh dist      # build and zip into dist/ for sharing

Notarized releases (maintainers)

./build.sh release signs with a Developer ID certificate (hardened runtime, Resources/Rummage.entitlements allows the Apple Events to Finder), sends the zip to Apple's notary service, staples the ticket and re-zips, so the app opens on any Mac without a warning. One-time setup:

  1. Apple Developer Program membership.
  2. A Developer ID Application certificate in the login keychain (developer.apple.com → Certificates → +, with a CSR from Keychain Access → Certificate Assistant).
  3. An app-specific password (account.apple.com → Sign-In and Security), then xcrun notarytool store-credentials viafirst-notary --apple-id <apple id> --team-id <TEAM ID> (prompts for it).

Usage

  • By default the shortcut exists only while Finder is in front, so other apps keep ⌥⌘F. Change it in the menu (presets include replacing Finder's ⌘F).
  • An empty query lists recently modified files.
  • Extension field (the narrow box next to the search field, Tab to get there): pdf or php, js. It suggests the extensions that exist in the open folder, most common first (↑ ↓ ↵). Works in both modes and is cleared every time the window opens.
  • Filters in the search field too: ext:pdf,docx or *.pdf, kind:dir / kind:file. A word with / matches the path: themes/ header.
  • ⌘1 Names, ⌘2 Contents.
Keys Action
↑ ↓, PgUp/PgDn move selection
↵ or ⌘↓ open the file / open the folder in the Finder window; a Contents match opens in the code editor at the found line
⌥↵ open in the code editor (folders open as a project)
⌘↵ show and select in Finder (same window)
⌘Y Quick Look
⇧⌘C copy path
⇧⌘T open in Terminal
Tab search field ↔ extension field
⌘1 / ⌘2 Names / Contents
⌘↑ search the parent folder
⌘→ search inside the selected folder
Esc close

Right-click a result for the same actions; drag results into other apps.

Menu bar menu: shortcut, code editor (detected: VS Code, VS Code Insiders, Cursor, Antigravity, Windsurf), language, "only in Finder", hidden files, skipping node_modules, .git and similar, launch at login.

How it works

Swift + AppKit/SwiftUI, built with SwiftPM.

File Role
HotKey.swift global shortcut via Carbon (no Accessibility permission needed)
FinderBridge.swift AppleScript: folder of the front Finder window, reveal/select a file
FileIndex.swift recursive in-memory listing, cache for 4 folders; apply() patches it from file events
FolderWatcher.swift FSEvents on the current folder, kept running while the window is hidden
ExtFilter.swift extension field: parsing, completion, suggestions from the index
Matcher.swift ranking: exact name > prefix > word boundary > substring > fuzzy > path match
ContentSearch.swift text search: grep + mdfind -onlyin
SearchModel.swift, SearchView.swift, SearchPanel.swift state, SwiftUI list, non-activating floating panel with Quick Look
L10n.swift L("English") → Resources/Localization/*.lproj, language menu, code editor URL schemes

Self-tests (after ./build.sh; dist/release refuse to package when they fail):

B=build/Rummage.app/Contents/MacOS/Rummage
$B --self-test                          # everything: ranking, filters, live updates, contents search, edit keys
$B --render-test out.png -AppleLanguages "(he)"  # draws the search window, any language
$B --cli ~/Projects "query"             # index + search a real folder, with timings

License

MIT, see LICENSE.

About

Fast file search inside the folder open in Finder: Spotlight-style window on a shortcut, fuzzy names, text inside files, live updates. macOS menu bar app.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages