Skip to main content
A plugin provides one or more Contributions, each of one of five types. Pick the type from the question you want to answer for Quivr.

Normalizer

How do I read this kind of file?

Connector

What did this source publish since last time?

Ingestion

How do I cut and embed this article?

Retrieval

Which passages answer this search, in what order?

Alert rule

Does this article match these alerts?
Every type is served over HTTP under /v0/contributions/<type>, and every manifest below passes quivr plugin inspect. The plugin protocol reference lists every request and response field.

Normalizer

quivr-plugin.yaml
Quivr never sends the file inline: the request carries a short-lived signed URL, its size and its SHA-256. An answer Quivr rejects, or a TerminalError, quarantines the Version with a diagnostic; a plugin that is down only delays it. Walk through one in Build your first plugin.

Connector

quivr-plugin.yaml
Quivr keeps the instances, schedules, checkpoints, encrypted credentials and health. The plugin is stateless: it gets its last checkpoint and the decrypted credential in each request, and returns items plus the next checkpoint. Quivr moves the checkpoint only after the items are stored. See Write a connector.

Ingestion

quivr-plugin.yaml
A deployment pins exactly one ingestion plugin; Quivr does not segment or embed anything itself. See Write an ingestion plugin.

Retrieval

quivr-plugin.yaml
The plugin never queries the index and never sees a candidate the caller may not read: Quivr applies access control and withdrawals before it serves candidates. See Write a retrieval plugin.

Alert rule

quivr-plugin.yaml
expression_schema is the shape of the queries your rule understands; Quivr refuses a Saved Query that does not fit it when the alert is created. See Write an alert rule.

Next

Build your first plugin

A normalizer from an empty folder to a local Quivr.

Pin a plugin

The configuration that makes Quivr call each type.