Skip to main content
In about fifteen minutes you run Quivr locally, add a short news article, find it by keyword and by meaning, then save an alert and watch it catch the next matching article. You talk to Quivr’s HTTP API with curl.

Before you start

You need a Linux x86_64 machine: the local stack runs only there today. Check each tool: The first start downloads the pinned container images and the embedding model, about 1 GB.

Run Quivr and try it

1

Start Quivr

Clone the repository and start the local stack:
make dev starts PostgreSQL, Temporal, S3-compatible storage, Weaviate and an embedding server in Docker, builds the quivr binary, and runs its API and worker. When it is ready it prints the API address:
Point your shell at it. This sets the API address, a local API key and the webhook destination the last step uses:
2

Create a Corpus

A Corpus is a collection of articles you search together. Create one:
Keep its identifier for the next steps:
Every request that creates something carries an idempotency_key. Send the same request again and you get the same Corpus back, never a second one.
3

Add an article

Each article is a Record. namespace says where it comes from and record_key is its identity there:
Quivr answers as soon as the article is stored safely, with an Ingestion Receipt. Processing happens in the background. Read the Receipt until its state is resolved, usually within a second:
4

Search by keyword

Each hit names the Record and the Part it comes from, and its excerpt is an exact slice of the stored text, so you can always cite where a result comes from.
5

Search by meaning

The worker also turns each article into vectors, a few seconds after it arrives. Search with words the article does not contain:
Without mode, a search is hybrid: it combines keywords and meaning.
6

Get alerted on a topic

An alert has two parts. A Saved Query holds what to look for, here any article that mentions a library or a museum:
A Subscription turns it on. It names the plugin that decides each match, here the keyword rules of the first-party alerts plugin, and where to send notifications:
The alert watches articles that arrive from now on. Add one that matches:
Within seconds the alert catches it. Each catch is a Match, with evidence that says why:
Quivr also sends each Match as a signed webhook to the destination. The local stack’s destination delivers nowhere, so here you read Matches through the API.

What you built

You ran the whole engine on your machine: durable ingestion, keyword and semantic search with exact excerpts, and an alert decided by a plugin. make down stops the stack and keeps its data; make reset deletes it. The requests above use fixed idempotency keys, so to run them again from scratch, make reset first.

Core concepts

The few ideas behind what you just did: Corpus, Record, Version, search and alerts.

Build your first plugin

Teach Quivr to read a new file format, and search it.

Add content

Send batches and files, correct and withdraw articles.

Keyword alerts

Write alert queries and read what matched.