Git repositories
Manage the Git repositories that feed ctx| search, Chat, MCP, and the knowledge graph.
Repositories are the primary source of truth for ctx|. Adding a repository gives the backend a Git URL to track, starts ingestion, and makes that code available to search, Chat, MCP, and knowledge graph extraction.

What a Repository Enables
Each repository belongs to one organization and contributes to four surfaces:
- Codesearch: cloned and indexed by Zoekt for fast text, file, and symbol retrieval.
- Chat: available to the conversation graph as source material.
- MCP: available to
ctx_advisorand repo explorer tools for agent clients. - Knowledge graph: analyzed into extracted nodes and claims during ingestion.
Repository state is visible in the app as pending indexing, indexing, or indexed. The UI polls while indexing is in progress.
Core Workflows
Connect GitHub or add a single Git URL.
Manage repositoriesReview selected repositories and GitHub App settings.
Unindex / reindexRemove indexed context and start ingestion again when needed.
Install MCPs via PROpen pull requests that add ctx| MCP config to selected repos.
Data Model
At the API level, a repository includes:
| Field | Meaning |
|---|---|
id | Stable repository ID, prefixed with repo_. |
orgId | Internal organization ID that scopes the repository. |
name | Human-readable name, usually owner/repo for GitHub sources. |
gitUrl | Clone URL used by ingestion. |
indexReady | Whether the default checkout has completed search indexing. |
lastIngestedHash | Last commit hash processed by ingestion, when known. |
zoektRepoId | Internal search index ID for the default checkout. |
The public UI works from the organization slug in the path:
/:orgSlug/repositories
/:orgSlug/repositories/github/setupThe versioned REST API is scoped the same way:
/:orgSlug/api/v1/repositories