Vespera
Local-first AI due diligence.
Review a dataroom without sending confidential documents to a third-party AI provider.
pip install vespera
vespera review ./dataroom
Vespera scans the documents in a local folder — contracts, board minutes, NDAs — and produces a structured due diligence report with evidence-backed findings, each linked to its source document and page. All analysis runs on your machine via Ollama. Document contents never leave your network.
What it does
Vespera performs the first-pass review of a document collection for M&A, VC, and PE due diligence:
- Recursively discovers PDF, DOCX, TXT, and Markdown documents
- Extracts text and analyses it with a local LLM
- Produces structured findings across categories including change-of-control clauses, termination rights, assignment restrictions, exclusivity, IP ownership, material liabilities, missing signatures, and cross-document inconsistencies
- Writes a Markdown report and a machine-readable JSON evidence file
Vespera
Reviewing ./dataroom
Documents found: 6
Documents processed: 6
Findings:
- Change-of-control clauses: 1
- Termination rights: 3
- Missing signatures: 1
- IP ownership / assignment: 2
Report: vespera-output/report.md
Evidence: vespera-output/findings.json
All document analysis was performed locally.
Every finding carries its category, severity, a short verbatim evidence excerpt, a confidence score, and the source file and page.
Privacy model
- No cloud calls for analysis. Inference runs on a local Ollama server (
localhostby default). - No telemetry, no accounts, no database. Vespera reads your documents and writes two output files. That's it.
- The only network activity you'll ever need is
ollama pullto download a model once.
Quick start
-
Install Ollama and pull a model:
ollama pull qwen3:8b
-
Install Vespera (Python 3.12+):
pip install vespera
-
Review a dataroom:
vespera review ./dataroom
Try it on the included synthetic example:
git clone https://github.com/VesperaSystems/vespera
cd vespera
vespera review ./examples/sample-dataroom
Commands
vespera review PATH [--model qwen3:8b] [--output vespera-output] [--host http://localhost:11434]
vespera models # show default + locally installed Ollama models
vespera --version
Supported document types
| Format | Notes |
|---|---|
| Priority format; per-page source references | |
| DOCX | Paragraphs and tables; no page numbers |
| TXT / MD | Plain text |
Scanned image-only documents are not analysed in this version (no OCR).
Limitations
Vespera is automated document triage. It is not legal, financial, or investment advice, and it does not replace review by qualified professionals. Local language models can miss issues and misread context; findings must be verified against the source documents. Vespera is designed to tell a human professional where to look first — not to make decisions.
Roadmap
- OCR for scanned documents
- More document formats (XLSX, EML, PPTX)
- Additional local model providers (llama.cpp, MLX)
- Configurable finding categories and custom review checklists
- Multi-language document support
Development
git clone https://github.com/VesperaSystems/vespera
cd vespera
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest
The LLM is behind a tiny provider interface (vespera/llm/base.py), so tests inject a fake provider and never require Ollama.
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vespera-0.1.0.tar.gz.
File metadata
- Download URL: vespera-0.1.0.tar.gz
- Upload date:
- Size: 67.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b628e70c722473f5700c26fa16a514bba779554f5541fba0c9e917b81158228f
|
|
| MD5 |
d6088ac4a9cc4ce9963eaf9f74597cc1
|
|
| BLAKE2b-256 |
21bfc142b77a42b822b2c651a1f0a4bcfa666c54134823c22bf55651d864a6fe
|
File details
Details for the file vespera-0.1.0-py3-none-any.whl.
File metadata
- Download URL: vespera-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a82580467a4339831145e3ee954e743d09e63f6a0c22b15ad0684bd6e5fde55
|
|
| MD5 |
5445f592943e15990862bf515907fdfa
|
|
| BLAKE2b-256 |
ea5960089af310449d7690b6c21aa9fd1d1e0eeda5e9ad06f4059ba02d5e7da6
|