Quivr at a glance
Quivr calls plugins for the jobs that depend on your content. A plugin is a small web service that does one kind of job, such as reading PDF files, collecting a feed, preparing text for search or ranking results. Quivr ships with a plugin for each job, and you can swap them or add your own. Documents come in from your sources and your application, plugins do the jobs that depend on your content, and search results and alerts go out: In words:- Sources are news feeds (RSS and Atom), Microsoft 365 mailboxes and lists on X, which Quivr collects on a schedule, and partners who push documents to it. Your application can send documents too.
- Quivr stores every version of every document, prepares it for search and checks it against your saved alerts.
- Plugins do the jobs that depend on your content: read files, collect sources, prepare text for search, rank results and decide alerts. Quivr asks them over HTTP. Only two jobs are required, preparing text for search and ranking results, and Quivr ships a plugin for each. The others are there when you need them.
- Your application searches Quivr and gets back ranked passages, each linked to its document and version.
- When a new document matches a saved alert, Quivr records the match with its reason. Your application reads it through the API, or receives it as a signed message (a webhook) at an address it runs, and decides how to tell people, by email or in your app.
- AI agents search Quivr through MCP, a standard way for agents to call tools, and quote what they find. Quivr returns passages; the agent writes the answer. See Connect an AI agent.
What goes in, what comes out
Take one news article: Harbour strike halts the ferry, with the line “The harbour strike stopped every ferry to the island on Friday.” It comes from a feed Quivr follows, or your application sends it. Quivr files it in a collection (a Corpus, in the API) as a document (a Record).What you can do today
Collect content
Search it
Follow a topic
Extend it with plugins
What Quivr promises
Quivr confirms a document only once it has stored it, so an outage delays processing but never loses what it confirmed. Every write can be retried safely, a correction never overwrites history, and every search result is checked against stored content and your access. How Quivr works explains these promises and the parts behind them.Who runs what
Quivr runs on servers you control, next to your application. Your users talk to your application, and your application calls Quivr.What you need
- To see it: nothing. The tour below shows the demo app.
- To run it on your machine: Linux on x86_64 or an Apple Silicon Mac, Docker, Go, Python, a few command-line tools and about 1 GB of downloads. The Quickstart takes about fifteen minutes.
- To build on it: a running Quivr and an API key from its operator. A key belongs to one organization, can be limited to some collections, and carries only the permissions your application needs, such as
content:writeto add documents, andcontent:readwithsearch:queryto search them.
Tour the demo
The repository includes a demo web app: a small monitoring dashboard built only on Quivr’s API. It is an example of a product someone could build on Quivr, not part of the engine. Its interface is in French; the screenshots below show three made-up English news feeds.
The feed (Fil). (1) Documents arrive from three feeds, newest first. (2) The alerts that caught a document are tagged under its title. (3) Each alert counts what it caught.

A search with Idées proches (similar ideas) on. (1) The question, in plain words. (2) The best result, a storm warning, shares none of the question's words: Quivr found it by meaning. The demo marks such results Même sujet, autres mots (same topic, other words). (3) Meaning search returns the closest documents it has, so less related ones follow.

An open document. (1) Why each alert caught it. (2) The feed corrected the article: the demo shows what changed, word by word, and can open the earlier text.

The Admin tab, read-only. (1) How long documents took to become searchable in this demo. (2) Each document's time at every step: received, cut into passages, searchable by keyword, prepared for meaning search, checked against alerts.
make demo from the repository and open http://127.0.0.1:5183. The demo’s README explains each tab.
The pictured feeds and alerts are example data, and your local demo starts empty. To try it, add a news site in the Sources tab, or paste a document with Ajouter du texte (add a text), then set an alert.