Tree search answers a different retrieval question
PageIndex rejects the usual pattern of cutting a document into fixed chunks, embedding each chunk, and finding nearby vectors. It creates a hierarchy of titled sections and summaries, then asks a language model to navigate that tree for relevant pages. This can help when the answer is contextually relevant but does not share obvious vocabulary with the question. The returned path is tied to explicit document sections rather than an opaque similarity score.
The default Flash mode extracts PDF structure from layout statistics rather than asking a model to invent the tree. Models still write node summaries and can expand or merge the structure. At query time, a model reasons through the tree and reads page content. Calling the method vectorless is accurate about the index, but it does not mean model-free, free of provider costs, or deterministic. Answer quality still depends on document parsing, tree quality, summaries, the query model, and prompts.
Local and cloud modes solve different document problems
The local SDK stores document data under a chosen path and exposes submission, structure inspection, page content, chat, and agent tools. It is designed for text-heavy PDFs. The cloud path adds hosted OCR, image retrieval and understanding, line-level citations, a file-system layer for large corpora, and an MCP server. One client can address either side, but the capability table is clear that local mode does not include every hosted feature.
This split is the main buying decision. A clean annual report with selectable text is a credible local candidate. A scanned contract, diagram-heavy technical manual, or mixed image archive needs OCR and visual handling, which the README assigns to Cloud. PageIndex also offers dedicated or private deployment through direct contact rather than a self-hosted server package in the repository. Teams with residency rules should settle that boundary before uploading documents.
What happened when we ran it
Our fresh Python 3.12 sandbox installed 94 packages in 43 seconds. They occupied 226 MB, and the build completed in 7 seconds. The checkout at commit 416e304 was 29.8 MB, with 161 files and roughly 34,594 source lines. That is a manageable SDK-sized repository rather than a large distributed search service.
pytest ran for 181 seconds and reported 345 passed with 0 failed; 50 tests were skipped. We are preserving the harness wording because its total is reported as 345 even though skipped tests are listed separately. pip-audit found 1 known vulnerability, but the measurement does not identify its package or severity. The project had a tests directory and 8 CI workflow files, with no Dockerfile.
This clean test result does not measure retrieval accuracy. Our sandbox had no secrets, so it did not pay a provider, submit a document to PageIndex Cloud, exercise OCR, or compare answers with vector search. It verifies installation, build, and the available local suite. Before adoption, run a labeled question set over your own PDFs and record answer correctness, citations, provider cost, latency, and failure behavior.
One SDK can speak several agent protocols
Model connections use LiteLLM naming. Local mode can call hosted providers through their keys or a compatible local endpoint. Index and chat models can differ, and release 0.2.11 separates index and chat backends more explicitly. This flexibility creates a privacy decision: local PageIndex storage does not make the workflow local if page content is sent to an external model provider. Map each processing lane and credential before describing a deployment as private.
Fresh issues identify scale and document-shape limits
Release v0.2.11 and the latest repository push both landed on August 25, 2026. The release added the unified local and cloud SDK, Flash indexing, agent adapters, stricter configuration validation, and clearer error propagation. GitHub lists 159 open issues and pull requests combined; a search excluding pull requests found 68 open issues.
Current reports give useful trial cases. list_documents() returns every document instead of offering pagination, which can hurt large workspaces. Incremental index updates for large documents remain a request. Other reports concern duplicate summaries for sibling nodes on one page, overly long fallback titles, a missing leaf-node key, non-strict model JSON crashing a build, and concurrent model requests hitting HTTP 429. Verify the issues that match your document and provider setup.
The published accuracy claim is not our measurement
The README links a separate benchmark repository and reports results for financial-document questions. We did not reproduce those figures, so they should be read as the project's evaluation rather than a MrKeyoor finding. Retrieval tests are particularly sensitive to document selection, question construction, answer grading, model version, and provider behavior. A finance score does not establish performance on legal exhibits, medical scans, or an internal engineering manual.
A useful pilot needs questions whose answers and source pages are known beforehand. Include cases with tables, appendices, repeated headings, cross-section references, and wording that differs from the query. Compare PageIndex with a competent vector or hybrid baseline. Also record abstentions and unsupported answers. The method earns its place only if the tree improves decisions on your documents, not because its architecture sounds more human.
Choose it for structured PDFs, not general RAG plumbing
LlamaIndex and Haystack expose many retrieval components, stores, loaders, and evaluation paths. They require more design but give teams control over chunking, ranking, metadata, and orchestration. RAGFlow is closer to a shared document application and puts more emphasis on parsing and OCR. PageIndex is narrower: a tree-based document index, reasoning retrieval, and a convenient agent-facing SDK.
Our 345 passing tests make the local package easy to trial. The local-cloud boundary is well stated, the repository is current, and setup does not require a vector database. The method still consumes model calls, local mode does not solve scans, and some workspace operations remain rough. Start with a fixed set of long, text-heavy PDFs. If it beats your current retrieval on answer correctness and source traceability, keep it; otherwise the broader frameworks leave more room to adjust the pipeline.

