> ## Documentation Index
> Fetch the complete documentation index at: https://docs.quivr.thevibecompany.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Writing plugins

> How to extend Quivr with your own plugins, for example a new file format or a new kind of alert rule.

How to extend Quivr with your own plugins, for example a new file format or a new kind of alert rule.

<h2 id="understand-how-it-works">
  Understand how it works
</h2>

* [Plugin Protocol v0](/contracts/plugins/v0): the plugin manifest, routes, schemas and fixtures
* [alerts](/plugins/alerts): the first-party keyword alert plugin
* [core.ingest](/plugins/core-ingest): the first-party ingestion plugin: token windows and E5 embeddings, and its parity with the engine
* [X list connector plugin (`x-list`)](/plugins/x-list): the first-party X list connector plugin and its parity tests

<h2 id="guides">
  Guides
</h2>

* [Run a connector plugin](/plugins/run-a-connector-plugin): pin a connector plugin and read the health it reports
* [Write a normalizer](/plugins/write-a-normalizer): from `quivr plugin init` to a searchable, observable Record
* [Write a retrieval plugin](/plugins/write-a-retrieval-plugin): decide how search results are found and ranked, under named profiles
* [Write an ingestion plugin](/plugins/write-an-ingestion-plugin): decide how articles are cut and embedded, and move a Corpus onto it
* [pdf-text](/plugins/pdf-text): the reference PDF normalizer, one Part per page
* [RSS and Atom connector plugin](/plugins/rss): the first-party RSS and Atom connector plugin
* [Quivr Plugin SDK for Go](/sdks/go): write, test and certify a source collector or an ingestion plugin in Go
* [Quivr Plugin SDK for Python](/sdks/python): write, test and run a Python normalizer

<h2 id="other-readers">
  Other readers
</h2>

* [Using Quivr](/start/functional)
* [Contributing to Quivr](/start/contributor)
