Every technology we watch sits at exactly one place here. Counts are distinct public repositories observed using it, on one shared scale, and a repository can appear in several categories at once, so a layer total is smaller than its categories added up. A category marked pending is one we have named and sized but do not detect yet, so it reads as empty rather than absent.
Evidence that AI tools wrote the code, which is a different question from what the code ships.
Config left behind by AI coding tools, which measures how software is being built rather than what it ships.
| Claude Code | 53,009 |
| AGENTS.md | 38,655 |
| Cursor | 7,038 |
| GitHub Copilot | 4,510 |
| Gemini CLI | 2,643 |
| Google Antigravity | 21 |
Bot authorship in commit history. Needs event data, unlike Coding Agents which is file presence. GitHub-wide aggregate only, last computed 2026-08-02.
| Aider | 0 |
| Claude Code | 0 |
| Copilot SWE agent | 0 |
| Cursor | 0 |
| Devin | 0 |
| GitHub Copilot | 0 |
| Jules | 0 |
| Lovable | 0 |
| OpenAI Codex | 0 |
What an agent is actually built on.
Runtimes whose whole purpose is building agents, so a single dependency is enough to classify a repo.
| LangGraph | 12,803 |
| Claude Agent SDK | 2,480 |
| CrewAI | 1,942 |
| OpenAI Agents | 1,111 |
| Google ADK | 1,058 |
| Pydantic AI | 713 |
| AutoGen | 555 |
| Cloudflare Agents | 497 |
| Agno | 407 |
| DeepAgents | 405 |
| Strands | 395 |
| smolagents | 284 |
| DSPy | 283 |
| Mastra | 226 |
| AG2 | 88 |
| Genkit | 84 |
| Azure AI Foundry | 63 |
| Microsoft Agent Framework | 61 |
| Inngest AgentKit | 40 |
| CAMEL | 32 |
| Microsoft 365 Agents SDK | 9 |
| VoltAgent | 7 |
| Griptape | 6 |
| Atomic Agents | 4 |
| Langroid | 3 |
| Letta | 3 |
| Teams AI | 1 |
Chain, retrieval and workflow layers that support agents without being agent runtimes themselves.
| LangChain | 18,888 |
| LlamaIndex | 773 |
| Haystack | 115 |
| Semantic Kernel | 106 |
| n8n | 7 |
The protocols an agent uses to reach things beyond its own process: tools and data, and increasingly other agents.
Repos touching the Model Context Protocol in any role. The SDK builds servers and clients alike and .mcp.json is a client config listing the servers an agent connects to, so this is a count of MCP adoption and not a count of MCP servers: 42% of it is classified as something other than a server.
| Anthropic | 50,157 |
| FastMCP | 6,340 |
What an AI application has to handle once it works: remembering, watching, and constraining itself.
Tools that record what an AI system actually did in production: every model call, the prompt, the reply, the tokens and the cost, nested into a replayable trace. Runtime only.
| LangSmith | 4,422 |
| Langfuse | 1,239 |
| Arize Phoenix | 123 |
| Opik (Comet) | 50 |
| Traceloop | 48 |
| AgentOps | 45 |
| Literal AI | 39 |
| Weights & Biases Weave | 31 |
| Laminar | 29 |
| LangWatch | 16 |
| OpenLIT | 15 |
| Langtrace | 7 |
| Lunary | 2 |
Tools that score model output against test cases, usually before shipping rather than in production. Separate from Tracing because passing a test suite says nothing about whether the running system is observable.
| Ragas | 825 |
| DeepEval | 244 |
| Braintrust | 78 |
| Promptfoo | 58 |
| TruLens | 7 |
| Galileo | 3 |
| Athina | 1 |
| UpTrain | 1 |
| Patronus AI | 0 |
| phospho | 0 |
Tools that attack or scan an AI system to find its weaknesses, as opposed to the runtime filters in Guardrails that try to stop an attack while it happens. Kept separate because conflating them would let offensive testing inflate a claim about defensive coverage.
| garak | 11 |
| PyRIT | 9 |
| DeepTeam | 5 |
| Giskard | 4 |
| HiddenLayer | 3 |
| ModelScan | 1 |
| Snyk | 1 |
| Agentic Radar | 0 |
Repos reaching a model whose safety behaviour has been deliberately removed, served over an API so nothing appears in a dependency manifest. Counts are floors: only files the content pass fetches are searched.
| abliteration.ai | 1 |
PII redaction, prompt-injection filtering and policy enforcement. The smallest category here by a wide margin, which is itself the finding.
| Microsoft Presidio | 267 |
| NeMo Guardrails | 61 |
| Guardrails AI | 47 |
| LLM Guard | 20 |
| Azure AI Content Safety | 15 |
| LangKit | 6 |
| LlamaFirewall | 4 |
| OpenAI Guardrails | 4 |
| Invariant Guardrails | 1 |
| Rebuff | 1 |
| Prediction Guard | 0 |
| ZenGuard | 0 |
Vector stores and agent memory. A vector store alone is not an AI signal, so these are corroborating rather than classifying: some carry no LLM client at all.
| Chroma | 7,754 |
| FAISS | 5,066 |
| Qdrant | 2,211 |
| Pinecone | 1,338 |
| LanceDB | 628 |
| Mem0 | 413 |
| Milvus | 380 |
| Weaviate | 251 |
How a repo reaches a model it does not run itself.
Repos calling a model vendor's own API directly, which is the baseline every other layer is measured against.
| OpenAI | 31,772 |
| Anthropic | 14,783 |
| 6,704 | |
| Vercel AI SDK | 2,970 |
| Mistral AI | 388 |
| AWS | 379 |
| Cohere | 265 |
| DeepSeek | 204 |
| Azure AI Foundry | 172 |
| xAI | 66 |
| Azure OpenAI | 38 |
Repos putting one interface in front of several providers; adoption here is the clearest signal of a team refusing to be locked to one model, though router use inside a wider platform is not separable from ordinary calls.
| LiteLLM | 3,431 |
| OpenRouter | 480 |
| Portkey | 44 |
| Helicone | 1 |
Third-party endpoints serving open models, still undercounted after reseeding because most are OpenAI-compatible and reached through the openai package with a changed base URL that no manifest records.
| Groq | 8,207 |
| Hugging Face | 3,040 |
| Together AI | 242 |
| Cerebras | 90 |
| Fireworks AI | 84 |
| SambaNova | 2 |
| Novita | 1 |
| DeepInfra | 0 |
Running a model you control, rather than calling one you do not.
Platforms for running your own model rather than calling someone else's.
| Ollama | 2,653 |
| Replicate | 381 |
| Modal | 267 |
| Anyscale | 1 |
| Baseten | 0 |
Raw compute marketplaces, and a near-empty line even after we went looking properly: seeding these packages' dependents moved it from 18 repos to 104, which is still almost nothing, because renting a machine happens through a dashboard or SSH that no manifest records.
| RunPod | 103 |
| Vast.ai | 6 |
Captured on every pass, and what the security and hygiene figures elsewhere on this site are measured from.
Fields re-read for every repo on every wave. The changing ones are the time series.
Gone and renamed repos, recorded as first-class events instead of silently dropped. The strongest irrecoverable category.
Raw manifests stored per wave. Every dependency claim is recomputed from these.
The SECURITY.md and lockfile evidence behind the published security claims.
Containerisation and CI, as a proxy for whether a repo is a real project.
Whether a repo publishes for machine readers.
Negative indicators. Always an explicit exclusion_reason, never a silent penalty.
Turning a repo into an organization, and the limits on doing so.
Why MCP Adoption reads 59,589 here and the home page says 44,936. They measure different things. This page counts repos touching MCP in any role, clients and frameworks included, because the SDK builds servers and clients alike. The home page counts repos the classifier judges to be an MCP server. 33,876 satisfy both, which is the conservative number to reach for.
This taxonomy is versioned with the indicator set and changes as the ecosystem does. Counts come from public repositories only, and several categories are structurally undercounted for reasons worth reading before quoting them: see how this is measured. If a category looks wrong to you, it probably is for your corner of the market, and we would rather hear it.