Repository intelligence

Health Report: litellm

2026-08-12T16:22:48.834364Z all history
B
86
Overall health score
Declining
-1.57 pts/mo
7055
Files Analyzed
1919
Hotspot Files
157
Critical Issues
2.6%
Duplication

Quick Insights

Key findings from the analysis - prioritized by impact

Technical Debt Hotspot

Found 157 critical and 275 high-priority debt items. These are areas where the team has explicitly noted problems. Consider scheduling time to address the most impactful items.

Low Cohesion Classes

Detected 11 classes with low cohesion (LCOM > 50). These classes may be doing too many unrelated things. Consider splitting them into more focused components.

Active Development

71076 commits across 6644 files.

Healthy Codebase

Overall health score of 86 indicates a well-maintained codebase. Continue current practices and address issues as they arise.

Hotspots

Files with both high complexity and frequent changes - highest risk for bugs

1919
Hotspot Files
1.0
Highest Risk
0.63
Average Risk

Risk Landscape

Files in the upper-right are both complex and frequently changed -- the most likely sources of bugs. Bubble size reflects overall risk score. Green is low risk, yellow moderate, red high.

FileLangRiskChangesComplexity

Low Cohesion Classes

Classes doing too many unrelated things - candidates for splitting

ClassFileLanguageLCOMWMCCBO

Architectural Smells

Structural problems that make the codebase harder to change safely

47
Total Smells
8
Cyclic Dependencies
38
Hub Dependencies
0
Unstable Dependencies
TypeSeverityFiles InvolvedSuggestion
Cyclic DependencyCritical.../ust/crates/core/src/messages/types.rs, .../s/core/src/messages/transformation.rsBreak the cycle by introducing an interface or restructuring the dependency direction
Cyclic DependencyCritical.../s/_components/IndexesTableColumns.tsx, .../r-stores/_components/IndexesTable.tsx, .../tor-stores/_components/IndexesTab.tsxBreak the cycle by introducing an interface or restructuring the dependency direction
Cyclic DependencyCritical.../d_model/complexity_router_keywords.ts, .../onents/add_model/KeywordTierRules.tsxBreak the cycle by introducing an interface or restructuring the dependency direction
Cyclic DependencyCritical.../s/fetch_available_models_team_key.tsx, .../components/llm_calls/fetch_models.tsx, .../add_model/SemanticKeywordMatching.tsx, .../_model/ClassificationMethodConfig.tsx, .../s/add_model/AdaptiveRoutingConfig.tsx, ...//add_model/ComplexityRouterConfig.tsx, .../del/build_complexity_router_config.ts, .../n_components/check_openapi_schema.tsx, .../ponents/key_team_helpers/key_list.tsx, .../shboard/src/components/networking.tsxBreak the cycle by introducing an interface or restructuring the dependency direction
Cyclic DependencyCritical...//PassThroughEndpointsTableColumns.tsx, .../ettings/PassThroughEndpointsTable.tsx, .../d/src/components/add_pass_through.tsx, .../roughSettings/PassThroughSettings.tsxBreak the cycle by introducing an interface or restructuring the dependency direction
Cyclic DependencyCritical.../src/components/team/TeamMemberTab.tsx, .../oard/src/components/team/TeamInfo.tsxBreak the cycle by introducing an interface or restructuring the dependency direction
Cyclic DependencyCritical.../d/src/data/claimsCompliancePrompts.ts, ...//data/canadianPiiCompliancePrompts.ts, .../ata/codeExecutionCompliancePrompts.ts, .../rc/data/financialCompliancePrompts.ts, ...//src/data/insultsCompliancePrompts.ts, .../shboard/src/data/compliancePrompts.tsBreak the cycle by introducing an interface or restructuring the dependency direction
Cyclic DependencyCritical.../pareUI/components/ComparisonPanel.tsx, .../nd/components/compareUI/CompareUI.tsxBreak the cycle by introducing an interface or restructuring the dependency direction
Central ConnectorCritical.../shboard/src/components/networking.tsxDecompose into smaller components with single responsibility; extract interfaces for consumers
Hub DependencyHigh.../ponents/molecules/message_manager.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../s/molecules/notifications_manager.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../oard/src/components/team/TeamInfo.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../rc/components/molecules/logo/Logo.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../ard/src/app/(dashboard)/networking.tsConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../pp/(dashboard)/hooks/useAuthorized.tsConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../dashboard/src/components/ui/badge.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh...//components/ui/ui-loading-spinner.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHightests/e2e/ui/helpers/navigation.tsConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../rc/components/AIHub/ModelHubTable.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../nents/organisms/create_key_button.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../d/src/components/ui/dropdown-menu.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../ard)/hooks/common/queryKeysFactory.tsConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../-dashboard/src/components/ui/card.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../yground/components/chat_ui/ChatUI.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../dashboard/src/components/ui/input.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../m-dashboard/src/components/navbar.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../onents/shared/DataTable/DataTable.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../on_components/DeleteResourceModal.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh...//components/provider_info_helpers.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../app/(dashboard)/hooks/keys/useKeys.tsConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../oks/organizations/useOrganizations.tsConsider splitting this component into smaller, more focused modules
Hub DependencyHighlitellm/proxy/auth/roles.pyConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../ashboard/src/components/ui/button.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../-dashboard/src/components/leftnav.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHightests/e2e/ui/constants.tsConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../(dashboard)/hooks/models/useModels.tsConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../hboard)/hooks/projects/useProjects.tsConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../tellm-dashboard/src/lib/cva.config.tsConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../components/llm_calls/fetch_models.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../ponents/key_team_helpers/key_list.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../omponents/templates/key_info_view.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../rvers/_components/CreateMCPServer.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../ts/organization/organization_view.tsxConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../ellm-dashboard/src/utils/dataUtils.tsConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../p/(dashboard)/hooks/teams/useTeams.tsConsider splitting this component into smaller, more focused modules
Hub DependencyHighlitellm/files/types.pyConsider splitting this component into smaller, more focused modules
Hub DependencyHigh.../itellm-dashboard/tests/test-utils.tsxConsider splitting this component into smaller, more focused modules

Dependency Structure

Import graph analysis - cycles, bottlenecks, and instability

7055
Modules
4834
Dependencies
1.4
Avg Degree
8
Dependency Cycles

Detected Cycles

Cycle (2 files)
litellm-rust/crates/core/src/messages/types.rs.../rust/crates/core/src/messages/transformation.rslitellm-rust/crates/core/src/messages/types.rs
Cycle (3 files)
.../ctor-stores/_components/IndexesTableColumns.tsx.../ard)/vector-stores/_components/IndexesTable.tsx.../board)/vector-stores/_components/IndexesTab.tsx.../ctor-stores/_components/IndexesTableColumns.tsx
Cycle (2 files)
.../ponents/add_model/complexity_router_keywords.ts.../d/src/components/add_model/KeywordTierRules.tsx.../ponents/add_model/complexity_router_keywords.ts
Cycle (10 files)
.../eam_helpers/fetch_available_models_team_key.tsx.../board/src/components/llm_calls/fetch_models.tsx.../omponents/add_model/SemanticKeywordMatching.tsx.../onents/add_model/ClassificationMethodConfig.tsx...//components/add_model/AdaptiveRoutingConfig.tsx.../components/add_model/ComplexityRouterConfig.tsx.../nts/add_model/build_complexity_router_config.ts.../ents/common_components/check_openapi_schema.tsx.../rd/src/components/key_team_helpers/key_list.tsxui/litellm-dashboard/src/components/networking.tsx.../eam_helpers/fetch_available_models_team_key.tsx
Cycle (4 files)
.../ghSettings/PassThroughEndpointsTableColumns.tsx.../ssThroughSettings/PassThroughEndpointsTable.tsx.../m-dashboard/src/components/add_pass_through.tsx.../nts/PassThroughSettings/PassThroughSettings.tsx.../ghSettings/PassThroughEndpointsTableColumns.tsx
Cycle (2 files)
.../dashboard/src/components/team/TeamMemberTab.tsx.../ellm-dashboard/src/components/team/TeamInfo.tsx.../dashboard/src/components/team/TeamMemberTab.tsx
Cycle (6 files)
.../m-dashboard/src/data/claimsCompliancePrompts.ts.../hboard/src/data/canadianPiiCompliancePrompts.ts.../oard/src/data/codeExecutionCompliancePrompts.ts.../ashboard/src/data/financialCompliancePrompts.ts.../-dashboard/src/data/insultsCompliancePrompts.tsui/litellm-dashboard/src/data/compliancePrompts.ts.../m-dashboard/src/data/claimsCompliancePrompts.ts
Cycle (2 files)
.../onents/compareUI/components/ComparisonPanel.tsx.../)/playground/components/compareUI/CompareUI.tsx.../onents/compareUI/components/ComparisonPanel.tsx
FileLangPageRankBetweennessInOutInstability

Known Issues

Problems the team has documented but not yet fixed (TODO, FIXME, HACK)

849
Total Issues
157
Critical
275
High
38
Medium

By Severity

By Category

SeverityCategoryFileLangLineComment

Duplicated Code

Code that appears in multiple places - bugs fixed in one spot may need fixing elsewhere

2.6%
Duplication Rate
256
Clone Groups
21501
Duplicate Lines
811764
Total Lines

Duplication Level

Technical Debt Gradient

Per-file debt scores - prioritize cleanup where it matters most

7055
Files Scored
90.1
Average Score
A-
Average Grade
43
Failing Files

Grade Distribution

FileLangScoreGradeStructuralSemanticDuplicationCoupling

Change Activity

How frequently code is being modified

71076
Total Changes
6644
Files Changed
3248300
Lines Added
897642
Lines Deleted
FileLangChangesContributorsChurn Score

Code Ownership

How knowledge is distributed - concentrated knowledge is a risk

6
Bus Factor
1949
Knowledge Silos
6827
Total Files
28.5%
Files at Risk

Top Contributors

Temporal Coupling

Files that frequently change together - reveals hidden dependencies not in the import graph

520
Coupled Pairs
83
Strong Couplings
0.23
Avg Strength
1.0
Max Strength
File AFile BCo-changesStrength

Score Breakdown

How the health score is calculated from individual components

Complexity25%
95
Duplication20%
95
Cohesion15%
78
Debt Gradient15%
90
Known Debt10%
86
Coupling10%
43
Code Smells5%
96

Glossary

Definitions for the quality and risk terminology used in this report

Glossary of Terms

Health Score

A weighted composite metric (0-100) measuring overall code quality. Above 80 is good, 60-80 needs attention, below 60 is concerning.

Hotspot

A file that is both complex AND frequently changed. These are the highest-risk areas because they're hard to change safely but get changed often.

Bus Factor

The minimum number of people who would need to leave before critical knowledge is lost. Higher is better; 1 is a serious risk.

Knowledge Silo

A file that only one person has ever touched. If that person leaves, the knowledge goes with them.

Cyclomatic Complexity

The number of independent paths through code. More paths means more test cases needed and more ways things can go wrong.

Cognitive Complexity

How hard code is to understand. Accounts for nesting, breaks in flow, and things that make humans struggle to follow the logic.

LCOM (Cohesion)

How well a class's methods work together. High LCOM means methods don't share data - the class is probably doing too many unrelated things.

CBO (Coupling)

How many other classes a class depends on. High coupling means changes ripple through the codebase - everything is connected to everything.

Churn Rate

How frequently a file changes. High churn indicates instability - the code may be unclear, have bugs, or be undergoing active development.

Self-Admitted Technical Debt (SATD)

Code issues the team has documented (TODO, FIXME, HACK, XXX). These represent known shortcuts that need eventual attention.

Code Clone / Duplicate

Similar code appearing in multiple places. When a bug is fixed in one spot, it may need fixing elsewhere. Candidates for refactoring into shared functions.

Technical Debt Gradient

Per-file quality score (0-100) combining complexity, duplication, coupling, and other factors. Lower scores mean more accumulated debt.

Temporal Coupling

Files that frequently change together in the same commits. High temporal coupling suggests hidden dependencies not visible in the import graph.

Architectural Smell

A structural pattern that violates design principles: cyclic dependencies, hub-like modules, or stable code depending on unstable code.

Instability

Ratio of outgoing to total dependencies. 0 = maximally stable (many things depend on it), 1 = maximally unstable (depends on many things).

PageRank

Importance of a file in the dependency graph. Files with high PageRank are depended on by many other important files.