LLM observability SDK downloads, 2026-09
Downloads of each listed tool's headline PyPI and npm package from 2026-09-01 to 2026-09-30, compared with 2026-08. Measured 2026-10-07; run status complete. The largest PyPI mover with at least 1,000 downloads in 2026-08 was Lunary (+147.9%).
Package downloads include CI runs and installs pulled in as dependencies; they are not people or customers. PyPI and npm are never added together. Movers need at least 1,000 downloads in the previous month.
Top movers by category
Tracing & observability
- Lunary (PyPI
lunary): 61,206 → 151,702 (+147.9%) - Last9 (AI / LLM observability) (PyPI
last9-genai): 1,641 → 2,419 (+47.4%) - Galtea (PyPI
galtea): 6,462 → 8,600 (+33.1%) - Pydantic Logfire (npm
@pydantic/logfire-node): 143,999 → 362,350 (+151.6%) - Laminar (npm
@lmnr-ai/lmnr): 149,237 → 214,156 (+43.5%) - Langfuse (npm
@langfuse/tracing): 7,272,141 → 9,943,547 (+36.7%)
Evaluation
- Lunary (PyPI
lunary): 61,206 → 151,702 (+147.9%) - Galtea (PyPI
galtea): 6,462 → 8,600 (+33.1%) - Okareo (PyPI
okareo): 6,955 → 8,726 (+25.5%) - Pydantic Logfire (npm
@pydantic/logfire-node): 143,999 → 362,350 (+151.6%) - Laminar (npm
@lmnr-ai/lmnr): 149,237 → 214,156 (+43.5%) - Langfuse (npm
@langfuse/tracing): 7,272,141 → 9,943,547 (+36.7%)
Guardrails & safety
- NeMo Guardrails (PyPI
nemoguardrails): 400,715 → 494,127 (+23.3%) - Fiddler AI (PyPI
fiddler-otel): 2,651 → 3,256 (+22.8%) - Portkey (PyPI
portkey-ai): 3,976,719 → 4,190,600 (+5.4%) - OpenLIT (npm
openlit): 4,112 → 5,398 (+31.3%) - Orq.ai (npm
@orq-ai/node): 170,560 → 198,137 (+16.2%) - Promptfoo (npm
promptfoo): 2,700,713 → 3,026,104 (+12.0%)
Prompt management
- Lunary (PyPI
lunary): 61,206 → 151,702 (+147.9%) - Portkey (PyPI
portkey-ai): 3,976,719 → 4,190,600 (+5.4%) - Braintrust (PyPI
braintrust): 6,891,803 → 6,829,474 (-0.9%) - Langfuse (npm
@langfuse/tracing): 7,272,141 → 9,943,547 (+36.7%) - OpenLIT (npm
openlit): 4,112 → 5,398 (+31.3%) - Braintrust (npm
braintrust): 5,937,478 → 7,104,136 (+19.6%)
Gateways with observability
- Portkey (PyPI
portkey-ai): 3,976,719 → 4,190,600 (+5.4%) - Pydantic Logfire (PyPI
logfire): 13,707,474 → 13,302,869 (-3.0%) - Helicone (PyPI
helicone-helpers): 20,778 → 18,405 (-11.4%) - Pydantic Logfire (npm
@pydantic/logfire-node): 143,999 → 362,350 (+151.6%) - Orq.ai (npm
@orq-ai/node): 170,560 → 198,137 (+16.2%) - Helicone (npm
@helicone/helpers): 14,519 → 16,327 (+12.5%)
PyPI, all headline packages
| Tool | Package | This month | Previous month | Change | Reproduce |
|---|---|---|---|---|---|
| LiteLLM | PyPIlitellm | 91,220,891 | 639,210,245 | -85.7% | query |
| LangSmith | PyPIlangsmith | 79,059,601 | 114,398,334 | -30.9% | query |
| Langfuse | PyPIlangfuse | 23,586,307 | 26,123,802 | -9.7% | query |
| MLflow | PyPImlflow-tracing | 15,557,546 | 24,610,364 | -36.8% | query |
| Pydantic Logfire | PyPIlogfire | 13,302,869 | 13,707,474 | -3.0% | query |
| Pydantic Evals | PyPIpydantic-evals | 8,186,335 | 11,564,368 | -29.2% | query |
| Braintrust | PyPIbraintrust | 6,829,474 | 6,891,803 | -0.9% | query |
| Portkey | PyPIportkey-ai | 4,190,600 | 3,976,719 | +5.4% | query |
| Inspect AI | PyPIinspect-ai | 2,801,769 | 7,917,325 | -64.6% | query |
| DeepEval / Confident AI | PyPIdeepeval | 2,601,822 | 4,770,912 | -45.5% | query |
| Traceloop / OpenLLMetry | PyPItraceloop-sdk | 1,808,065 | 2,066,920 | -12.5% | query |
| Opik | PyPIopik | 1,784,146 | 2,975,474 | -40.0% | query |
| lm-evaluation-harness | PyPIlm-eval | 1,059,656 | 1,711,783 | -38.1% | query |
| Ragas | PyPIragas | 1,049,561 | 1,498,206 | -29.9% | query |
| Evidently AI | PyPIevidently | 858,288 | 1,297,000 | -33.8% | query |
| W&B Weave | PyPIweave | 815,986 | 996,510 | -18.1% | query |
| Arize Phoenix | PyPIarize-phoenix | 685,423 | 2,099,334 | -67.4% | query |
| NeMo Guardrails | PyPInemoguardrails | 494,127 | 400,715 | +23.3% | query |
| Arize AX | PyPIarize-otel | 351,534 | 359,307 | -2.2% | query |
| OpenLIT | PyPIopenlit | 283,972 | 417,431 | -32.0% | query |
| Openlayer | PyPIopenlayer | 151,776 | 158,179 | -4.0% | query |
| Lunary | PyPIlunary | 151,702 | 61,206 | +147.9% | query |
| Azure AI Evaluation SDK (Microsoft Foundry) | PyPIazure-ai-evaluation | 137,960 | 257,525 | -46.4% | query |
| AgentOps | PyPIagentops | 109,821 | 244,811 | -55.1% | query |
| Orq.ai | PyPIorq-ai-sdk | 109,001 | 124,947 | -12.8% | query |
| PromptLayer | PyPIpromptlayer | 100,379 | 161,270 | -37.8% | query |
| Judgment Labs (Judgeval) | PyPIjudgeval | 61,808 | 82,190 | -24.8% | query |
| garak | PyPIgarak | 40,845 | 69,566 | -41.3% | query |
| Agenta | PyPIagenta | 38,943 | 58,084 | -33.0% | query |
| Galileo | PyPIgalileo | 38,109 | 39,437 | -3.4% | query |
| TruLens | PyPItrulens | 23,807 | 37,951 | -37.3% | query |
| Helicone | PyPIhelicone-helpers | 18,405 | 20,778 | -11.4% | query |
| Giskard | PyPIgiskard | 16,784 | 31,201 | -46.2% | query |
| Promptfoo | PyPIpromptfoo | 12,747 | 15,740 | -19.0% | query |
| Latitude | PyPIlatitude-telemetry | 10,761 | 16,861 | -36.2% | query |
| HoneyHive | PyPIhoneyhive | 10,548 | 16,144 | -34.7% | query |
| Okareo | PyPIokareo | 8,726 | 6,955 | +25.5% | query |
| Galtea | PyPIgaltea | 8,600 | 6,462 | +33.1% | query |
| LlamaFirewall | PyPIllamafirewall | 4,845 | 4,913 | -1.4% | query |
| Fiddler AI | PyPIfiddler-otel | 3,256 | 2,651 | +22.8% | query |
| Last9 (AI / LLM observability) | PyPIlast9-genai | 2,419 | 1,641 | +47.4% | query |
| Scorecard | PyPIscorecard-ai | 1,590 | 1,787 | -11.0% | query |
| UpTrain | PyPIuptrain | 1,270 | 2,023 | -37.2% | query |
| AI Verify Moonshot | PyPIaiverify-moonshot | 1,088 | 2,482 | -56.2% | query |
| Scorable (formerly Root Signals) | PyPIscorable | 340 | 443 | -23.3% | query |
npm, all headline packages
| Tool | Package | This month | Previous month | Change | Reproduce |
|---|---|---|---|---|---|
| LangSmith | npmlangsmith | 27,052,306 | 26,562,510 | +1.8% | query |
| Langfuse | npm@langfuse/tracing | 9,943,547 | 7,272,141 | +36.7% | query |
| Braintrust | npmbraintrust | 7,104,136 | 5,937,478 | +19.6% | query |
| Promptfoo | npmpromptfoo | 3,026,104 | 2,700,713 | +12.0% | query |
| W&B Weave | npmweave | 2,030,408 | 1,980,353 | +2.5% | query |
| Portkey | npmportkey-ai | 803,024 | 899,261 | -10.7% | query |
| OpenEvals | npmopenevals | 545,638 | 538,123 | +1.4% | query |
| Traceloop / OpenLLMetry | npm@traceloop/node-server-sdk | 519,626 | 653,998 | -20.5% | query |
| Raindrop | npmraindrop-ai | 374,634 | 627,329 | -40.3% | query |
| Pydantic Logfire | npm@pydantic/logfire-node | 362,350 | 143,999 | +151.6% | query |
| Arize Phoenix | npm@arizeai/phoenix-otel | 342,396 | 313,321 | +9.3% | query |
| Laminar | npm@lmnr-ai/lmnr | 214,156 | 149,237 | +43.5% | query |
| Orq.ai | npm@orq-ai/node | 198,137 | 170,560 | +16.2% | query |
| LangWatch | npmlangwatch | 191,292 | 228,236 | -16.2% | query |
| Opik | npmopik | 160,297 | 163,875 | -2.2% | query |
| Judgment Labs (Judgeval) | npmjudgeval | 143,216 | 122,062 | +17.3% | query |
| Latitude | npm@latitude-data/telemetry | 23,053 | 28,214 | -18.3% | query |
| PromptLayer | npmpromptlayer | 20,754 | 27,061 | -23.3% | query |
| Helicone | npm@helicone/helpers | 16,327 | 14,519 | +12.5% | query |
| Scorecard | npmscorecard-ai | 8,277 | 8,487 | -2.5% | query |
| Galileo | npmgalileo | 5,803 | 6,909 | -16.0% | query |
| OpenLIT | npmopenlit | 5,398 | 4,112 | +31.3% | query |
| Openlayer | npmopenlayer | 1,279 | 820 | +56.0% | query |
| Respan | npm@respan/respan | 470 | 904 | -48.0% | query |
| AgentOps | npmagentops | 365 | 6,343 | -94.2% | query |
| HoneyHive | npm@honeyhive/api-client | 308 | 258 | +19.4% | query |
| Okareo | npmokareo-ts-sdk | 151 | 228 | -33.8% | query |
| Future AGI | npm@future-agi/ai-evaluation | 59 | 960 | -93.9% | query |
Data file: data/reports/2026-09.json. Method: methodology.