Back to the catalog

io.github.looptech-ai/understand-quickly

Public registry of code-knowledge graphs for AI agents with schema validation and drift detection.

Open source Open in the app JSON README (API)

About

Public registry of code-knowledge graphs for AI agents with schema validation and drift detection.

Details

Kind
MCP servers
Topic
AI, RAG & memory
Publisher
looptech-ai
Origin
official
Category
ferramentas
Transport
local
Version
0.1.1
Stars
47
Forks
2
Last push
2026-08-08T16:44:30Z
Repository state
ativo
Language
JavaScript
License
Apache-2.0
Added
2026-08-29 04:00:26
Updated
2026-08-29 04:00:26
Origin id
io.github.looptech-ai/understand-quickly

README

<div align="center">

# ๐Ÿง  understand-quickly

**A public, machine-readable registry of code-knowledge graphs.**

Point AI agents at any indexed repo and they get a current, schema-validated graph โ€” one URL, one fetch.

<!-- Row 1 โ€” repo health -->
[![sync](https://github.com/looptech-ai/understand-quickly/actions/workflows/sync.yml/badge.svg)](https://github.com/looptech-ai/understand-quickly/actions/workflows/sync.yml)
[![pages](https://github.com/looptech-ai/understand-quickly/actions/workflows/pages.yml/badge.svg)](https://looptech-ai.github.io/understand-quickly/)
[![release](https://img.shields.io/github/v/release/looptech-ai/understand-quickly?label=release&sort=semver)](https://github.com/looptech-ai/understand-quickly/releases)
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
[![Data License](https://img.shields.io/badge/Data%20License-UQ--Data%201.0-orange.svg)](DATA-LICENSE.md)
[![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)
[![issues](https://img.shields.io/github/issues/looptech-ai/understand-quickly)](https://github.com/looptech-ai/understand-quickly/issues)
[![last commit](https://img.shields.io/github/last-commit/looptech-ai/understand-quickly)](https://github.com/looptech-ai/understand-quickly/commits/main)
[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/looptech-ai/understand-quickly/badge)](https://scorecard.dev/viewer/?uri=github.com/looptech-ai/understand-quickly)

<!-- Row 2 โ€” distribution surfaces -->
[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-listed-blue)](https://registry.modelcontextprotocol.io)
[![npm CLI](https://img.shields.io/npm/v/@looptech-ai/understand-quickly-cli?label=npm%20cli)](https://www.npmjs.com/package/@looptech-ai/understand-quickly-cli)
[![npm MCP](https://img.shields.io/npm/v/@looptech-ai/understand-quickly-mcp?label=npm%20mcp)](https://www.npmjs.com/package/@looptech-ai/understand-quickly-mcp)
[![PyPI](https://img.shields.io/pypi/v/understand-quickly)](https://pypi.org/project/understand-quickly/)
[![Marketplace](https://img.shields.io/badge/marketplace-uq--publish--action-orange)](https://github.com/marketplace/actions/understand-quickly-publish)
[![npm downloads CLI](https://img.shields.io/npm/dm/@looptech-ai/understand-quickly-cli?label=cli%20dl%2Fmo)](https://www.npmjs.com/package/@looptech-ai/understand-quickly-cli)
[![npm downloads MCP](https://img.shields.io/npm/dm/@looptech-ai/understand-quickly-mcp?label=mcp%20dl%2Fmo)](https://www.npmjs.com/package/@looptech-ai/understand-quickly-mcp)
[![PyPI downloads](https://img.shields.io/pypi/dm/understand-quickly?label=pypi%20dl%2Fmo)](https://pypi.org/project/understand-quickly/)

<!-- LATEST-START -->
> **Latest:** v0.4.0 โ€” CLI 0.1.3, MCP 0.1.2, Python SDK 0.1.1, GH Action v0.1.0. [CHANGELOG โ†’](CHANGELOG.md)
<!-- LATEST-END -->

[**Browse โ†’**](https://looptech-ai.github.io/understand-quickly/) ยท [**Add your repo (wizard)**](https://looptech-ai.github.io/understand-quickly/add.html) ยท [**Quickstart**](#quickstart) ยท [**FAQ (plain English)**](docs/faq.md) ยท [**Alternatives**](docs/alternatives.md) ยท [**Badge**](docs/badge.md) ยท [**Contributing**](CONTRIBUTING.md)

</div>

---

## New here? Read this first ๐Ÿ‘‹

**It's a public directory of "map files" for codebases.** Each entry points at a JSON file (a *knowledge graph* or *context bundle*) that describes a project's structure โ€” files, functions, modules, how they connect โ€” in a shape that AI tools can read in one network request.

If you're a **project maintainer**, you can add your repo so AI assistants can understand it instantly. If you're an **AI agent or tooling developer**, you can fetch any indexed graph by URL with no auth and no SDK.

- **No code required to be listed.** Use the [wizard](https://looptech-ai.github.io/understand-quickly/add.html) โ€” fill four fields, the bot opens the PR.
- **No infrastructure, no costs.** Graphs stay in your repo; we only store pointers.
- **Open and public.** Apache 2.0 code; permissive [Data License](DATA-LICENSE.md) for the registry.

> First time? The [FAQ](docs/faq.md) answers "what is a knowledge graph?", "do I need this?", and "what happens after I submit?" in plain language.

---

## Quickstart

### I'm an AI agent / SDK user

```bash
curl -fsSL https://looptech-ai.github.io/understand-quickly/registry.json
```

Pick entries with `status: "ok"`. Fetch `entry.graph_url`. Cache by `last_sha`. That's the whole API.

### I want to register my repo

Pick the path that fits:

- ๐Ÿ–ฑ๏ธ **Wizard:** [Add your repo โ†’](https://looptech-ai.github.io/understand-quickly/add.html). Fills the issue for you; the bot opens the PR.
- ๐Ÿ’ป **CLI:** `npx @looptech-ai/understand-quickly-cli add` โ€” auto-detects everything. ([npm](https://www.npmjs.com/package/@looptech-ai/understand-quickly-cli))
- โœ๏ธ **Manual PR:** see [Add your repo](#add-your-repo) below.

### I want to use it from Claude / Codex / Cursor (MCP)

Three ways, pick whichever your MCP client likes best:

```jsonc
{
  "mcpServers": {
    // 1. Via the MCP Registry โ€” package name; client resolves it.
    "understand-quickly": {
      "package": "io.github.looptech-ai/understand-quickly"
    },

    // 2. Via npm โ€” install once, run the bin.
    //    npm i -g @looptech-ai/understand-quickly-mcp
    "understand-quickly-npm": {
      "command": "understand-quickly-mcp"
    },

    // 3. Via tsx โ€” for hacking on the source in this repo.
    "understand-quickly-dev": {
      "command": "npx",
      "args": ["tsx", "/path/to/understand-quickly/mcp/src/index.ts"]
    }
  }
}
```

Tools: `list_repos`, `get_graph`, `search_concepts`. See [`mcp/README.md`](mcp/README.md).

### I'm a Python developer

```bash
pip install understand-quickly
```

```python
from understand_quickly import Registry
print(Registry().list(status="ok"))
```

See [`python-sdk/README.md`](python-sdk/README.md).

### I'm a developer / contributor

```bash
git clone https://github.com/looptech-ai/understand-quickly
cd understand-quickly
npm install && npm test
```

Then read [`CONTRIBUTING.md`](CONTRIBUTING.md).

---

## How it works

```
                 โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                 โ”‚   looptech-ai/       โ”‚
                 โ”‚  understand-quickly  โ”‚
                 โ”‚                      โ”‚
                 โ”‚  registry.json       โ”‚ โ† canonical pointers
                 โ”‚  schemas/            โ”‚ โ† per-format JSON Schemas
                 โ”‚  README.md           โ”‚ โ† auto-rendered table
                 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
            PR / dispatch โ”‚ raw.githubusercontent.com
                          โ”‚
        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        โ–ผ                                     โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Source repo with โ”‚                  โ”‚ AI agent / MCP /    โ”‚
โ”‚ knowledge graph  โ”‚                  โ”‚ human reader        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
```

- **Storage:** graphs live in source repos. The registry stores only pointers.
- **Validation:** every PR runs schema checks on `registry.json` and the graph body.
- **Freshness:** nightly sync resyncs every entry; source repos can opt-in to instant refresh via `repository_dispatch`.

## Supported formats

| Format | Source tool | Tier |
| --- | --- | --- |
| `understand-anything@1` | [Understand-Anything](https://github.com/Lum1104/Understand-Anything) | first-class |
| `gitnexus@1` | [GitNexus](https://github.com/abhigyanpatwari/GitNexus) | first-class |
| `code-review-graph@1` | [code-review-graph](https://github.com/tirth8205/code-review-graph) | first-class |
| `bundle@1` | repo-context packers ([Repomix](https://github.com/yamadashy/repomix), [gitingest](https://github.com/cyclotruc/gitingest), [codebase-digest](https://github.com/kamilstanuch/codebase-digest), โ€ฆ) | first-class |
| `generic@1` | any `{nodes, edges}` graph | fallback |

Adding a new format: PR `schemas/<name>@<int>.json` + an `ok` and `bad` fixture under `schemas/__fixtures__/<name>/`. Full instructions in [CONTRIBUTING.md](CONTRIBUTING.md).

Upstream tools that produce these formats can integrate via [the integration protocol](docs/integrations/protocol.md). PR templates are in `docs/integrations/`.

### Integrating an upstream tool

Easiest path: drop the [`looptech-ai/uq-publish-action`](https://github.com/looptech-ai/uq-publish-action) into your release/build workflow.

```yaml
- uses: looptech-ai/uq-publish-action@v0.1.0
  with:
    graph-path: '.your-tool/graph.json'
    format: 'your-format@1'
    token: ${{ secrets.UNDERSTAND_QUICKLY_TOKEN }}
```

The Action stamps `metadata.{tool, tool_version, generated_at, commit}` into the graph and fires a `repository_dispatch` (`event_type=sync-entry`) at this registry. See [`docs/integrations/protocol.md`](docs/integrations/protocol.md) for the full producer contract.

### Embed an indexed-by badge

Once registered, link a status badge in your repo's README. Lower-case the owner/repo and replace `/` with `--` โ€” for example `looptech-ai/uq-publish-action` becomes `looptech-ai--uq-publish-action`:

```markdown
[![indexed by understand-quickly](https://looptech-ai.github.io/understand-quickly/badges/OWNER--REPO.svg)](https://looptech-ai.github.io/understand-quickly/?entry=OWNER/REPO)
```

The badge auto-updates as your entry's status changes. See [`docs/badge.md`](docs/badge.md) for the full reference.

### Discovery (`.well-known/code-graph`)

Agents can discover this registry's contents without going through `registry.json`:

```bash
curl -fsSL https://looptech-ai.github.io/understand-quickly/.well-known/repos.json
# returns { schema_version, repos: [{id, format, graph_url, last_synced, status, source_sha}] }
```

To make YOUR repo discoverable without registering here, publish a `.well-known/code-graph.json` at the root of your repo. See the [Code-Knowledge-Graph Protocol (CKGP v1) spec](docs/spec/code-graph-protocol.md).

## Distribution

| Channel | Install |
|---|---|
| Pages browser + JSON | <https://looptech-ai.github.io/understand-quickly/> |
| MCP Registry | `io.github.looptech-ai/understand-quickly` (listed in <https://registry.modelcontextprotocol.io>) |
| npm CLI | `npm i -g @looptech-ai/understand-quickly-cli` |
| npm MCP server | `npm i -g @looptech-ai/understand-quickly-mcp` |
| PyPI SDK | `pip install understand-quickly` |
| GitHub Action | `looptech-ai/uq-publish-action@v0.1.0` |

All MIT-or-Apache-2.0 source-licensed. All free to use. The registry data itself is covered by the [Understand-Quickly Data License 1.0](DATA-LICENSE.md).

## Add your repo

The fastest path is the [wizard](https://looptech-ai.github.io/understand-quickly/add.html) or `npx @looptech-ai/understand-quickly-cli add`. The manual flow:

1. Run a [supported tool](#supported-formats) locally and commit its output to your repo.
2. Fork this repo.
3. Append an entry to `registry.json`:

   ```json
   {
     "id": "you/yourrepo",
     "owner": "you",
     "repo": "yourrepo",
     "format": "understand-anything@1",
     "graph_url": "https://raw.githubusercontent.com/you/yourrepo/main/.understand-anything/knowledge-graph.json",
     "description": "one-liner about your project",
     "tags": ["python", "agents"]
   }
   ```

4. Open a PR. Validation runs automatically.

### Optional: instant refresh on push

Drop [`docs/publish-template.yml`](docs/publish-template.yml) into your repo as `.github/workflows/understand-quickly-publish.yml`. Add a fine-grained `UNDERSTAND_QUICKLY_TOKEN` PAT (scoped to `repository_dispatch` on this registry) to your repo secrets. Every push that touches your graph file triggers an immediate registry sync.

## Registry

> Auto-generated. Do not hand-edit between the markers.

<!-- BEGIN ENTRIES -->
| Repo | Format | Description | Status | Last synced |
| --- | --- | --- | :---: | --- |
| [understand-quickly/demo-code-review-graph](https://github.com/understand-quickly/demo-code-review-graph) | `code-review-graph@1` | Demo entry: a sample code-review-graph export covering files, classes, and tests. | โœ… ok | 2026-06-25 |
| [understand-quickly/demo-gitnexus](https://github.com/understand-quickly/demo-gitnexus) | `gitnexus@1` | Demo entry: a sample GitNexus graph modeled on its own codebase. | โœ… ok | 2026-06-25 |
| [understand-quickly/demo-understand-anything](https://github.com/understand-quickly/demo-understand-anything) | `understand-anything@1` | Demo entry: a hand-built sample knowledge graph in the understand-anything@1 shape. | โœ… ok | 2026-06-25 |
<!-- END ENTRIES -->

## Status legend

Each entry's `status` field tells consumers whether the linked graph is currently usable.

| Emoji | Status | Meaning | What to do |
| :---: | --- | --- | --- |
| ๐Ÿ†• | `pending` | Registered but the registry hasn't synced it yet. | Wait for the next sync (โ‰ค24h, or fire `repository_dispatch` for instant). |
| โœ… | `ok` | Fetched, validated, current. | Use it. |
| ๐ŸŸก | `missing` | 404 in the last sync. Will keep retrying. | Verify the file exists at the registered URL on the default branch. |
| โš ๏ธ | `invalid` | Body failed schema validation. | Run `npm run validate` locally; fix the field that fails. |
| ๐Ÿ“ฆ | `oversize` | Graph exceeds 50 MB; not fetched. | Slim the graph or split it. |
| ๐Ÿ” | `transient_error` | Network or 5xx; will retry next sync. | Usually nothing โ€” wait one cycle. |
| ๐Ÿ’€ | `dead` | 7+ consecutive misses. | Re-publish or open an issue to remove the entry. |
| โ†ช๏ธ | `renamed` | Superseded by `renamed_to`. | Update tooling to point at the new id. |
| ๐Ÿšซ | `revoked` | Maintainer-retracted. | Don't consume; contact maintainers if unexpected. |

## Development

```bash
nvm use            # Node 20
npm install
npm test           # node:test
npm run test:coverage
npm run validate   # validate registry.json + graphs
npm run sync       # resync all entries (writes registry.json)
npm run smoke      # dry-run sync against tests/registry-smoke.json
npm run render     # regenerate README table
```

Test suites at HEAD: 132 root + 25 CLI + 27 MCP + 54 Python SDK + 15 Playwright = **253 tests**.

### Releases

Automated via [release-please](https://github.com/googleapis/release-please). Conventional Commits (`feat:` / `fix:`) on `main` โ†’ release-please opens a per-component Release PR โ†’ merging the PR tags and publishes the affected component (CLI, MCP, Python SDK). See [`docs/ops/release-process.md`](docs/ops/release-process.md) for the full flow, tag prefixes, and rollback recipes.

## Contributing

[`CONTRIBUTING.md`](CONTRIBUTING.md) walks through every contribution flow. Trusted authors can land registry-only PRs without review โ€” see [`docs/verified-publishers.md`](docs/verified-publishers.md). By participating you agree to the [Code of Conduct](CODE_OF_CONDUCT.md). Security issues: [`SECURITY.md`](SECURITY.md). Security model: see [threat-model](docs/threat-model.md).

For questions, ideas, or showing off your registered graph: [GitHub Discussions](https://github.com/looptech-ai/understand-quickly/discussions).

## Special thanks

To the maintainers who carry this protocol upstream.

### Adopters (merged)

- [`abhigyanpatwari/GitNexus`](https://github.com/abhigyanpatwari/GitNexus) โ€” first project to ship native `gitnexus publish` integration. Thanks to [@magyargergo](https://github.com/magyargergo) for the thorough review and [@abhigyanpatwari](https://github.com/abhigyanpatwari) for the project.

### Integrations in flight

| Project | PR |
|---|---|
| [`tirth8205/code-review-graph`](https://github.com/tirth8205/code-review-graph) | [#449](https://github.com/tirth8205/code-review-graph/pull/449) |
| [`AsyncFuncAI/deepwiki-open`](https://github.com/AsyncFuncAI/deepwiki-open) | [#517](https://github.com/AsyncFuncAI/deepwiki-open/pull/517) |
| [`punkpeye/awesome-mcp-servers`](https://github.com/punkpeye/awesome-mcp-servers) | [#6148](https://github.com/punkpeye/awesome-mcp-servers/pull/6148) |
| [`yamadashy/repomix`](https://github.com/yamadashy/repomix) | [#1563](https://github.com/yamadashy/repomix/pull/1563) |
| [`coderamp-labs/gitingest`](https://github.com/coderamp-labs/gitingest) | [#577](https://github.com/coderamp-labs/gitingest/pull/577) |
| [`kamilstanuch/codebase-digest`](https://github.com/kamilstanuch/codebase-digest) | [#7](https://github.com/kamilstanuch/codebase-digest/pull/7) |
| [`safishamsi/graphify`](https://github.com/safishamsi/graphify) | [#802](https://github.com/safishamsi/graphify/pull/802) |
| [`The-Pocket/PocketFlow-Tutorial-Codebase-Knowledge`](https://github.com/The-Pocket/PocketFlow-Tutorial-Codebase-Knowledge) | [#185](https://github.com/The-Pocket/PocketFlow-Tutorial-Codebase-Knowledge/pull/185) |
| [`DeusData/codebase-memory-mcp`](https://github.com/DeusData/codebase-memory-mcp) | [#332](https://github.com/DeusData/codebase-memory-mcp/pull/332) |
| [`AIDotNet/OpenDeepWiki`](https://github.com/AIDotNet/OpenDeepWiki) | [#361](https://github.com/AIDotNet/OpenDeepWiki/pull/361) |

### Upstream tools we build on

- [Understand-Anything](https://github.com/Lum1104/Understand-Anything) โ€” first-class graph format.
- [GitNexus](https://github.com/abhigyanpatwari/GitNexus) โ€” first-class graph format + first adopter.
- [code-review-graph](https://github.com/tirth8205/code-review-graph) โ€” first-class graph format.
- [vis-network](https://github.com/visjs/vis-network) โ€” graph rendering on the Pages site.
- [Ajv](https://github.com/ajv-validator/ajv) โ€” JSON Schema validation.

PRs welcome โ€” see [CONTRIBUTING.md](CONTRIBUTING.md).

## Star history

[![Star History Chart](https://api.star-history.com/svg?repos=looptech-ai/understand-quickly&type=Date)](https://www.star-history.com/#looptech-ai/understand-quickly&Date)

## License

- **Code** โ€” [Apache License 2.0](LICENSE) ยฉ 2026 Alex Macdonald-Smith and LoopTech.AI. Includes a patent grant and contributor terms.
- **Registry data** โ€” [Understand-Quickly Data License 1.0](DATA-LICENSE.md). Anyone can use the registry, including for AI/ML training; in exchange, contributions and submissions grant Alex Macdonald-Smith and LoopTech.AI a perpetual, sublicensable data-use right that travels with any fork or extension. See [`DATA-LICENSE.md`](DATA-LICENSE.md) for the full terms.
- **NOTICE** file: [`NOTICE`](NOTICE).

More