Skip to main content

Local-first document retrieval. Your data never leaves your disk.

Project description

Alcove

CI Coverage PyPI Python Versions License

Local-first document retrieval. Your data never leaves your disk.


Alcove is search infrastructure for documents you keep on your own machine. It ingests a local directory, extracts text, chunks it, writes a local index, and returns matching chunks through a CLI or local web/API server.

It is retrieval, not generation. Alcove does not summarize, answer questions, host models, or invent text. Search results are excerpts from the indexed corpus.

See it in 30 seconds · Why Alcove?

What ships today

Alcove v0.4.0 ships a working local pipeline:

  • Recursive ingest for PDF, EPUB, HTML, Markdown, CSV, JSON, JSONL, DOCX, PPTX, RST, TSV, and plain text.
  • Local indexing with ChromaDB by default, with zvec available as an optional backend.
  • A deterministic hash embedder by default, plus opt-in sentence-transformers and Ollama embedders for real semantic similarity.
  • CLI search and a FastAPI web service with search, upload, health, collection-list, and browse endpoints.
  • Semantic, keyword (BM25), and hybrid search modes.
  • Named collection metadata and collection filtering.
  • STDIO MCP retrieval tools for local index search and collection listing.
  • Local signing helpers and index signing tooling for provenance checks.
  • Python entry-point plugins for extractors, embedders, and vector backends.

The roadmap includes richer manifests, provenance workflows, streaming ingest, and more plugin categories. Those are not documented here as shipped behavior; see Roadmap for the pending-feature map.

How it works

Three stages. Each stage reads from local disk and writes to local disk, so it can be re-run independently.

data/raw/* -> data/processed/chunks.jsonl -> vector store -> query responses

Ingest discovers files recursively and extracts text with format-specific extractors.

Index embeds chunks and writes vectors plus metadata to a local vector store.

Query retrieves matching chunks through the CLI or local API/web UI.

See Architecture for module boundaries and extension points.

Quick start

pip install alcove-search[semantic]
alcove seed-demo
alcove serve

Open http://localhost:8000.

The [semantic] extra installs sentence-transformers. The first semantic run downloads all-MiniLM-L6-v2 once, then runs locally. For zero-download installs:

pip install alcove-search

The base package uses the hash embedder. It is deterministic, offline, and useful for smoke tests or operators who do not want ML in the pipeline. It is not a semantic search model.

Install extras
Extra Install command What it adds
Semantic search pip install alcove-search[semantic] Real vector similarity via sentence-transformers
EPUB support pip install alcove-search[epub] .epub ingestion
DOCX support pip install alcove-search[docx] .docx ingestion
zvec backend pip install alcove-search[zvec] Optional zvec vector store
PPTX support pip install alcove-search[pptx] .pptx ingestion
Everything pip install alcove-search[semantic,epub,docx,pptx,zvec] All optional runtime features
Alcove UI, dark theme Alcove UI, light theme

Trust model

Local disk only for normal ingest, index, query, and serve operations. No telemetry. No account creation. ChromaDB's upstream telemetry is disabled.

Network use is explicit: alcove seed-demo fetches the public sample corpus, and sentence-transformers downloads its model on first use. After that, embedding runs locally.

Alcove does not require authentication. The local API is open to anyone who can reach the port, so keep it bound to 127.0.0.1 unless you put authentication in front of it. See Operations and Security.

Common commands

alcove ingest /path/to/files
alcove search "phrase to find" --mode hybrid --k 5
alcove collections
alcove status
alcove serve --host 127.0.0.1 --port 8000

Documentation

Why Alcove? · Architecture · Operations · Security · Desktop Packaging · Seed Corpus · Roadmap · Plugin Ideas · Accessibility

License

Apache 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alcove_search-0.4.0.tar.gz (511.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

alcove_search-0.4.0-py3-none-any.whl (68.7 kB view details)

Uploaded Python 3

File details

Details for the file alcove_search-0.4.0.tar.gz.

File metadata

  • Download URL: alcove_search-0.4.0.tar.gz
  • Upload date:
  • Size: 511.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for alcove_search-0.4.0.tar.gz
Algorithm Hash digest
SHA256 6481859e9aaa24c832c364040b6cce6a12031055ddb51e3dd504927fab8888d9
MD5 d1b07c533b4deaf8213f6cc5a71884ec
BLAKE2b-256 5ce7e6819509868155aab17688e5291ac79ae811a21ecfc3aff0ed918f4a4bc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for alcove_search-0.4.0.tar.gz:

Publisher: publish.yml on Spitfire-Cowboy/alcove

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file alcove_search-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: alcove_search-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 68.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for alcove_search-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6547772d75a029e56c20ee5d3ebe12b9793e3d1e50618ff6de9a2de1f468c18c
MD5 b2d6d6dc18311650fa7c6a125cfb3504
BLAKE2b-256 968e206bdd60db4fce962c01ce93f38a1f1b2ca9608a3ba76a8fb388a7228688

See more details on using hashes here.

Provenance

The following attestation bundles were made for alcove_search-0.4.0-py3-none-any.whl:

Publisher: publish.yml on Spitfire-Cowboy/alcove

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page