Skip to content

Repository facts for agents and tools

Repository facts you can trace and reuse.

Start an investigation with what is already known: a project’s purpose, reported commands, docs and owners, with sources and age attached. DotRepo makes that context available through HTTP, MCP and local .repo files.

Works for indexed repositories before maintainers adopt .repo. Coverage is partial: when a field is missing, stale or conflicting, read the source.

Experimental: a decision workflow that checks candidate repositories against explicit requirements and keeps the evidence for reuse. It is in the source repository, not the released tools or this API. Workflow and evidence.

618 repositories · exported 2026-11-04 03:44 UTC · partial coverage

613 records within 30 days 5 stale · 0 unknown record ages at export time. A new export does not refresh the underlying facts.

Snapshot revalidation due: 2026-11-11 03:44 UTC. Export time is not the last upstream check.

Look up a repository

Paste a repository URL or identity

Get the available facts, record age, evidence, and unknowns. If a repository is missing, use its upstream documentation.

Accepted inputs: owner/repo, host/owner/repo, a GitHub URL, or a hosted dotrepo profile, summary, or trust URL.

Examples

BurntSushi/ripgrep Defaults to github.com for shorthand input.
github.com/astral-sh/uv Explicit host plus identity segments.
https://github.com/pydantic/pydantic Full repository URL.
https://dotrepo.org/v0/repos/github.com/BurntSushi/ripgrep/index.json Hosted profile, summary, or trust URL pasted back into the lookup box.

A profile from this export

github.com/pydantic/pydantic · fresh · 7 days old

PurposeData validation using Python type hints
Buildmake all
Testmake test
Documentationhttps://pydantic.dev/docs/validation/latest/get-started/
Security reportinghttps://github.com/pydantic/pydantic/security/policy

Record generated: 2026-10-27T18:28:36.783105Z. Status: verified. Verification records pipeline checks, not human review or a guarantee of correctness.

Inspect supporting evidence · Full profile JSON

Use a profile in your tool

Request a profile, check the underlying record age and requested fields, and fall back to upstream sources on a miss, stale record, or conflict.

curl https://dotrepo.org/v0/repos/github.com/pydantic/pydantic/profile.json

Connect over MCP

With Rust installed, install the stable server:

cargo install dotrepo-mcp --version 1.0.4 --locked

Add this stdio server to your MCP client’s configuration (the surrounding configuration format may vary):

{"mcpServers": {"dotrepo": {"command": "dotrepo-mcp", "args": []}}}

Restart the client, then ask it to call dotrepo.lookup with repositoryUrl: "https://github.com/pydantic/pydantic" and path: "repo.test". It returns the value with its trust context. The published 2.0.0-rc.2 preview adds full profile output. Stable 1.0.4 and RC2 include the contained-write protections; RC1 predates them, so do not use RC1. Compare versions.

Publish from existing sources. Investigate with context.

Publish from existing sources

Import manifests and documentation, review ambiguity, and check drift in supported files. Maintainers control native declarations; observed overlays retain their separate provenance.

Use the evidence you need

Use metadata for orientation. Check explicit requirements against scoped source evidence. Treat runtime execution as a separate authorized task.

Keep useful work

Retain evidence at its source revision and revisit what changed or remains uncertain. Source identity, correctness and freshness answer different questions.

DotRepo and its sister project PageDigest are Lazy Collective projects: less repeated fetching, parsing and investigation for publishers and readers alike. How the projects relate.

How maintainer authority works

Maintainers can take authority over a generated overlay. This example preserves the earlier overlay and the accepted claim so consumers can inspect the handoff. A verified overlay means the pipeline resolved its checks; it does not mean human review, complete coverage, or guaranteed correctness.

ries-rs

github.com/maxwellsantoro/ries-rs

High-performance Rust reimplementation of Robert Munafo’s RIES (RILYBOT Inverse Equation Solver). Given any target number, it discovers elegant algebraic expressions and equations that evaluate exactly to it — now with parallel search, PSLQ integer relations, Python bindings, and WebAssembly support.

claim state: accepted The current exported claim state for the selected record.
handoff: superseded The reviewed overlay remains visible while the accepted maintainer claim points to the canonical source of truth.
confidence: high Provenance: imported, verified
Bootstrapped from `README.md`, `.github/CODEOWNERS`, `.github/SECURITY.md`, `package.json`, and `ries-py/pyproject.toml`. SECURITY.md provided a policy or reporting URL rather than a direct mailbox, so `security_contact... Selection stays explained instead of being reduced to a bare answer.

Keep the source trail

  1. Generated recordFacts gathered from upstream files, with evidence preserved.
  2. Maintainer claimA claim identifies the maintainer-owned record. Acceptance is reviewed separately.
  3. Selected recordThe selection explains which record wins; earlier evidence and conflicts remain inspectable.
Inspect this export’s selection JSON
{
  "identity": {
    "host": "github.com",
    "owner": "maxwellsantoro",
    "repo": "ries-rs"
  },
  "selection": {
    "reason": "only_matching_record",
    "recordStatus": "verified",
    "claim": {
      "state": "accepted",
      "handoff": "superseded"
    },
    "trust": {
      "confidence": "high",
      "provenance": [
        "imported",
        "verified"
      ],
      "notes": "Bootstrapped from `README.md`, `.github/CODEOWNERS`, `.github/SECURITY.md`, `package.json`, and `ries-py/pyproject.toml`. SECURITY.md provided a policy or reporting URL rather than a direct mailbox, so `security_contact..."
    },
    "artifacts": {
      "reviewPath": "repos/github.com/maxwellsantoro/ries-rs/claims/2026-03-16-maintainer-claim-01/review.md",
      "evidencePath": "repos/github.com/maxwellsantoro/ries-rs/evidence.md"
    }
  },
  "conflicts": []
}

Review path: repos/github.com/maxwellsantoro/ries-rs/claims/2026-03-16-maintainer-claim-01/review.md · Evidence path: repos/github.com/maxwellsantoro/ries-rs/evidence.md

Public API reference

Stable entry points

The public surface is export-first. Summary, trust, inventory, freshness, and query responses all come from the same published snapshot.

/v0/meta.json Snapshot freshness and digest metadata.
/v0/health.json Machine-checkable origin, snapshot, count, and digest coherence.
/v0/repos/index.json Repository inventory and navigation links.
/v0/repos/<host>/<owner>/<repo>/index.json Per-repository summary surface.
/v0/repos/<host>/<owner>/<repo>/trust.json Selection, provenance, and claim context.
/v0/repos/<host>/<owner>/<repo>/query?path=... Same-origin trust-aware field queries.
read-only / same-origin / claim-aware No mutation API, one canonical host, and trust context stays visible on every query path.

What a query returns

The query route returns the selected value together with selection, trust, and conflict context. This truncated example is derived from the current exported snapshot.

/v0/repos/github.com/0x192/universal-android-debloater/query?path=repo.description Hosted query route for repo.description; full value-bound assessments: profile JSON.
Inspect the example query response
{
  "path": "repo.description",
  "value": "Cross-platform GUI written in Rust using ADB to debloat non-rooted android devices. Improve your privacy, the security and battery life of your device.",
  "selection": {
    "reason": "only_matching_record",
    "recordStatus": "inferred",
    "trust": {
      "confidence": "medium",
      "provenance": [
        "imported",
        "inferred"
      ],
      "notes": "Bootstrapped from `README.md` and `Cargo.toml`. Inferred `repo.build` from `Cargo.toml`. Inferred `repo.test` from `Cargo.toml`. This is an overlay bootstrap, not a maintainer-controlled canonical record."
    },
    "evidencePath": "repos/github.com/0x192/universal-android-debloater/evidence.md"
  },
  "conflicts": []
}

Full responses also include freshness, repository identity, and navigation links.

Indexed repositories

Well-known projects from the current export. Use the repository catalog to search the complete index.

Indexed repository

grafana

github.com/grafana/grafana

The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.

Indexed repository

Playwright

github.com/microsoft/playwright

Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.

Browse all 618 repositories

Incremental fetching with PageDigest

This export publishes a PageDigest manifest. A reader that kept the previous export can fetch it first and download only changed records. The figures below are computed from the export, not measured reader traffic.

PageDigest dogfood

dotrepo publishes thousands of small JSON records. PageDigest lets a consumer check the whole covered set first, then fetch only records whose content actually changed. These numbers come from the current export's /v0/stats.json.

2,474 tracked records Records covered by /.well-known/pagedigest.json.
14 needing fetch New or changed records in this export cycle.
2,460 skippable fetches Unchanged covered records. Their manifest entry counts as revalidation (SPEC §5.1.2), so a reader holding them makes no request.
5.7 MB skippable Unchanged payload bytes this cycle out of 7.1 MB covered.
site_rev 34 Manifest size 664.9 KB; generated 2026-11-04 03:44 UTC.