all new finder · 1.0

Finder, reforged.

Split panes, a built-in terminal, a command palette.
A fast, lightweight native file browser for macOS.

The signed .dmg is on the way — for now, install with Homebrew.

A featherweight native single binary · just 3.4 MB · zero telemetry · open source

Install with Homebrew.

Until the signed .dmg ships, install with Homebrew — auto-updates included.

brew tap rescenedev/anf brew trust rescenedev/anf brew install --cask anf

Update with brew upgrade --cask anf.

Not notarized yet — if Gatekeeper blocks the first launch, right-click → Open, or strip the quarantine flag:

xattr -dr com.apple.quarantine /Applications/anf.app

Optional — install fd and ripgrep for faster name/content search (falls back to Spotlight without them):

brew install fd ripgrep

Optional — full rich HWP/HWPX previews (alhangeul). anf extracts the body text on its own even without it:

brew install --cask postmelee/tap/alhangeul

Everything in one window.

The tools you need for working with files, brought together naturally.

Flexible split panes

Single · two panes · two rows · four panes. Drag the dividers to resize — window position, layout and view modes are remembered without any setup.

⌘K

Command palette

⌘K from anywhere. Instant name search under the focused folder via fd, content search via ripgrep — and jump straight to pins, recents and favorites.

❯_

Built-in terminal

A global drawer at the bottom of the window, running on a real PTY. Resize the font with ⌘±, connect to SSH hosts in one click.

iCloud, handled

Undownloaded placeholders get a cloud badge, and selecting one in the inspector downloads it automatically.

Inspector previews

QuickLook previews plus a readable text viewer. Adjust the text size with ⌘±.

Native sidebar

Favorites · pins · locations · SSH sections. Collapsible groups, automatic ~/.ssh/config parsing, live session indicators.

hwpx body text too

Extracts the body text of Korean hwpx as well as docx/pptx/xlsx/pdf — searchable from ⌘K and previewed in the inspector. No extra software.

ㄱㅊ

Initial-consonant search

Type just ㄱㅊ to jump to "(경찰청)…" folders — in ⌘K or right inside a folder. With NFC/NFD normalization and shortcuts that work under the Korean IME. Korean-first, done properly.

Workspaces

Save the current split layout and tabs under a name, then jump back to that whole working arrangement from the sidebar.

Tags & Get Info

Classify with colour tags (fully interoperable with Finder), and ⌘⌥I shows size, permissions, path and dates at a glance. Folder sizes compute in the background.

GUI SFTP

Browse SSH hosts like regular folders. No terminal, no sshfs, no macFUSE — remote directories right in the window.

Why it's fast.

Speed is a design decision, not an accident. All numbers measured.

BenchmarkResultNotes
Bulk-read a 26,549-entry folder23.8 msgetattrlistbulk — 46× faster than the old Foundation full-stat path (1,084ms)
Open that folder (read+sort+render)~0.1 sfirst visit
Revisit the same folder0 mscached listing paints first, changes reconcile behind it
Sort 26,549 Korean names98 mspacked-integer comparison — 5× over locale compare (480ms)
⌘K fuzzy search (300k-path pool)~40 msper keystroke — in-memory index with 초성 matching; scrolling, arrows and sort flips stay instant via row recycling / O(1) maps
Content-search sweep over 32 PDFs410 ms → 4 msextracted once per session, then cached per keystroke
Copy a 55,860-entry (622MB) folder6.8 sparallel APFS clones — faster than cp -Rc (8.4s), fully background with progress + instant cancel
Soak across 150,696 directories0 failuresa real home tree through the production read+sort path, all <55ms except the 26k outlier
App size3.4 MBone native binary — ~1/50th of an Electron file manager
Memory~110 MBwith a 26,549-entry session open; live heap ~30 MB, every cache byte-capped
Idle CPU~0 %the index refreshes only when needed

Apple M4 Pro · macOS 26 · local APFS — network volumes (SMB/NAS) are bound by the wire. Harnesses, baselines and repro steps are public in PERFORMANCE.md and TESTING.md.

Native, no Electron

Swift + AppKit talking straight to the system frameworks. No browser runtime — fast startup, light memory.

fd · ripgrep in the background

Names are indexed in the background with fd (filtered in memory), content searched with ripgrep — no disk crawl per keystroke, and the index checkpoints to disk so it's warm after a restart.

Built-in fuzzy matching

Fuzzy ranking implemented directly in Swift — no external fzf process. It runs off the main thread, so typing never stutters.

AppKit controllers, not SwiftUI

The command palette drives NSPanel + NSTableView directly. Keyboard focus and performance problems SwiftUI couldn't solve are handled natively.

Any folder, in a blink

Folder entry uses the native getattrlistbulk(2) bulk read — names, kinds, sizes and dates in a few syscalls, no per-item stat. Typical folders open in 0.01s; even 26,000 entries take ~0.1s.

Native NSTableView rendering

The file list is drawn by NSTableView, not SwiftUI. Only visible rows are recycled, so scrolling, sorting and arrow keys stay instant at tens of thousands of items.

Debounce · timeouts

Search debounces at 130ms to avoid wasted work, and content search (ripgrep) has a 3s timeout and skips huge files — it never hangs.

~0.1ms

Vibe-coded. Performance: not vibed

26,549-entry folder opens in ~0.1s · revisits 0ms · 26k Korean names sorted in 98ms · ~0% idle CPU. How it's verified: 124 unit/integration checks (keyboard selection, sorting, jamo matching, undo safety net), synthetic-event UI tests (divider drags and page keys through the real event path), a 150k-directory soak (every folder under a real home tree through the production read+sort path, zero failures), and benchmark baselines (folder entry, PDF body sweep — regressions fail before users feel them). All public in TESTING.md, run by CI on every push.

A terminal that never leaves the window.

A built-in terminal in a global bottom drawer — xterm.js rendering wired to a real PTY.

anf built-in terminal

⌘K — results as you type.

A pure-AppKit command palette. Hit ⌘K anywhere and results pour in the moment you start typing.

Palette — pins, recents, favorites
Pins · recents · favorites
Palette — directory scan
Typing — live directory scan
Palette — instant search
Results pour in — instant search
Palette — hwpx content search
hwpx body text, searched instantly
  • Empty state: pins → recent folders → favorites
  • Names search the focused folder's subtree instantly via fd (built-in fuzzy ranking)
  • Korean initial consonants match — ㄱㅊ → (경찰청)…, narrowing as you type
  • Content matches shown separately via ripgrep — including hwpx/docx body text
  • Folders navigate; files jump to their location and select

Hands on the keyboard.

Every frequent action has a shortcut.

⌘KCommand palette (search)
⌘1⌘2⌘3⌘4Pane layout — single · two panes · two rows · four
⌘[⌘]Cycle view mode (list · icons · columns …)
⌘⇧[⌘⇧]Toggle left sidebar · right inspector
Tab⇧TabSwitch panes
⌃Tab⌃⇧TabSwitch tabs within the pane
⌃`Toggle terminal
⌘+⌘−Font size (text preview · terminal)
⌘T⌘WNew tab · close tab (last tab closes the pane)
⌘⌥1–9Select tab
⌘↑⌘↓Enclosing folder · open
⌘←⌘→Folder history back · forward
⌘C⌘X⌘VCopy · cut · paste
SpaceQuick Look
⌘IOpen · close the inspector
⌘⇧DPin/unpin the current folder
⌘⌫Move to Trash

Search powered by fd + ripgrep.

fd finds names under the current folder instantly; ripgrep searches content. Fuzzy ranking is built in — see Install for setup.

fd

Blazing-fast filename search under the current folder.

ripgrep

Search file contents from the command palette.

alhangeul ↗

anf extracts HWP/HWPX body text by itself. alhangeul adds full rich QuickLook previews with formatting (optional).

Fuzzy ranking ships inside anf. Without fd/ripgrep it falls back to macOS Spotlight (mdfind), so search works with nothing installed. alhangeul is for Korean document previews.

Built on open source.

anf stands on these projects. Thank you.

xterm.jsMIT

Screen rendering for the built-in terminal. v5.3.0 bundled.

Apple AppKit · WebKit · QuickLookApple SDK

The system frameworks behind the windows, views and previews.

PTYHelperIn-house

A small C helper that forks/execs the pseudo-terminal.

Built to be trusted.

Lose a file and it's gone. So safety here isn't a feature — it's the foundation.

Reversible file operations

Move, rename, copy and Trash all undo with ⌘Z. Overwrite sends the existing file to the Trash (recoverable) instead of deleting it; name clashes ask first.

147

Guarded by tests

147 unit/integration checks + synthetic-event UI tests + a 150k-directory soak. CI runs on every push, and every bug report becomes a regression test keyed to its exact input.

Leak & crash audited

Windows opened and closed dozens of times under heap and leaks. Event monitors, observers and window lifetimes are all tracked so nothing leaks.

Never beachballs

Big reads, sorts, copies and searches all run in the background. A main-thread stall detector turns "feels janky" into numbers, and the beachball spots are closed before they happen.

The full methodology is in METHODOLOGY.md; the test scenarios in TESTING.md.

one more thing

Deleted files come back.

Protect a folder with Vault. Delete something by mistake — empty the Trash, even — and travel back to recover it intact.

1

Protect with one right-click

Mark a folder as a Vault and you're done. It snapshots quietly in the background every 5 minutes — ~0% idle CPU, with Git invisible underneath.

2

Safe even after emptying Trash

Empty the macOS Trash, force-delete from outside — the data survives, isolated inside the Vault. Zero cloud dependency; everything stays on your Mac.

3

One-click recovery from the timeline

Open the Vault Timeline, pick a point in time, and bring a vanished file back with a single click — any version, any moment.

Nothing is collected.

Privacy isn't a feature here — it's the default. And it's all verifiable in the source.

0

Zero telemetry

No usage stats, no crash reporting, no analytics, no ad identifiers — and no account to sign up for. Nothing collected means nothing to share.

1

Exactly one network request

A once-a-day version check against GitHub Releases — it carries no user data, and it silently skips when you're offline.

Everything stays on your Mac

Settings, the search index and caches live locally only. brew uninstall --zap --cask anf removes every trace.

It never knows your passwords

SSH/SFTP uses key/agent auth only — passwords are never asked for or stored. Diagnostic logging is off by default (opt-in).

Details in the privacy policy — short enough to actually read.

Release notes.

v1.0 — first public release. The fastest native file browser for macOS.

v1.0.3 — sidebar favorites now navigate only the focused pane while split (previously both panes changed). brew upgrade --cask anf

v1.0.2 — adds macOS 14+ (Sonoma/Sequoia) support; the single macOS 26-only API (writing Finder tags) replaced with the long-standing NSURL spelling. brew upgrade --cask anf

v1.0.1 — fixes a terminal/SSH crash (missing resource bundle), much faster ⌘1–4 pane switching (188ms → 31–54ms), Vault from more right-click spots. brew upgrade --cask anf

Speed

  • getattrlistbulk(2) bulk reads — a 26,000-entry folder opens in ~0.1s, revisits in 0ms
  • List, icon grid and sidebar all native AppKit — instant scrolling and sorting at tens of thousands of items
  • ~0% idle CPU; bounded thumbnail generation and a sidebar that doesn't rebuild on navigation

Search

  • ⌘K palette — names via fd + built-in fuzzy ranking, content via ripgrep (falls back to Spotlight without them)
  • Korean initial-consonant search and hwpx·docx·pdf body-text search, no extra software
  • NFC/NFD normalization; jump to SSH hosts and Workspaces from the palette

Windows · Keyboard

  • Multiple windows (⌘N) · single/two/four panes · named Workspaces
  • Type-to-select, Shift+arrow block selection, PgUp/PgDn paging, F5/F6 copy/move across panes
  • ⌘ shortcuts that work under the Korean IME, a first-run shortcut card

File operations

  • Extract zip·7z·tar.gz·cpio and more with no extra install (rar·alz via unar); zip compress
  • ⌘Z undo (move, rename, Trash), conflict dialogs, background copy faster than cp
  • Get Info (⌘⌥I) and colour tags (Finder-compatible); status bar shows item count and free space

Remote · Privacy

  • GUI SFTP — browse SSH hosts like folders (no sshfs); built-in terminal (real PTY, multiple tabs)
  • Automatic ~/.ssh/config parsing; passwords are never asked for or stored (key/agent auth)
  • Zero telemetry — the only request is a once-a-day version check; EN/KO UI; MIT open source

one more thing

  • Vault — protect a folder and recover files even after emptying the Trash
  • Background snapshots every 5 minutes, local only, no cloud
  • Built on local git — zero new dependencies; dev folders isolated in .anf_vault

Like what you see?

Ideas, feedback and bug reports: GitHub Issues or tellme@duck.com.