# GraphRAG is in maintenance mode and its upgrade path overwrites your prompts

> GraphRAG builds a knowledge graph out of unstructured text so a model can answer questions against a targeted context. The repository states it is largely in maintenance mode, will not take new pull requests, and warns that indexing is an expensive operation. Its one version command also overwrites your configuration and prompts.

**microsoft/graphrag** — A modular graph-based Retrieval-Augmented Generation (RAG) system

- Repository: https://github.com/microsoft/graphrag
- Website: https://microsoft.github.io/graphrag/
- Stars: 36,121 · Forks: 3,807
- Language: Python
- License: MIT
- Published: 2026-08-17 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/microsoft-graphrag

## The first warning says maintenance mode, no new PRs, no new features

The opening block of the project description is a warning, and it is unusually direct about status. GraphRAG is described as a research project exploring the functional use of graphs to form a targeted context for question answering, and then the reason: since the first release in July 2024 the capabilities of frontier models have changed dramatically and the portfolio of research projects has diversified to match. From that the conclusion follows, that this project is largely in maintenance mode, will not be accepting new pull requests, and will not implement new features, with only bug fixes and dependency updates, particularly to address CVEs as they arise. The consequence for an adopter is structural rather than cosmetic. If a capability you need is missing, it will not arrive from this repository, so you either scope around the gap or maintain a fork.

## graphrag init --force overwrites the configuration and the prompts

There is exactly one command in this repository, and it is not the one that installs anything. It appears in the versioning section:

```
graphrag init --root [path] --force
```

The instruction is to always run it between minor version bumps so you have the latest config format. The same paragraph warns what it does: this will overwrite your configuration and prompts, so back them up if necessary. That is a lot of weight on one command, because the prompts are not a detail in this project. Out of the box GraphRAG is not expected to give the best possible results, and the recommended step afterwards is prompt tuning against your own data. An upgrade that silently replaces those tuned prompts with generated defaults is the failure mode worth planning for, and the backup advice in the versioning notes is the mitigation.

## Minor bumps and major bumps need different rituals to keep your index

The versioning section splits into two cases, and only one of them is a command. Between minor version bumps you run the init command to refresh the config format. Between major version bumps, the guidance is to run the provided migration notebook, and the stated purpose is avoiding re-indexing prior datasets. That distinction matters because indexing is the expensive part of this pipeline, so a major version upgrade without the notebook can mean paying to rebuild a graph you already had. The versioning approach itself is documented separately, in a breaking-changes document linked from the same section, and the repository carries RELEASE.md, a CHANGELOG.md and a .semversioner/ directory, with semversioner pinned in the development dependency group. The consequence for a reader is that version numbers here carry a contract, and the contract lives in those two files rather than in the release notes alone.

## Indexing is the expensive half, and the documentation is the only cost model

A warning sits directly under the repository guidance: GraphRAG indexing can be an expensive operation, please read all of the documentation to understand the process and costs involved, and start small. The project itself is described as a data pipeline and transformation suite designed to extract meaningful, structured data from unstructured text using the power of LLMs, which is the step that costs money: every document goes through model calls to build entities, relationships and structure before any question is ever asked. Nothing in this repository quantifies that cost, no per-document figure and no example index bill, because the quickstart, the architecture material and the prompt tuning guide all live in the documentation site rather than here. The consequence is that a reader cannot size the bill from the repository alone, and the instruction to start small is doing more work than it appears to.

## Out of the box results are explicitly not the best possible results

A short section on prompt tuning carries the sentence that should govern any expectation you form: using GraphRAG with your data out of the box may not yield the best possible results. The recommendation is to strongly fine-tune your prompts, following the Prompt Tuning Guide in the documentation. That reframes the whole system. It is not a configuration switch where you point it at a folder and get good answers, it is a per-corpus engineering task where the quality of the output depends on prompts you tune against your own documents, and the same tuning will not transfer unchanged to a different body of text. The consequence for anyone budgeting the work is that the project is the starting point rather than the destination, and the guidance in the repository is to assume the tuning work is mandatory rather than optional.

## The root project is 0.0.0 and marked Do Not Upload

The root `pyproject.toml` is not the package you install. It is named graphrag-monorepo, its version is pinned at `0.0.0`, and it carries the classifier `Private :: Do Not Upload`, which tells any index or mirror to refuse it. The uv configuration at the bottom of the same file sets `package = false`, so uv treats the root as a workspace rather than a distribution, and a uv.lock is committed at the root. The real code lives under `packages/`, with tests in `tests/`, documentation sources in `docs/`, a mkdocs.yaml, helper scripts in `scripts/`, and a `unified-search-app/` directory that sits beside the library rather than inside it. The installable artifact is published on PyPI under the name graphrag instead. Anyone pinning dependencies from this repository's manifest directly would be pinning a deliberately unpublishable placeholder.

## Python support is a three version window and the code is a demonstration

The metadata pins `requires-python` to `>=3.11,<3.14`, so the supported interpreters are 3.11, 3.12 and 3.13, and anything outside that window is out of scope by declaration rather than by accident. Sixteen named authors are listed, most on microsoft.com addresses. Alongside that sit the governance files a normal repository carries: SUPPORT.md, SECURITY.md, CODE_OF_CONDUCT.md, CODEOWNERS and CONTRIBUTING.md, plus a DEVELOPING.md for setup. The repository guidance is careful to undercut all of it, saying the code serves as a demonstration and is not an officially supported Microsoft offering, and describing the repository as presenting a methodology for using knowledge graph memory structures to enhance LLM outputs. The consequence is that support files exist while official support does not, so there is a process for reporting problems and no commitment behind it.

## RAI_TRANSPARENCY.md is where the limitations and the metrics actually are

One of the top-level files is a transparency document, and the project links to six specific questions inside it: what GraphRAG is, what it can do, what its intended uses are, how it was evaluated and which metrics were used to measure performance, what its limitations are and how users can minimize their impact, and what operational factors and settings allow for effective and responsible use. That is an unusual thing to ship in a research repository, and it tells you where the honest answers are. The evaluation question is the one to read first, because a project that raises metrics as its own open question is not claiming a measured advantage on your data. The limitations question is the one to read before a stakeholder does, and the settings question is the one to read before you turn it on, since the project pairs it with a warning to start small.

## Conclusion

GraphRAG is a reasonable choice for a research or evaluation setting where you want to read a methodology end to end, and where building the index is affordable. It is a poor choice for a product you intend to extend, because the project will not accept new features and the code is described as a demonstration rather than a supported Microsoft offering. Before you commit, read RAI_TRANSPARENCY.md for the limitations and the evaluation metrics, budget the indexing cost, and assume you will hand-tune prompts for every corpus. Pin the version, keep backups of your config and prompts before running the init command, and check the requires-python window of 3.11 to 3.13. The last push is dated 2026-09-24 and v3.2.0 shipped the same day.

## FAQ

### what is graphrag

GraphRAG is a modular graph-based retrieval-augmented generation system, described as a data pipeline and transformation suite that extracts meaningful, structured data from unstructured text using LLMs. It presents a methodology for using knowledge graph memory structures to enhance LLM outputs.

### Is GraphRAG open source?

The repository carries an MIT LICENSE and the package is published on PyPI as graphrag. The code is described as a demonstration and not an officially supported Microsoft offering, and the project is largely in maintenance mode, with no new pull requests and no new features.

### Why is GraphRAG better than RAG?

The repository does not make a head-to-head comparison. It frames GraphRAG as forming a targeted context for question answering using graphs, and it points to RAI_TRANSPARENCY.md for how GraphRAG was evaluated and which metrics were used, which is the place to look before accepting any superiority claim.

### how to install graphrag

The quickstart recommendation is the command line quickstart in the documentation at microsoft.github.io/graphrag/get_started/, and the package is on PyPI as graphrag. The repository's own metadata requires Python 3.11 up to but not including 3.14, and the one command in the README is graphrag init --root [path] --force, which is for refreshing config between minor version bumps.

### what is graphrag good for

The project positions it as forming a targeted context for question answering over private data, and RAI_TRANSPARENCY.md covers its intended uses. The repository also warns that indexing can be an expensive operation and tells you to start small.

### Can GraphRAG be used with Postgres?

The repository does not name a database backend. It describes itself as a data pipeline and transformation suite for extracting structured data from unstructured text, and the architecture and configuration details are in the documentation rather than in this repository.

## Sources

- [Official documentation](https://microsoft.github.io/graphrag/)
- [Official README](https://github.com/microsoft/graphrag#readme)
- [Project repository](https://github.com/microsoft/graphrag)
- [Release notes](https://github.com/microsoft/graphrag/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/microsoft-graphrag
