Open vs Closed LLMs — Developer Adoption Trends (WIP)

Key takeaways

  1. Closed owns developer breadth; open owns volume. In actual code ~75% of matching code files reference closed APIs (OpenAI/Anthropic/Google) vs ~25% open — even as open models passed ~69% of OpenRouter token volume. Breadth and volume point opposite ways.
  2. Agentic coding exploded and is ~100% closed-tooled. AI agents committing as their own account went from ~0 to thousands/day through 2025 — entirely closed products (Copilot, Codex, Claude Code, Gemini). Open-model agents are near-invisible.
  3. Open adoption is systematically undercounted here. Open models are called via the OpenAI-compatible client (not their own SDK), and open agents run under a human's account — so every signal below treats open as a floor, not a measure.
Part 1

Current snapshot — GitHub Code Search 2026-07-18

Public code files that reference each provider's API endpoint in live code — files that actually call each model. A single live query on 2026-07-18 (a point-in-time count, not a monthly total or a per-day rate). The one breadth signal from real code.

Code files referencing each provider's API endpoint —
  • Counts code files, not distinct repos (one repo can contain several); total_count is GitHub's estimate. Magnitude/ratio is solid, exact counts less so.
  • Endpoints only (e.g. api.deepseek.com) — clean & symmetric across camps. Llama excluded (no single API endpoint; it shows ~38.5k via a model-path query, not comparable).
  • Matches the string anywhere in code (incl. comments/vendored copies). Snapshot only — GitHub gives no history (that's why the trends above use PyPI / GitHub Archive instead). Ongoing daily collection starts 2026-07-18, so a forward Code Search time series is now accumulating.
Part 2

Adoption over time

How developer adoption evolved, Jan 2025 – Jul 2026 — SDK installs, GitHub payload mentions, and GitHub collaborators. Three time-series proxies; none measures production usage, and each is biased (read the caveat notes under every chart). Values are average-per-day within each month.

2.1 · PyPI SDK install

Developers installing each provider's Python SDK — an install-activity proxy.

Open vs closed
By vendor
  • Installs ≠ usage: continuous-integration / continuous-delivery pipelines & mirrors inflate counts (~40% weekend dip is machine traffic).
  • openai is a contaminated ceiling — it's the client for OpenAI-compatible calls to DeepSeek/GLM/Qwen/local, not just OpenAI.
  • Open is undercounted: open models are called through the openai client, not their own SDK (zhipuai stayed flat while GLM usage rose).
  • "Open self-host infra" = transformers/vllm/sglang — broad, not model-specific. → open-vs-closed share here is directional only.

2.2 · GitHub payload mention

GitHub event payload text (issue / PR / commit / comment / discussion) that names a model — endpoint, model-id, web-app domain, agent tool, or brand (brand-inclusive). Bots excluded. A discussion / mindshare proxy, not code. Pick the count unit below.

Count unit
Open vs closed
By vendor
  • What "mention" means: a regex match of a model's API endpoint, model-id, web-app domain, agent tool, or brand name (this is the brand-inclusive view) in the event payload — the string is present in an issue / PR / commit / comment / discussion, not proof the repo runs the model. See the keyword list below.
  • Count unit is a per-day rate, not a total. Distinct repos/actors are counted within each (day × event-type) and shown as avg per day within month. Do not read the levels as unique-repo totals — a repo active on many days (or via several event types) is counted repeatedly; use for trends & share. Events are additive and shown the same way.
  • Why prose, not code: GitHub Archive has no code-file data (only event text); and the github_repos code dataset is frozen — contents last modified 2022-11 (only commits refreshed 2025-10). So 2025–26 code can't be grepped; we detect mentions in event payloads instead.
Show the exact match keywords (endpoints, model-ids, domains, tools, brands)

A payload matches if any endpoint OR any keyword regex below appears in the event text (case-insensitive). The keyword column mixes model-ids (gpt-[0-9]), web-app domains (claude\.ai), agent tools (claude code) and word-boundaried bare brands (\bgemini\b). Endpoints are unambiguous; the rest trade precision for recall — bare brands especially collide with ordinary words (Gemini the zodiac, Claude the name), so cross-vendor levels are noisy. Use within-vendor trends, not cross-vendor rankings.

ProviderCampEndpoint(s)Keyword regex (model-id · domain · tool · brand)
Anthropic Claudeclosedapi.anthropic.comclaude-[0-9]|claude-(opus|sonnet|haiku|instant)|claude\.ai|console\.anthropic\.com|claude[ -]code|anthropics?/claude|\banthropic\b|\bclaude\b
Google Geminiclosedgenerativelanguage.googleapis.com aiplatform.googleapis.comgemini-[0-9]|gemini-(pro|flash|ultra)|gemini\.google\.com|aistudio\.google\.com|gemini cli|gemini code assist|\bgemini\b
OpenAIclosedapi.openai.comgpt-[0-9]|gpt-4o|chatgpt|o[134]-(mini|preview|pro)|chatgpt\.com|chat\.openai\.com|platform\.openai\.com|openai codex|codex cli|\bopenai\b
xAI Grokclosedapi.x.aigrok-[0-9]|grok-beta|grok\.com|grok\.x\.ai|\bgrok\b
Alibaba Qwenopendashscope.aliyuncs.comqwen[0-9]|qwen-(max|plus|turbo|vl|coder)|chat\.qwen\.ai|tongyi\.aliyun\.com|qwen code|qwen-code|\bqwen\b
DeepSeekopenapi.deepseek.comdeepseek-(chat|coder|reasoner|vl|v[0-9]|r[0-9])|chat\.deepseek\.com|platform\.deepseek\.com|\bdeepseek\b
Google Gemmaopengemma-[0-9]|\bgemma\b
Meta Llamaopenllama-[0-9]|meta-llama/|llama-guard|codellama|llama\.com|llama\.meta\.com|\bllama\b
Mistralopenapi.mistral.aimistral-(large|small|medium|tiny)|mixtral|codestral|ministral|magistral|devstral|chat\.mistral\.ai|console\.mistral\.ai|\bmistral\b
Moonshot Kimiopenapi.moonshot.cn api.moonshot.aimoonshot-v1|kimi-k[0-9]|kimi-latest|kimi\.com|kimi\.moonshot\.cn|platform\.moonshot\.cn|\bkimi\b|\bmoonshot\b
Zhipu z.ai GLMopenopen.bigmodel.cn api.z.aiglm-[4-9]|chatglm|cogvideox|cogview|z\.ai|chat\.z\.ai|bigmodel\.cn|chatglm\.cn|\bzhipu\b|\bglm\b

Brand-inclusive = noisy levels. The bare brands (\bclaude\b, \bgemini\b) collide with ordinary words (the name, the zodiac), inflating some vendors by 40–90% — so cross-vendor levels aren't comparable; trust within-vendor trends.

2.3 · GitHub collaborator — vendor-native closed-only

"Collaborator" = an AI coding agent committing / opening PRs as its own GitHub account, here restricted to vendor-native agents attributable to one model vendor: claude[bot] (Anthropic), chatgpt-codex-connector[bot] (OpenAI Codex), gemini-code-assist[bot] and google-labs-jules[bot] (Google). All closed. Multi-model tools (Copilot, Cursor, …) are in 2.4.

By vendor
  • No open/closed split — open is a flat 0 by construction. Every vendor-native agent is a closed product; open-model agents (aider/OpenHands) run locally and commit under the developer's own account, invisible here (would need commit author-email, which GitHub Archive lacks).
  • Author vs reviewer (by dominant event type): authors (write code — Push/PR events) — Google (Jules); reviewers (comment on PRs — review events) — Anthropic (Claude), OpenAI (Codex), Google (Gemini Code Assist). Most agent event-volume here is review, not code-authoring.
Show the exact match cases (vendor-native actor logins)

A commit / PR counts here only when the event actor — the GitHub account that performed it — is one of these accounts (an exact login match, not a payload text search). Open-model agents (aider, OpenHands, Cline) instead run under the developer's own account, leave no such actor, and are invisible here.

Actor loginProductCamp
claude[bot]Anthropic (Claude)closed
gemini-code-assist[bot]Google (Gemini Code Assist)closed
google-labs-jules[bot]Google (Jules)closed
chatgpt-codex-connector[bot]OpenAI (Codex)closed

2.4 · Multi-model AI coding tools reference

The same "commits as its own account" signal for multi-model tools — products that run whatever model the user selects (mostly closed frontier models), so they can't be attributed to one vendor or camp. Shown for reference, split per tool: Copilot, Cursor, CodeRabbit, Devin, Lovable, Greptile, Sourcery, Cubic, Base44, Qodo.

By tool
  • Reference only — not part of the open-vs-closed measure. These tools are multi-model (Copilot / Cursor / Devin run GPT, Claude, Gemini interchangeably), so no camp can be assigned. They're here to show the total scale of agentic-coding adoption.
  • Author vs reviewer (by dominant event type): authors (write code — Push/PR events) — Cursor, Lovable, Devin, Base44; reviewers (comment on PRs — review events) — GitHub Copilot, CodeRabbit, Greptile, Sourcery, Cubic, Qodo. Most agent event-volume here is review, not code-authoring.
  • Multi-model tools dwarf the vendor-native agents. Copilot (11.6M) and CodeRabbit (6.6M) each exceed all four vendor-native agents (2.3) combined — so 2.3 is a small slice of total agentic activity.
  • Set from a 2026 top-[bot] audit — not exhaustive; new tools appear constantly.
Show the exact match cases (multi-model tool actor logins)

A commit / PR counts here only when the event actor — the GitHub account that performed it — is one of these accounts (an exact login match, not a payload text search). Open-model agents (aider, OpenHands, Cline) instead run under the developer's own account, leave no such actor, and are invisible here.

Actor loginProductCamp
base44-builder[bot]Base44multi-model
coderabbitai[bot]CodeRabbitmulti-model
cubic-dev-ai[bot]Cubicmulti-model
cursor[bot]Cursormulti-model
devin-ai-integration[bot]Devinmulti-model
CopilotGitHub Copilotmulti-model
greptile-apps[bot]Greptilemulti-model
lovable-dev[bot]Lovablemulti-model
qodo-code-review[bot]Qodomulti-model
sourcery-ai[bot]Sourcerymulti-model