Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

harborrag

harborrag is the public SDK facade and installation bundle for HarborRAG, a modular, provider-agnostic RAG framework for engineering knowledge. Importing it does not initialize provider clients or perform network I/O.

Install

pip install "harborrag[all]"          # everything
pip install "harborrag[local]"        # local end-to-end ingestion and retrieval
pip install "harborrag[cli,qdrant]"   # or just what you need

A bare pip install harborrag installs the framework - contracts, engine, memory, adapters, and runtime - but deliberately no third-party provider clients. There is no vector store, no graph store, and no model client until you add an extra:

Extra Adds
local Qdrant, FalkorDB, S3, model client, chunking, control plane, parsers, Docling PDF, tables
chat the model client used by chat, embeddings, and reranking
cli the harborrag command
server the HTTP API plus the production and Temporal runtime
mcp the MCP transport
temporal the Temporal client for durable ingestion
qdrant, falkordb, postgres, s3, redis one provider each
all everything above; a superset of local

Conversation memory (harborrag-memory) is already a required dependency, so it is available in every install. The harborrag[memory] extra exists for explicitness and adds nothing new.

See Installation for PDF/OCR backends, editable installs, and platform notes.

Ingest and retrieve

HarborRAG exposes four async service facades - ingestion, retrieval, graph, and chat - behind one async context manager. Connectors are declared by name in your connector catalog, so credentials stay as environment references:

import asyncio

from harborrag import AccessContext, HarborRAG, IngestionRequest, RetrievalRequest


async def main() -> None:
    access = AccessContext(principal_id="user-1", tenant_id="tenant-1")

    async with HarborRAG.from_config("config/harborrag.example.yaml") as harbor:
        await harbor.ingestion.run(
            IngestionRequest(access=access, connector_name="harborrag-workspace")
        )
        results = await harbor.retrieval.search(
            RetrievalRequest(access=access, query="deployment requirements")
        )
        print(results)


asyncio.run(main())

config/harborrag.example.yaml ships in the repository checkout. Copy it next to your application and point from_config at your own path.

Chat

Chat needs a model provider, so install harborrag[chat] (or any extra that includes it, such as local, server, or all) and configure credentials first:

from harborrag import ChatPrompt, HarborChatMessage, HarborChatRequest, HarborRAG

async with HarborRAG.from_config("config/harborrag.example.yaml") as harbor:
    response = await harbor.chat.complete(
        HarborChatRequest(messages=(HarborChatMessage.user("Summarize the results"),)),
        prompt=ChatPrompt.CONCISE,
    )

Direct versus durable execution

Direct execution is the default: ingestion.run does the work inline.

The durable controls - submit, status, pause, resume, and cancel - need execution_mode: temporal in your configuration and the harborrag[temporal] extra. Calling them without both raises ExecutionCapabilityError:

task = await harbor.ingestion.submit(request)
status = await harbor.ingestion.status(task.task_id)
await harbor.ingestion.pause(task.task_id)
await harbor.ingestion.resume(task.task_id)
await harbor.ingestion.cancel(task.task_id)

harborrag re-exports stable APIs from the workspace packages. Install one directly for a narrower dependency tree:

Package Contains
harborrag-core provider-neutral contracts and domain models
harborrag-adapters connectors, parsers, model clients, repositories
harborrag-engine ingestion and retrieval orchestration
harborrag-memory scope-aware conversation memory
harborrag-runtime production composition and Temporal orchestration
harborrag-app CLI and HTTP API
harborrag-mcp-server MCP tools and transport

Development

Tests for this package live in packages/harborrag/tests/. Run them from the repository root:

uv run pytest packages/harborrag/tests

Licensed under the Apache License 2.0.

Metadata

Release files for harborrag 2.0.0a2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for harborrag 2.0.0a2
File Size Uploaded Provenance Actions
harborrag-2.0.0a2.tar.gz 11.4 kB With provenance Details for harborrag-2.0.0a2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for harborrag 2.0.0a2
File Interpreter ABI Platform Actions
harborrag-2.0.0a2-py3-none-any.whl Python 3 none any Details for harborrag-2.0.0a2-py3-none-any.whl

Total release size: 20.2 kB

Release files / harborrag-2.0.0a2.tar.gz

Download URL harborrag-2.0.0a2.tar.gz
Size 11.4 kB
Tags Source
SHA-256 checksum
How to use checksums
bdb75f35d74e52e7ceba14e8bddf4c8bfc0e7ca8f8f8fe02c642a7827f8777e8
BLAKE2b-256 checksum
How to use checksums
ad0d0a1c4c90e6a8016dd63333bc81e5afbae775b819e08ac79aa74d0daff166
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Release files / harborrag-2.0.0a2-py3-none-any.whl

Download URL harborrag-2.0.0a2-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fdb9850126977f4bae95771e0f0eb5dec234dfddf1b430981f436e5e7b466899
BLAKE2b-256 checksum
How to use checksums
c0a057277d28fc46bd80ff359ba20214e21a9dd794cdd3f0e2d92206fc1a34d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Security for harborrag 2.0.0a2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for harborrag-2.0.0a2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page