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)

Related packages

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.

Release files for harborrag 2.0.0a1

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.0a1
File Size Uploaded
harborrag-2.0.0a1.tar.gz 11.1 kB Details

Built distribution (wheel)

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

Total release size: 19.8 kB

Release files / harborrag-2.0.0a1.tar.gz

Download URL harborrag-2.0.0a1.tar.gz
Size 11.1 kB
Tags Source
SHA-256 checksum
How to use checksums
00f1a92503739e34be69a3d057bc7fbcff9672af66f5bdef8d9f607bb2566f7d
BLAKE2b-256 checksum
How to use checksums
de6a9051cdf9c7d99d203487328c778b325b1b0392d9f0508a4a160d5c5fb80e
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 Sep 10, 2026.

Transparency log

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

Download URL harborrag-2.0.0a1-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e6fb4bd3b9ebbdbbc4354b990b4324519990750b0c199356c8c3e3451687ee3d
BLAKE2b-256 checksum
How to use checksums
64b91e36b76fd190d893c73c2fbe901c3299bb3cebec422bf07e98d93590b23e
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 Sep 10, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.0a1 This release

2 release files

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