Skip to content
run-llama/llama_index (opens in a new tab)

Strong foundation with clear docs and active maintenance, but new contributors will struggle with complex monorepo architecture and fragmented setup instructions.

Pythonβ˜… 50,147456 open issuesMIT License
Overall score: 72 out of 100
Holding

last scored 2026-06-15

Readiness lenses

The same repo, two ways: how ready it is for an AI coding agent, and for a human newcomer. Switch lenses to see each one's score and checks.

How ready the repo is for an AI coding agent to read, build, and operate it.

20 of 32 checks passed across 6 categories.

  • Machine Orientation

    5 checks passed2 problems found

    • mediumAgent instructions file

      AGENTS.md / CLAUDE.md is the direct, machine-read channel for entry points and conventions.

      Fix: Add an AGENTS.md naming the entry points, the build/test commands, and the house conventions.

    • lowArchitecture doc

      An ARCHITECTURE doc hands an agent the module map instead of making it infer one.

      Fix: Add an ARCHITECTURE.md describing the major components and how they fit.

    • README present β€” An agent reconstructs what the repo is and how to work in it from the README first.
    • Repository description set β€” The one-line description is the fastest orientation signal an agent reads.
    • llms.txt present β€” An llms.txt is the emerging machine-orientation standard β€” a curated map for LLMs.
    • Topics set β€” GitHub topics situate the repo's domain and stack for an agent at a glance.
    • Contribution conventions are written down β€” A contributor guide is where an agent learns the branch, commit, and review conventions it must follow.
  • Reproducible Setup

    3 checks passed2 problems found

    • mediumRuntime / toolchain pinned

      An unpinned runtime makes an agent guess the version a clean environment needs.

      Fix: Pin the runtime with .nvmrc / .tool-versions / an engines field / packageManager.

    • lowDev container

      A .devcontainer gives an agent a one-command, fully-declared environment.

      Fix: Add a .devcontainer so the toolchain is declared, not assumed.

    • Lockfile committed β€” Without a lockfile two clones can resolve different dependency trees β€” the build isn't reproducible.
    • Env template present β€” A .env.example tells an agent which configuration keys it must supply to run.
    • Container or dev-container β€” A Dockerfile / compose / devcontainer removes 'works on my machine' from setup.
  • Code Navigability

    0 checks passed1 problem found

    • mediumConventional source layout

      A recognised src/ Β· lib/ Β· app/ layout lets an agent localise code without spelunking.

      Fix: Group source under a conventional top-level directory (src/, lib/, app/, …).

  • Verification Surface

    3 checks passed4 problems found

    • mediumTest command defined

      A `test` script is the documented, discoverable way to run the suite.

      Fix: Add a `test` script (package.json / Makefile / Taskfile) that runs the suite.

    • lowLint command defined

      A linter an agent can run catches a class of mistakes before they ship.

      Fix: Add a `lint` script and a linter config.

    • lowTypecheck command

      A typecheck script lets an agent catch type errors before they ship.

      Fix: Add a `typecheck` script (e.g. `tsc --noEmit`).

    • lowBuild command

      A documented build command is the discoverable way for an agent to produce artifacts.

      Fix: Add a `build` script that produces the distributable.

    • Tests present β€” Runnable tests are the ground truth an agent checks its own edits against.
    • CI configured β€” Readable CI is the feedback loop an agent reads to know what 'green' means here.
    • Task runner present β€” A Makefile / Taskfile / justfile gives an agent a single index of the project's commands.
  • Agent Safety

    7 checks passed1 problem found

    • lowCODEOWNERS present

      CODEOWNERS marks the 'don't touch without review' zones an agent should respect.

      Fix: Add a CODEOWNERS file marking the sensitive paths.

    • No committed .env β€” A tracked real .env hands secrets to anything β€” including an agent β€” that reads the repo.
    • No exposed secrets β€” Secret-shaped literals in tracked files are a live credential leak.
    • .gitignore covers env files β€” An ignore rule for .env is what keeps the next careless commit from leaking secrets.
    • Automated dependency updates β€” Dependabot / Renovate keeps dependencies patched without a human in the loop.
    • .gitignore present β€” A .gitignore is the first guard against an agent committing secrets or build junk.
    • Security policy β€” A SECURITY.md is where an autonomous security agent reads this repo's rules before acting on it.
    • License makes the code reusable β€” Without a license an agent cannot safely copy, redistribute, or vendor any of this code.
  • Context Economy

    2 checks passed2 problems found

    • lowGenerated / vendored files marked

      A .gitattributes linguist marker tells tools (and agents) what to skip.

      Fix: Mark generated/vendored paths in .gitattributes (linguist-generated / linguist-vendored).

    • lowNo oversized source file

      A single file in the hundreds of KB blows past an agent's effective context window.

      Fix: Split the largest files along their natural seams.

    • Dependencies not vendored in β€” A committed node_modules / vendor tree drowns the real signal an agent needs.
    • Build output not committed β€” Generated dist/ Β· build/ output is noise an agent has to read past.

Where the grip slips

  1. highGetting Running+18 pts if fixed

    No development setup guide in CONTRIBUTING.md or DEVELOPER.md

    A newcomer clone the repo and run `make test-core` without understanding that Pants is the build system, what Python version to use, or how to set up a development environment. The pyproject.toml is complex (two build targets, namespace packages, hatch config) and there is no step-by-step guide (e.g., 'clone β†’ venv β†’ pip install -e . β†’ make test'). This is the single biggest friction point for contributors.

    Fix: Create a DEVELOPER.md (or expand CONTRIBUTING.md) with: (1) exact Python version requirement (pyproject.toml says >=3.10,<4.0 but doesn't highlight it); (2) step-by-step venv setup; (3) how to install in editable mode; (4) explanation of Pants and monorepo structure; (5) how to run tests for core vs. integrations; (6) how to build and test a single integration package.

  2. highFinding Your Way+15 pts if fixed

    No architecture or code map in repository

    The file tree shows 9762+ files but no ARCHITECTURE.md or README in llama_index/ explaining what core/, integrations/, packs/, experimental/ contain. A newcomer must browse GitHub manually or read external docs to understand how code is organized. The README mentions 'indices folder' but the actual structure is unclear from the snapshot.

    Fix: Add ARCHITECTURE.md to the repo root with sections: (1) monorepo structure (core vs. integrations vs. packs vs. experimental); (2) dependency graph (how integrations depend on core); (3) where to contribute what (bug fixes β†’ core, new vendor integrations β†’ integrations); (4) how to add a new integration; (5) a high-level diagram of module boundaries (llms, embeddings, indices, agents, etc.).

  3. mediumFirst Impression+10 pts if fixed

    README is dense and mixes product marketing with framework docs

    The README spends significant space on LlamaParse (Parse, Extract, Index, Split), LlamaAgents, and enterprise offerings, which dilutes the core message for open-source users. A beginner has to scroll past several sections before understanding 'LlamaIndex is a data framework that indexes your data and retrieves context for LLMs.' The marketing prologue makes it harder for a newcomer to get to the point.

    Fix: Restructure README: (1) lead with a one-sentence value prop (e.g., 'LlamaIndex is an open-source framework to build LLM applications with your data'); (2) quick-start section (pip install + 3-line code example); (3) link to docs early and prominently; (4) move LlamaParse section to a separate 'Enterprise' or 'LlamaParse Platform' section at the bottom; (5) reduce redundant links and badges that clutter the header.

  4. mediumPath To Contribute+9 pts if fixed

    CONTRIBUTING.md is referenced but not shown in snapshot; quality unknown

    The README links to CONTRIBUTING.md for more details, but the file is not visible in the snapshot. If it lacks detail on beginner-friendly issues, testing, or development setup, newcomers will hit a dead end after reading it.

    Fix: Ensure CONTRIBUTING.md includes: (1) link to DEVELOPER.md for local setup; (2) list of labels for beginner-friendly issues (e.g., 'good-first-issue', 'help-wanted'); (3) PR submission process (fork β†’ branch β†’ PR); (4) code style and testing expectations; (5) discussion of when PRs might be declined (e.g., breaking changes, non-aligned integrations).

  5. mediumGetting Running+8 pts if fixed

    No visible guidance on which package to install for a first-time user

    README says 'There are two ways to start building' (starter vs. customized) but doesn't clearly recommend which to choose for a newcomer. It also doesn't explain when to use `llama-index` vs. `llama-index-core` in code, though an example is shown. The 'typical pattern' code block hints at this but is not highlighted as important.

    Fix: Add a 'Quick Start' section before the two-ways section: (1) recommend `pip install llama-index` for most users; (2) only mention `llama-index-core` + custom integrations for advanced/production setups; (3) add a simple decision tree ('Do you want Ollama + HuggingFace? Install llama-index-core + these packages. Do you want OpenAI out of the box? Install llama-index.').

  6. mediumGetting Running+7 pts if fixed

    Monorepo build system (Pants) is not explained to new contributors

    The Makefile references Pants (`pants --level=error --no-local-cache test`...) without explaining what it is, how to install it, or why it's needed. A newcomer may not realize Pants is a build orchestrator and may try to run pytest directly, leading to confusion.

    Fix: Add to DEVELOPER.md or a TOOLS.md: (1) brief explanation of Pants (a build/test orchestrator for monorepos); (2) installation instructions if needed; (3) common commands and what they do; (4) alternative: document that contributors can run tests via `pytest llama_index/core/tests/` without Pants for a faster feedback loop during development.

  7. lowGetting Running+6 pts if fixed

    No lockfile or pinned transitive dependencies for development

    pyproject.toml pins direct dependencies (e.g., `black[jupyter]>=23.7.0,<=26.5.1`) but does not include a lock file (poetry.lock, pdm.lock, etc.). This means two developers cloning the repo at different times may get different transitive dependency versions, risking 'works on my machine' issues. The pre-commit config exists but dependency versions could drift.

    Fix: Add a poetry.lock or uv.lock file to the repo, or document the use of `pip-tools` / `uv pip compile` to generate a requirements-dev.txt with pinned transitive deps. Update DEVELOPER.md: 'Run `pip install -r requirements-dev.txt` to install dev dependencies with locked versions.' Alternatively, use `pip install -e '.[dev]'` with a lock file.

  8. lowPath To Contribute+5 pts if fixed

    No beginner-labeled issues visible or searchable from repo snapshot

    While 456 open issues suggest active development, there is no evidence of 'good-first-issue', 'help-wanted', or 'beginner-friendly' labels. A newcomer looking for a low-stakes way to contribute has no clear entry point.

    Fix: Create and apply labels: add 'good-first-issue' and 'help-wanted' labels in GitHub, then tag 5–10 simple issues (e.g., docs improvements, small bug fixes, adding missing docstrings) with 'good-first-issue'. Update CONTRIBUTING.md to link to these filtered issues.

Show your score

Latch badge
[![Latch score](https://latch.fyi/api/badge/ecd8266d-8ec1-43d4-95ff-4b1c0a2f9562)](https://latch.fyi/run-llama/llama_index)

Share this analysis

https://latch.fyi/run-llama/llama_index

Fixed some issues? Re-analyze to measure your progress β†’

Copy the whole report

Grab the entire verdict in one go β€” a Markdown block for a README or an issue, plain text, or a prompt you can paste straight into an LLM.

Was this verdict fair?

One tap helps β€” or tell us more.