> For a complete page index of the Captain API documentation, fetch https://docs.captain.dev/llms.txt?excludeSpec=true

# Compass

> Compass is Captain's embedded vector and full-text search engine. It runs on your hardware, supports multiple embedding models on the same collection, and lets you upgrade those models without downtime.

## Agent Quick Reference - Compass Overview

* **Base URL**: `http://localhost:4001` (self-hosted) or your Captain-hosted endpoint, e.g. `$COMPASS_BASE_URL`
* **Auth**: hosted Compass deployments require `Authorization: Bearer $COMPASS_API_KEY` on every request.
* **Key constraint**: Customer data never leaves the host. No external API calls for embeddings in fully-offline mode.
* **Core concepts**: collections, vector spaces (named, multiple per collection), chunks (with optional `parent_ref`), TAMS segments (`doc_type` + `timerange_start_ms`/`timerange_end_ms`).
* **Hybrid search**: RRF merges BM25 and HNSW candidates. `mode: "hybrid"` is the default for best results.
* **Common pitfall**: `timerange_start_ms` and `timerange_end_ms` are integer milliseconds. Not seconds, not ISO date strings.

> **Info**
>
> Hosted Compass is closed to new customers. Self-hosted deployments stay
> supported and these pages stay current for them. If you are starting something
> new, use [Captain Search](/guides/introduction).

![Compass](/_fern-files/runcaptain.docs.buildwithfern.com/10b3774428032eb0b1ca9d093d71b089100990063d0fd5555c6d15307577e5dd/docs/assets/compass-logo.svg)

Compass is a search engine that runs as a single binary on your hardware. Two things make it different from a typical vector database:

* **Run multiple embedding models on the same collection.** A text model for transcripts, a multimodal model for video frames. Search one space, or merge results across all of them in one query.
* **Upgrade embedding models without downtime.** Compass re-embeds in the background and atomically swaps the default when the new space is ready. The collection keeps serving queries the whole time.

In addition to vector search, it also combines BM25 full-text search (via Tantivy) with HNSW vector search (via USearch), merges them with Reciprocal Rank Fusion.

## Other notable features

* Built-in embedding inference (BGE-small bundled, point at a GPU endpoint for larger models)
* Video-specific querying (BBC TAMS support)
* Custom metadata sidecar support
* Recency bias and highly customizable metadata filtering
* Free and open-source ([github.com/runcaptain/compass](https://github.com/runcaptain/compass))
* Cloud-hosted options ([contact sales](https://captain.dev/contact))

## Who it's for

* You want full control over your embedding setup: model change management, evaluation pipelines, and hybrid search tuning.
* You're building an agent that retrieves from a mixed collection of video transcripts, sidecar metadata, visual frames, and text documents, and you need one query to search all of it.
* Your data has to stay in your VPC. You can't send content to a third-party API at query time.