← Projects
MIT · macOS · Firefox · Raycast

Fox Hop

Focus a specific Firefox tab from anywhere on macOS — one product across the terminal, Raycast, and the browser, all driving the same configuration.

3
Surfaces
1
Shared config
macOS
Platform
MIT
License
The ecosystem

One product, three surfaces

Fox Hop isn't a single CLI — it's a small ecosystem, and every surface reads the same targets from ~/.config/foxhop/tabs.json. Reach for whichever fits the moment; they all drive the same configuration.

CLI + native host

The engine. @kud/foxhop-cli focuses tabs, manages targets, and bridges macOS to Firefox over native messaging — scriptable from the terminal or bound to any global hotkey.

View on npm ↗

Firefox extension

The in-browser half of the bridge. It receives a request from the native host and switches to the matching tab — opening it at the configured URL when it isn't already there.

Get the add-on ↗

Raycast extension

A launcher-native way to search, add, edit, and focus targets — plus generated per-tab hotkey scripts via foxhop sync.

Open in Raycast ↗

Quick start

Up and running in two steps

1 · install the CLI + native host
npm install -g @kud/foxhop-cli
foxhop install
2 · focus a tab from anywhere
foxhop focus chatgpt
How it fits together

One request, any entry point

Every surface speaks to the same native host, which talks to the Firefox extension — so a hotkey, a Raycast command, and a terminal call all end the same way: the tab you wanted, in front of you.

the flow
hotkey / Raycast / terminal
   → foxhop CLI
   → native messaging host
   → Firefox extension
   → your tab, focused

Configure once, focus everywhere

Targets, matching strategies, per-tab hotkeys, and the full CLI reference live in the docs.

Open documentation →