repovine
Repository context assembled and conveyed to coding agents.
The repository knowledge layer
A repository-agnostic core. Across supported languages, frameworks, and infrastructure formats, repovine normalizes repository structure into one queryable model.
Contract boundaries by design. The graph connects repository units through shared code, template, and runtime contracts. These boundaries support repository-scale navigation, dependency impact, runtime flow, and configuration.
Versioned knowledge with explicit ownership. Version-controlled annotations attach intent, invariants, risks, and operational knowledge to graph nodes. Agents and developers author them; repovine checks freshness and structural consistency against repository state.
Together, these layers support intent-driven, context-compiled, contract-verified development. Task intent guides MCP context assembly, and observable claims are checked against repository state.
Checkout-local by design. The live graph and indexes are built from each checkout's working tree and run in memory. Configuration and authored knowledge travel through Git. No database is required.
Benchmarks. Across correctness and restraint tasks drawn from public software repositories, 90% of Repovine runs passed their case-specific diff gate, compared with 10.6% of baseline runs. Explore the results.
Quick start
Start in an existing repository:
npx repovine setup claude # or codex, cursor, all
setup connects the selected client to repovine, adds repovine skills, hooks, and instructions, and builds the repository graph.
The graph model
repovine deterministically derives a graph of cross-unit contracts from repository state. Source and infrastructure plugins translate stack-specific structures into the same vocabulary of packages, modules, exported symbols, templates, runtime resources, and their relationships—so navigation, dependency impact, runtime flow, and configuration work consistently across supported stacks. Explore the design rationale.
How it works
The engine and MCP provide the base workflow. Interactive clients use it directly. For explicit protocol runs, Delivery Protocol adds a structured assignment → result → compliance contract around the same workflow.
Client
In clients such as Claude Code, Codex, or Cursor, the agent uses repovine MCP directly while the developer stays in the loop.
graph LR
SRC["sources"] --> S1["Stage 1: gather facts"]
S1 --> S2["Stage 2: build graph"]
S2 --> ANN["versioned annotations on graph nodes"]
A["agents and developers"] --> ANN
S2 --> S3["Stage 3: build search index"]
ANN --> S3
S3 --> MCP["MCP tools"]
ANN --> MCP
MCP -->|"bounded context"| C["Cursor, Claude Code, or Codex"]
Delivery Protocol
Delivery Protocol defines the assignment → structured result → compliance report contract. Core owns the schemas, projections, and validators that ground the protocol in observable repository state.
The agent uses MCP to access repository context while it works. The repovine CLI validates the assignment and result and produces the compliance report.
graph LR
IN["assignment"] --> AV["assignment validation"]
AV --> A["agent"]
A <-->|"repository context during the run"| MCP["repovine MCP"]
A --> R["structured result"]
AV -->|"validated assignment"| V["repovine compliance validation"]
R --> V
S["observable repository state + recorded context"] --> V
V --> OUT["compliance report"]
repovine validates schema conformance, assignment linkage, and claims it can recompute from the graph, annotations, recorded MCP context, and an optional revision delta. The compliance report covers protocol conformance and repository grounding; behavioral correctness and merge readiness are outside the protocol's scope.
The runnable LangGraph harness demo applies the protocol in an end-to-end agent workflow. Its orchestration topology, sandbox, retries, worktree isolation, and provider behavior are demo-specific implementation choices. See the Delivery Protocol integration guide.
MCP tools
Each tool returns a scoped, structured response.
Query tools, with typical questions for a large repository:
Maintenance tools service the graph and annotations:
Setup and CLI
setup adds the following repovine integrations to the workspace while preserving existing configuration and project specialists:
STDIO is the only supported MCP transport in v1. For remote, devcontainer, WSL, VM, or devbox use, launch the repovine subprocess inside that environment so it runs in the checkout being analyzed.
Supported stacks
IaC parsers turn infra files into runtime-resource nodes plus links to the code and images behind them. They cover selected resources and relationships rather than complete format schemas. Coverage is under active development, and extending the existing extractors is a contribution area. Design detail: DESIGN.md.
Requires Node.js 22+ and one indexable root: tsconfig.json, pyproject.toml/setup.py (needs python3), or IaC files. Repositories with supported IaC files can be indexed without a source project; the graph contains infrastructure modules and runtime resources, but no code modules.
Repository files
Defaults work for most TypeScript repositories. Config reference: docs/workspace-files.md.
Status
Preview (0.1.0), usable today and open to contributions. The graph schema and @repovine/plugin-sdk still change.
Contribute
repovine's plugin architecture provides two public producer surfaces for extending language and infrastructure coverage, both exposed by @repovine/plugin-sdk:
Built-in and third-party producers share the same public plugin contracts; core validates their output and owns graph identities and ontology. See the plugin guide and runnable Go source plugin, IaC plugin, and other examples.
Learn more
- DESIGN.md: system boundaries, graph contract, trust model, and limitations
- CONTRIBUTING.md: dev setup, quality gates
- Documentation: guides, references, and the TODO app walkthrough
- Platform support: per-surface OS tiers, prerequisites, and promotion rules
- examples: runnable plugins and the Delivery Protocol harness demo
License
MIT. See LICENSE.