A launcher for the Web

What is Pagehop?

How do you browse the Internet?

Do you use the mouse a lot? Some pages have shortcuts for keyboard navigation, but there are so few of them... and no conventions. And you probably wish you could just type your way to the destination page?

Wouldn't be nice to have the ability to search with regular expressions or fuzzy matching?

Pagehop coming to the rescue!

It's a launcher app for The Web.

Whenever you want to open-up a page, search for something, read docs, or even check out the news titles - Pagehop is the fastest, easiest way to do it.

You simply:

  1. Press the global shortcut to open it up (by default Ctrl + ⌥ + Space).
  2. Write a query in a minimalistic language similar to piping commands on the terminal.

And you are there. Easier. Faster.

One search console to rule them all!

Having a single interface and set of tools makes search easier.

You no longer depend on the mouse/trackpad, tabbing or key shortcuts specific for every page's implementation in order to navigate through the results of your query.

Pagehop allows you to search (horizontally) using Google, Bing and DuckDuckGo.

Whatever resource you search through Pagehop (see Recipes & Tools), you can further process the returned results locally using one (or piping multiple) of these tools:

  • Fuzzy (:f) - fuzzy matching
  • Regex (:r) - filter with regular expression
  • Addresses (:a) - to search in the results' addresses instead of titles
  • Links (:l) - see this
  • Select (:sel) - select an item in the results

And the best part - you can write your own recipes and tools (check this)!

Vertical search for the best results.

Horizontal search engines have gone so good...

... most of the time we search in Google, instead of trying to search specific resources.

But there is another side to this story. When all of these resources are different pages, with different UI, with different keyboard navigation (if any), people don't find it practical to do a vertical search. It's not easy enough.

This is one of the problems that Pagehop tackles - through an extensible set of search resources (recipes), extensible set of tools, simple & unobtrusive UI and easy minimalistic query language, it makes vertical search easier (and practical).

Out of the box, Pagehop has a recipe for vertical search in:

  • Wikipedia
  • searchcode.com (DocSearch & CodeSearch recipes)
  • WolframAlpha
  • StackOverflow
  • Youtube
  • MDN (Mozilla Developer Network)
  • npmjs.org (Node Package Manager's archive)
  • jQuery API docs
  • pixi.js docs
Pagehop also comes bundled with a recipe for dictionary definition of words (write "define ...") that provides results from several of the biggest online dictionaries, as well as recipes for local Time and Weather.

Get faster to the pages you use every day.


Have you ever used a documentation website, where you go to different pages in it 5-10-20 times a day? And although you know perfectly how to go there, you probably get annoyed by the tedious repetitive procedure of:

  1. Open up a browser;
  2. Navigate to the website (through search or directly);
  3. And then repeat this * X:
    1. (Scroll) / (Search text in the browser);
    2. Click a link.
  4. ...until you are finally there.

Pagehop solves this for almost all cases with its Links tool. Links gives you all the anchors on the selected in the results address. You can pipe it as many times as you like (thus hopping-off pages) and combine it with the rest of the tools at your disposal.

This way, if you know how to get to your final destination through a plethora of links - you can write the query in Pagehop without waiting for intermediate results, page renderings, without scrolling and clicking. Neat, right? :)

So it's for - search, docs, navigation... what else? News?

Pagehop is an awesome way to browse through the news titles of the day.

To give you an example, we made a recipe for the Hacker News, but this can be done for pretty much every modern news site, with (or without) a REST API for getting the feed.

The HackerNews recipe allows you to get the front page of news (and depending on how many results have you specified in the settings of Pagehop, it could return many pages of results), the most upvoted "Show HN"'s (:s), the most upvoted "Ask HN"'s (:ask), the job offers (:j) and even the discussions (where applicable, just type :d)

Recipes & Tools.

The 2 abstractions in Pagehop.

A recipe, is the initial source of results. Searching in Google is done by a recipe, searching in StackOverflow, too.

Tool, on the other hand, can only be used for post-processing of results.

For example - on this demo:

  1. We search Wikipedia ("wiki cryptocurrency");
  2. After getting results we "hop" from our first match (getting all links on it) and we search the new results for "bitc" (bitcoin) all that with ":l bitc";
  3. We hop from the first match (":l");
  4. Convert all results to addresses ":a" (gives you the addresses instead of titles to search in);
  5. Finally, we filter down the results to a TechCrunch article from June 2014, using a regular expression (":r tech.*2014/06").

You can always get a list with all tools if you write "sys :t " in Pagehop. "sys :r " to list all recipes.

Write your own recipes and tools.

All recipes and tools are written in JavaScript.

We crafted a very simple API for writting recipes and tools. Check our documentation.

You can also use the source of all recipes and tools bundled with Pagehop (github).

Everything is developed as NodeJS package. Tests are runned with Grunt and written with Mocha. All code is linted with jsHint.

One of the things we're most proud of, is that Pagehop recipes don't depend on the existence of any services to provide results - Pagehop's API gives you the ability to load a page in a headless browser and scrape the data manually, in case you can't use a service.

What's more, Pagehop's recipe (and tool) runs in a separate process and has the ability to spawn unlimitted number of threads (in OS terms), e.g. you need to get 3 pages of data - just spawn 3 threads and they will return data in async manner whenever they are ready. And all of these threads are completely isolated from your FS.

We have achieved this isolation with our NodeJS module boxtree. It's open-source, too.

// Example recipe:
// page-loop.js
'use strict';
var urlTemplate = 'https://example.com/?q=%s',
  query = pagehop.getQuery(),
  url = urlTemplate.replace( "%s", encodeURIComponent( query ) );
pagehop.scrape( url, function(error, result) {
  if ( error ) {/*handle error*/}
  pagehop.finish( result );
} );
// scrape.js
'use strict';
var items = $( ".result" ).map( function(index, element) {
  return {
    text: element.text,
    address: element.href
} );
pagehop.finish( items );
// package.json
  "name": "pagehop-example-com-recipe",
  "version": "0.1.0",
  "private": true,
  "pagehop": {
    "id": "Example.com",
    "options": [],
    "hasQuery": true

What our users say...

Georgi Chokov

Principal Product Manager @ telerik

I find Pagehop to be the ultimate helper on Mac, whenever I intend to search something on the web. It's so powerful and flexible.

Tim Holman

Product Engineer @ tumblr.

It works great and it does its job super-well! Design is nice, speed is nice and things like stackoverflow work awesomely. Awesome stuff!

Woody Pewitt

Founder @ Pewitt Development

If you like to use Spotlight Search on your Mac, you will love, I mean REALLY love this app!