File Complexity Overall
  • There are 1,962 files with units, with 776,713 lines of code.
    • 8 very complex files (McCabe index sum 251+; 26,337 lines of code)
    • 26 complex files (McCabe index sum 126-250; 67,740 lines of code)
    • 138 medium complex files (McCabe index sum 51-125; 152,249 lines of code)
    • 215 slightly complex files (McCabe index sum 26-50; 133,908 lines of code)
    • 1,575 simple files (McCabe index sum 1-25; 396,479 lines of code)
  • 1,326 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system3% | 8% | 19% | 17% | 51%
Legend:
251+
126-250
51-125
26-50
1-25


explore: grouped by folders | grouped by complexity
File Complexity per Extension
251+
126-250
51-125
26-50
1-25
rs3% | 8% | 19% | 17% | 51%
py6% | 15% | 39% | 17% | 20%
ts0% | 0% | 68% | 0% | 31%
js0% | 0% | 0% | 0% | 100%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
codex-rs3% | 8% | 19% | 17% | 51%
sdk23% | 14% | 26% | 14% | 21%
scripts0% | 23% | 47% | 6% | 22%
.github0% | 0% | 30% | 46% | 22%
tools0% | 0% | 33% | 0% | 66%
codex-cli0% | 0% | 0% | 100% | 0%
bazel0% | 0% | 0% | 0% | 100%
Most Complex Files (Top 50)

The McCabe index of a file grows with its size: per 100 lines tells a large but plain file from a dense one, and most complex unit whether the complexity sits in one unit or is spread over many.

File# lines# unitsMcCabe index
(sum)
per 100
lines
most complex
unit
export.rs
in codex-rs/app-server-protocol/src
2789 107 471 17 53
resume_picker.rs
in codex-rs/tui/src
6747 198 426 6 17
markdown_render.rs
in codex-rs/tui/src
2872 126 398 14 18
textarea.rs
in codex-rs/tui/src/bottom_pane
3877 166 370 10 31
parse_command.rs
in codex-rs/shell-command/src
2552 117 341 13 69
mod.rs
in codex-rs/tui/src/bottom_pane/request_user_input
3478 153 315 9 49
list_selection_view.rs
in codex-rs/tui/src/bottom_pane
2780 111 293 11 44
update_sdk_artifacts.py
in sdk/python/scripts
1242 64 258 21 17
main.rs
in codex-rs/cli/src
4349 177 246 6 6
doctor.rs
in codex-rs/cli/src
2867 91 244 9 16
thread_history.rs
in codex-rs/app-server-protocol/src/protocol
5262 130 243 5 11
bwrap.rs
in codex-rs/linux-sandbox/src
2746 81 239 9 45
mcp_server_elicitation.rs
in codex-rs/tui/src/bottom_pane
2114 87 227 11 20
output.rs
in codex-rs/cli/src/doctor
1836 91 213 12 13
credential_broker.rs
in codex-rs/network-proxy/src
1564 23 192 12 97
run_codex_compliance.py
in scripts/mcp_conformance
2098 48 192 9 37
keymap.rs
in codex-rs/tui/src
3597 101 189 5 26
linux_run_main.rs
in codex-rs/linux-sandbox/src
1338 59 183 14 8
mod.rs
in codex-rs/tui/src/bottom_pane
3511 76 178 5 48
manager.rs
in codex-rs/core-plugins/src
3576 57 174 5 27
approval_overlay.rs
in codex-rs/tui/src/bottom_pane
2388 80 173 7 14
spec_plan.rs
in codex-rs/core/src/tools
1504 31 172 11 26
config_requirements.rs
in codex-rs/config/src
4571 104 172 4 25
reducer.rs
in codex-rs/analytics/src
3937 96 170 4 15
wrapping.rs
in codex-rs/tui/src
1159 39 169 15 21
client.py
in sdk/python/src/openai_codex
776 71 156 20 10
plugin_catalog.rs
in codex-rs/tui/src/chatwidget
1910 58 155 8 22
diff_render.rs
in codex-rs/tui/src
2304 92 151 7 20
permissions.rs
in codex-rs/protocol/src
2266 52 150 7 23
controller.rs
in codex-rs/tui/src/streaming
1616 66 144 9 9
models.rs
in codex-rs/protocol/src
4051 112 135 3 7
hooks_browser_view.rs
in codex-rs/tui/src/bottom_pane
1597 72 133 8 13
mod.rs
in codex-rs/core/src/config
4152 61 129 3 9
windows_dangerous_commands.rs
in codex-rs/shell-command/src/command_safety
651 55 129 20 22
app_link_view.rs
in codex-rs/tui/src/bottom_pane
1396 51 123 9 16
slash_dispatch.rs
in codex-rs/tui/src/chatwidget
1320 15 123 9 47
methods.rs
in codex-rs/codex-api/src/endpoint/realtime_websocket
2979 64 121 4 14
powershell_tree_sitter.rs
in codex-rs/shell-command/src/command_safety
434 17 119 27 32
certs.rs
in codex-rs/network-proxy/src
1169 44 117 10 11
shell_snapshot_literals.rs
in codex-rs/shell-command/src
688 7 117 17 84
status_surfaces.rs
in codex-rs/tui/src/chatwidget
1081 43 116 11 9
ipc.rs
in codex-rs/tui/src/ide_context
1136 57 115 10 7
highlight.rs
in codex-rs/tui/src/render
1383 66 114 8 8
client.rs
in codex-rs/core/src
2351 40 112 5 13
codex_conformance_adapter.py
in scripts/mcp_conformance
890 27 112 13 34
auth.rs
in codex-rs/tui/src/onboarding
1496 38 110 7 13
seatbelt.rs
in codex-rs/sandboxing/src
1003 26 110 11 17
mcp_tool_call.rs
in codex-rs/core/src
2373 37 109 5 15
setup_provisioning.rs
in codex-rs/windows-sandbox-rs/src
1415 28 108 8 32
custom_terminal.rs
in codex-rs/tui/src
1085 39 107 10 21
About This Analysis
  • File complexity is the sum of the McCabe indexes (conditional complexity) of the units (methods, functions...) in a file.
  • Files are classified in five categories based on that sum: 1-25 (simple files), 26-50 (slightly complex files), 51-125 (medium complex files), 126-250 (complex files), 251+ (very complex files). The default bands are five times the unit complexity bands, as a file is a group of units.
  • Only main code files with units are classified. Files without units (languages without unit analysis, or files without functions) have no complexity to measure and are left out rather than counted as simple.
  • A very complex file holds many decisions, which often means it has too many responsibilities: a candidate to split, and a place where changes need more testing.
Learn more...