Skip to content
Quarry
Start free

Local index · macOS and Linux

Find the sentence you wrote in 2016.

Point Quarry at the folders you already keep. It builds one index on your machine and answers from it in place, so a search over ten years of notes comes back before you have let go of the return key.

14 MB · macOS 13 and later · Linux on x86-64 · free to 20,000 files

Overview

One window over everything you keep.

The app, the command line and the endpoint read the same index. Whichever one is in front of you, the same query returns the same rows in the same order.

quarrysearch"ranking AND after:2016"
  1. ~/notes/2017-03-ranking-pass.md:41

    the ranking pass runs after the filter, never before it

  2. ~/src/quarry/score.rs:188

    fn ranking_weights() -> Weights { Weights::from_config(cfg) }

  3. ~/notes/meetings/2019-11-14.md:7

    agreed to leave ranking alone until the index format settles

3 of 118 matches · 41,802 files indexed · 24 ms

How it works

Three commands, then it is running.

  1. 1
    quarry init ~/notes ~/src

    Name the folders. Everything under them is indexed unless a rule file says otherwise, and the rule files use the syntax you already write in .gitignore.

  2. 2
    quarry index

    The first pass over 40,000 files takes about four minutes on a 2021 laptop. After that the daemon watches and re-reads only what changed.

  3. 3
    quarry search "release notes"

    Or open the app, or call the endpoint. One index, one order of results.

Features

Six things a pipe into grep leaves you to do yourself.

Query syntax
AND, OR, NOT, quoted phrases, and filters on path, extension and date.
Snippets from the file
The matching line with the two around it, read from disk when you ask, not stored.
Saved searches
A query you name once. The app keeps a live count beside it as the index changes.
Rule files
A .quarryignore per folder, checked into the repository if you want it shared.
A loopback endpoint
127.0.0.1:7433, JSON in and out, which is how the editor plugins talk to it.
Exit codes that mean something
0 for matches, 1 for none, 2 for a query it could not parse. Scripts can branch on it.

Pricing

Free while the archive is small. Six dollars a month once it is not.

  • Free

    One machine, one index, no account.

    $0 a month

  • Promost bought

    The whole archive, and everything that reads it.

    $6 a month

  • Team

    Per seat, with one set of rules for the whole team.

    $10 a month

See what each plan includes

Questions

What people ask before they buy.

Does anything leave my machine?

No. The index is a file under ~/.local/share/quarry. The one outbound request is a version check every seven days, and a line in the settings file turns it off.

What happens when my licence runs out?

The version you have keeps working. You stop receiving updates two years after purchase, and a new key starts the two years again.

Can I index a network drive?

Yes, but the watcher falls back to polling every 60 seconds and the first pass is several times slower. A local mirror is the better arrangement if you have one.

Is there a Windows build?

Not yet. The file watcher is the part that has not been written. It is the most requested item in the issue tracker and it is not scheduled.

Try it on the folder you actually work in.

The free version indexes 20,000 files and needs no account. If your archive is larger than that, you will know within the first minute.