# SearchJumper: a search hub that lives in the toolbar you never see

> SearchJumper is a browser extension and userscript that turns a right click on any text, image, link, or page into a menu of search engines, with batch opening, keyboard shortcuts, site-scoped categories, and optional WebDAV sync. It is GPL-3.0 licensed, built with React and Material UI, and documents its network behaviour in detail.

**hoothin/SearchJumper** — Yet another awesome browser extension for switching search engines, search everything (selection text / image / link / find in page) on any engine with a simple right click or a variety of menus and shortcuts. Build with React & Material-UI. (WIP).

- Repository: https://github.com/hoothin/SearchJumper
- Website: https://hoothin.github.io/SearchJumper
- Stars: 1,180 · Forks: 73
- Language: JavaScript
- License: GPL-3.0
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/hoothin-searchjumper

## One right click, many engines

SearchJumper is a browser extension for switching search engines, and its premise is that the search engine is a property of the question rather than of the browser. Anything you can put on the clipboard, select on a page, or point at with the cursor becomes a search term.

The feature list in the README is specific about the input. You can search for pictures, links, videos, audios, and pages, and the gesture for a selected object is a long press of the right mouse button. There is word search on any page, also on a long right press, and the documentation notes that the long press can be changed to a swipe that brings the menu up immediately in the settings. There is search by site, which scopes a query to the site you are on.

The context menu is the primary surface, but the toolbar is a second one. A category icon in the toolbar groups engines, and right clicking that icon opens the sites in that category in a batch. A cute face in the corner opens the configuration page on a left click, hides the toolbar entirely on a right click, and can be dragged to any position. The last point matters more than it sounds, because a toolbar you cannot move out of the way is a toolbar you will disable.

The project describes itself as a personal work that may not suit you, and it is built with React.js, uses Material-UI for the interface, and FontAwesome for the icons. The home page is hoothin.github.io/SearchJumper, and the last push to the repository was on 2026-10-06, with no GitHub releases published.

## The modifier key grammar for opening results

The bulk of the feature list is a grammar of modifier keys, and it is worth reading as a set because it explains what the toolbar is for. A single click on a site icon searches the current selection with that engine. Shift and left click opens the result in a new window. Ctrl and a left click, shortcut, or drag opens the result in a background tab. Alt with any of those previews the result in a small window. Ctrl and shift opens the result in an incognito window.

The same grammar applies to the category icon, but with the addition that a plain right click on a category opens the whole batch of sites in that category at once. Ctrl and shift on a category opens the batch in an incognito window, alt and shift opens them embedding, and alt alone opens them as multiple separate windows.

The result is that one toolbar can serve as a search launcher, a batch comparison tool, and a bookmark opener, depending on which modifier you hold. That is a lot of behaviour on a small surface, and it is also the risk, because a mis-click with the wrong modifier can open thirty tabs at once.

There is a search bar for filtering sites by shortcut key, invoked when nothing is selected. Pressing enter locks the site and enters the search term, pressing enter again uses the first result, and ctrl with enter searches without locking. The documentation notes this suits static bookmarks, where the search term is already known and the point is to reach the site quickly.

## Shortcut keys, and per-site categories

Shortcut keys are supported as single keys or combinations, and the example given is alt+g for a Google search, with the point that it can be customised freely. A shortcut invokes the search bar when nothing is selected, which is what makes the extension usable without touching the mouse at all.

The category system is the other half. Categories can be restricted to specific sites through a regular expression, so a category appears only on the pages where it is relevant. The README calls this a regular rule, and in practice it means the toolbar stays out of the way on most pages and appears on the few where its engines are useful.

Combined, the two features are the reason the extension can be set up once and then left alone. A global shortcut for the common case, and scoped categories for everything else, is a configuration that survives months of use. A toolbar that shows every engine on every page is a toolbar that gets hidden.

The documentation also mentions a guide hosted at search.hoothin.com, and a discussion category for contributing search engines, which is how the engine list is extended. The engines are contributed by users, which is a different supply chain from a curated list and means the list quality is a community question rather than a product decision.

## What the extension actually sends over the network

The privacy section is the most substantive part of the README, and it is worth reading closely because the extension's promise is that it collects no data, and that claim needs qualification.

On suggestions, new installations disable them by default, and upgrades preserve the previous provider. When enabled, suggestions send unsubmitted text to the selected Google, Bing, or Baidu service after an input pause of about 200 milliseconds. That last part is the one to notice. The text sent is what you have typed but not yet submitted, and the delay is what stops a request per keystroke.

On resources, icons, fonts, configured backgrounds, and the configuration page's sponsor image can make resource requests, and the documentation is explicit that disabling icon caching does not disable downloads. So the extension does make network requests for its own chrome, and a configuration that suppresses some of them still leaves the rest.

The optional WebDAV sync sends engine configurations and saved highlighting rules to a server you choose. Passwords saved for WebDAV stay in the extension or userscript storage, are not filled into the configuration page, and are excluded from full backups, and existing backups remain importable. The last point is a compatibility promise worth noting, since it means the exclusion of passwords did not break older backup files.

The final paragraph is the honest part. Custom engines and backups can contain API parameters, headers, page URLs, and other values you entered, and cross-origin permissions remain available for custom sites, images, APIs, and WebDAV. The privacy policy is linked for the account services, updates, storage, and the effect of the split search feature on site service workers. The headline claim in the page title is that it is completely open-source, with no privacy collection, ads, or shady third-party libraries, and the network section is the part that qualifies what that means in practice.

## Three distributions, and a local build

The extension ships in three forms, which is unusual and reflects the different browser policies. There is a Chrome Web Store listing, a Greasyfork userscript, and a Firefox add-on. The userscript route is what makes the extension work in browsers where installing a WebExtension is restricted, and it also means the settings live in the userscript manager's storage rather than the browser's.

The configuration page is reachable in two ways, at hoothin.github.io/SearchJumper and at search.hoothin.com/config. And the source can be downloaded and run locally, where the instruction is to double-click start.cmd to compile and then open the config page through localhost:3000.

The build tooling is the standard Create React App setup, which the package manifest shows in full:

```json
"scripts": {
  "start": "react-scripts start",
  "build": "cross-env GENERATE_SOURCEMAP=false react-scripts build",
  "test": "react-scripts test",
  "eject": "react-scripts eject"
}
```

React is at 18.1.0, react-router at 6.3.0, and the Material UI packages at 5.7.0 with the icons package at 5.6.2 and the base package at an alpha. The webdav package at 5.3.1 is the client for the optional sync, and vanilla-jsoneditor is there for the raw engine configuration editing, which is how a user adds an engine that the UI does not cover.

There are three command files at the repository root, start.cmd, build.cmd, and gh-page.cmd, plus a schema.json at the root, which appears to describe the configuration format. The build script sets GENERATE_SOURCEMAP=false, which reduces the size of the shipped bundle at the cost of a stack trace without source maps, a reasonable trade for a userscript that has to be downloaded in full.

## Against a single search engine, and against built-in search

The comparison with a single search engine is the first one, and it is a matter of what you are optimising for. If you want the best results from one engine, a search box is faster than a menu, because picking an engine is a decision you would rather not make. SearchJumper is for the case where the right engine depends on the question, and where the cost of switching is what you are trying to remove.

The comparison with the browser's built-in search is different. Every browser has a search box and some way to search a selection. What the browser does not offer is one configurable menu that sends any selection, image, link, or page to many engines at once. The extension's value is entirely in the breadth of targets and the number of engines, and in the batch behaviour that lets you compare across them in one action.

The third comparison is with the other class of extension, the one that is a search engine of its own. Some extensions route every query through a metasearch backend. That model has a privacy cost, because the queries pass through a third party, and it locks you into one result set. SearchJumper's model sends the query directly to the engine you chose, with no intermediary, which is what makes the engine list something the user controls and contributes to.

The cost of all of this is a toolbar, an extra context menu entry, and a JavaScript bundle running on every page. The authors note the toolbar can be hidden with a right click on the cute face, which is the mitigation for anyone who finds that too intrusive.

## Conclusion

Adopt SearchJumper if you switch between search engines constantly and want one context menu instead of several, and if you are willing to read its network section before turning suggestions on. Do not adopt it if you need a single search engine done well, since the interface is a launcher rather than a search box. Verify first that the suggestion provider is what you expect, because new installations disable suggestions by default while upgrades keep the previous provider.

## FAQ

### How do I install SearchJumper?

There are three routes: the Chrome Web Store listing, a Greasyfork userscript at scripts/445274, and the Firefox add-on. The configuration page is at hoothin.github.io/SearchJumper or at search.hoothin.com/config, and the source can also be built locally and reached on localhost:3000.

### Does SearchJumper send what I type to a search engine?

Only if you enable suggestions. New installations disable suggestions by default and upgrades preserve the previous provider, and when enabled, unsubmitted text is sent to the selected Google, Bing, or Baidu service after an input pause of about 200 milliseconds. Icons, fonts, backgrounds, and the sponsor image can also make resource requests regardless.

### What does the WebDAV sync in SearchJumper send?

Engine configurations and saved highlighting rules go to the server you choose. Saved WebDAV passwords stay in extension or userscript storage, are not filled into the configuration page, and are excluded from full backups, while existing backups remain importable.

### How do I open many search results at once in SearchJumper?

Right clicking a category icon opens all the sites in that category in a batch. Shift and left click opens them in a new window, ctrl and left click opens them in background tabs, alt and left click opens multiple separate windows, ctrl and shift opens them in an incognito window, and alt and shift opens them embedding.

### How are the keyboard shortcuts configured in SearchJumper?

Shortcut keys can be a single key or a combination, such as alt+g for a Google search, and they can be customised freely. Invoking a shortcut with nothing selected opens the search bar for filtering sites, where enter locks the site and enter again uses the first result, and ctrl with enter searches without locking.

## Sources

- [hoothin/SearchJumper on GitHub](https://github.com/hoothin/SearchJumper)
- [Issues](https://github.com/hoothin/SearchJumper/issues)
- [License: GPL-3.0](https://github.com/hoothin/SearchJumper/blob/main/LICENSE)
- [Project website](https://hoothin.github.io/SearchJumper)
- [README](https://github.com/hoothin/SearchJumper/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/hoothin-searchjumper
