A keyboard-driven address bar for macOS Finder. Click the bunny in your menu bar, type a path, hit Enter, and Finder jumps there. Tab-completes paths, remembers recent destinations, and lets you star any folder as a favorite.
Finder doesn't have an address bar. Cmd-Shift-G opens "Go to folder…" but
it's modal, slow, and forgets what you typed. Hop is always one click away,
pre-fills the current Finder window's path, and tab-completes like a shell.
./run.shFirst run creates a .venv and installs dependencies (rumps, pyobjc).
Subsequent runs just launch the app. It lives in the menu bar with no Dock
icon.
The easiest way: right-click 🐇 → Settings… → toggle Start Hop at login.
This installs a LaunchAgent at ~/Library/LaunchAgents/com.burghr.hop.plist
that runs ./run.sh at login. Stdout/stderr go to /tmp/hop.out.log and
/tmp/hop.err.log.
You can also run ./install.sh and ./uninstall.sh from the project
folder to do the same thing from the command line.
Left-click 🐇 in the menu bar to open the panel. The text field is
pre-filled with the path of the frontmost Finder window (or ~ if no
Finder window is open).
Right-click 🐇 for Settings… and Quit Hop.
The panel always shows your Favorites and History sections beneath the text field, so frequent folders are one click away. Tab-completions appear above them when you're actively typing.
| Key | Action |
|---|---|
Enter |
Navigate Finder to the typed path |
Tab |
Tab-complete: fill in the common prefix, show matches below |
Tab (again) |
Accept the first / highlighted completion, then re-complete |
→ (at end) |
Same as Tab - accept the selected/first row |
↑ / ↓ |
Move the keyboard selection through all rows (completions, favorites, history) |
Esc |
Close the panel |
Cmd-Q |
Quit Hop |
When you select a favorite or history row with ↑/↓ and press Tab, →,
or Enter, Finder navigates to it and the panel closes.
- Hover any row to highlight it
- Click the path to navigate Finder and close the panel
- Click the star (☆ / ★) to add or remove that path from favorites
- Click outside the panel to dismiss it
- Every time you navigate to a folder (via Enter, click, or accept), it's added to your history (most recent first, up to 50 stored, 12 shown).
- Click the empty star next to any row to favorite it. Click a filled star to unfavorite. Favorites appear at the top, before history, and aren't duplicated in the history section.
- Data is stored at
~/Library/Application Support/Hop/data.json. Safe to edit or delete by hand if you want to clear it.
It works like shell tab-completion:
- Type a partial path, e.g.
~/Doc - Press
Tab→ expands to the common prefix (~/Documents/) - Press
Tabagain → if there are multiple subdirectories, they appear as a clickable list. The first one is the default; pressTabor→to accept it and dive deeper, or↑/↓to pick a different one. - Keep typing to narrow the list. Typing clears the completion list, so you can refine your search at any time.
~ is expanded to your home directory. Only directories are listed (not
files), because the goal is to navigate Finder.
Type a URL like smb://server/share (or afp://, ftp://, nfs://,
etc.) and press Enter. macOS will mount the share via Finder, prompting
for credentials if needed, and open it. The URL is added to history and
can be starred as a favorite just like a local path.
Tab-completion only works for local paths. Once a share is mounted it
appears under /Volumes/<sharename>/, which tab-completes normally.
Right-click 🐇 → Settings… to configure:
- Menu bar icon - Bunny 🐇 or Folder 📁.
- Max history entries - how many history rows to show (0–12). Stored history isn't trimmed; this just changes the display cap.
- Global hotkey - click Record, then press the combo you want
(must include at least one modifier: ⌘/⇧/⌥/⌃). Press the hotkey from
anywhere to toggle Hop. Uses Carbon's
RegisterEventHotKey, so the combo is consumed system-wide. Pick something not already bound. Press Esc while recording to cancel. - Start Hop at login - toggles the LaunchAgent.
Settings are saved to ~/Library/Application Support/Hop/data.json.
Right-click 🐇 → Quit Hop, or press Cmd-Q while the panel is open.
Hop uses a custom borderless NSPanel instead of NSMenu for the dropdown.
NSMenu's tracking loop captures all keyboard events once items become
visible, which makes Tab and arrow keys impossible to intercept from an
embedded text field. A panel sidesteps the problem entirely. It's a normal
window with normal event flow.
