Build & run
March 13, 2026 · View on GitHub
Findr
A keyboard-driven file manager for macOS.
Native AppKit. No Electron. No custom chrome.
Why
Finder is fine. But if you live in the terminal and want a file manager that keeps up — one that you can drive entirely from the keyboard, search instantly, and drop into a shell without switching apps — Findr is that.
Features
- Keyboard-first — Vim keys (
h/j/k/l), arrow keys, all theCmd+shortcuts you expect - Tabs — Native macOS window tabs (
Cmd+T/Cmd+W) - Search — Fuzzy local filter + Spotlight deep search, live as you type (
Cmd+F) - Embedded terminal — Powered by libghostty. Opens in the current directory (
Cmd+.) - Sidebar — Favorites, locations, mounted volumes
- Quick Look — Press
Spaceon any file - File watching — Directory contents update live
- Stock AppKit — Default system appearance, respects your accent color and dark mode
Keyboard Shortcuts
| Action | Shortcut |
|---|---|
| Navigate up/down | j / k or ↑ / ↓ |
| Enter directory | l or → |
| Go up | h or ← or Backspace |
| Open file/app | Double-click or l on file |
| Quick Look | Space |
| Rename | Enter |
| Go to top / bottom | g / G |
| Search | Cmd+F |
| Go to folder | Cmd+Shift+G |
| New tab | Cmd+T |
| Close tab | Cmd+W |
| Toggle terminal | Cmd+. |
| Toggle sidebar | Ctrl+Cmd+S |
| Toggle hidden files | Cmd+Shift+. |
| New folder | Cmd+Shift+N |
| Move to Trash | Cmd+Delete |
| Back / Forward | Cmd+[ / Cmd+] |
| Parent folder | Cmd+↑ |
Requirements
- macOS 13 Ventura or later
- Swift 5.9+
- Zig 0.15.2 (to build libghostty)
- Ghostty source (for the terminal — optional)
Build
# Clone
git clone https://github.com/FujiwaraChoki/findr.git
cd findr
# Build libghostty (required for embedded terminal)
git clone --depth 1 https://github.com/ghostty-org/ghostty.git /tmp/ghostty-build
cd /tmp/ghostty-build
zig build -Demit-xcframework -Dxcframework-target=native -Doptimize=ReleaseFast
cp -R macos/GhosttyKit.xcframework /path/to/findr/
cd /path/to/findr
# Build & run
swift build
.build/debug/Findr
Note: If you skip the libghostty build step, the project won't compile. The terminal is a core dependency.
Project Structure
Sources/Findr/
├── main.swift # Entry point
├── AppDelegate.swift # Menu bar, window lifecycle
├── Controllers/
│ ├── MainWindowController.swift # Window, toolbar, split views
│ ├── FileBrowserViewController.swift # Table view, keyboard nav, Quick Look
│ └── SidebarViewController.swift # Favorites & locations
├── Models/
│ └── FileItem.swift # File system model
├── Search/
│ └── SearchEngine.swift # Fuzzy filter + Spotlight (NSMetadataQuery)
├── Terminal/
│ ├── GhosttyRuntime.swift # libghostty app singleton & callbacks
│ ├── TerminalSurfaceView.swift # NSView hosting Metal terminal surface
│ └── TerminalViewController.swift # Terminal panel controller
└── Views/
├── PathBarControl.swift # Breadcrumb path bar
└── StatusBarView.swift # Item count, selection, disk space
License
MIT
Built with AppKit and libghostty.