File Size Overall
  • There are 71 files with 8,244 lines of code.
    • 1 very long files (1,129 lines of code)
    • 3 long files (1,719 lines of code)
    • 7 medium size files (2,016 lines of code)
    • 8 small files (1,116 lines of code)
    • 52 very small files (2,264 lines of code)
13% | 20% | 24% | 13% | 27%
Legend:
1001+
501-1000
201-500
101-200
1-100


explore: grouped by folders | grouped by size | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
ts22% | 21% | 16% | 12% | 27%
py0% | 29% | 29% | 14% | 26%
css0% | 0% | 100% | 0% | 0%
html0% | 0% | 100% | 0% | 0%
mjs0% | 0% | 0% | 47% | 52%
yaml0% | 0% | 0% | 0% | 100%
pyi0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
plugins22% | 34% | 11% | 16% | 15%
typescript0% | 0% | 45% | 6% | 48%
python0% | 0% | 62% | 0% | 37%
.github0% | 0% | 0% | 47% | 52%
ROOT0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
controller.ts
in plugins/bits-and-bolts/src/app
1129 32
build-models.py
in plugins/bits-and-bolts/scripts
643 21
register.ts
in plugins/bits-and-bolts/src/server
541 12
scene.ts
in plugins/bits-and-bolts/src/app/viewer
535 30
__init__.py
in python/src/openai_mcp_form_protocol
409 22
catalog.ts
in plugins/bits-and-bolts/src/server
367 21
styles.css
in typescript
296 -
settings.ts
in typescript/src/server
258 1
settings.py
in python/src/openai_mcp_extensions
248 8
resources.ts
in typescript/src/app
221 5
index.html
in plugins/bits-and-bolts/src/app
217 -
mjs
rehearse_releases.mjs
in .github/scripts
188 -
model_studio.py
in plugins/bits-and-bolts/scripts
187 5
three.ts
in plugins/bits-and-bolts/src/app/renderers
160 12
model.ts
in plugins/bits-and-bolts/src/app/shared
129 4
model_gltf.py
in plugins/bits-and-bolts/scripts
120 2
transport.ts
in typescript/src/app
115 5
step-worker.ts
in plugins/bits-and-bolts/src/app/viewer
111 1
model.ts
in plugins/bits-and-bolts/src/app/viewer
106 3
preview.ts
in plugins/bits-and-bolts/src/app/shared
96 1
check_packages.py
in .github/scripts
83 1
schema.ts
in typescript/src/server/forms
81 3
__init__.py
in python/src/openai_mcp_extensions
78 -
index.ts
in typescript/src/server
77 -
fields.ts
in typescript/src/server/forms
76 -
lighting.ts
in plugins/bits-and-bolts/src/app/shared
75 1
mentions.ts
in typescript/src/server
75 1
prepare-legends.py
in plugins/bits-and-bolts/scripts
74 1
extensions.ts
in typescript/src/app
74 5
inspection.ts
in plugins/bits-and-bolts/src/app/viewer
71 2
mjs
build.mjs
in plugins/bits-and-bolts/scripts
70 -
file-picker.ts
in typescript/src/server/forms
70 1
mjs
dev.mjs
in plugins/bits-and-bolts/scripts
69 -
_elicitation.py
in python/src/openai_mcp_extensions/form
65 -
forms.ts
in plugins/bits-and-bolts/src/server
62 1
mentions.py
in python/src/openai_mcp_extensions
61 3
elicitation.ts
in typescript/src/server/forms
61 1
index.ts
in typescript/src/app
56 -
model-context.ts
in typescript/src/app
52 2
bug-report.yml
in .github/ISSUE_TEMPLATE
52 -
contracts.ts
in plugins/bits-and-bolts/src/shared
51 -
local-store.ts
in plugins/bits-and-bolts/src/server
49 8
types.ts
in plugins/bits-and-bolts/src/app/renderers
46 -
_resource_picker.py
in python/src/openai_mcp_extensions/form
42 3
ui.ts
in typescript/src/server
42 -
message.ts
in typescript/src/app
41 1
ui.py
in python/src/openai_mcp_extensions
39 -
mjs
build-app.mjs
in plugins/bits-and-bolts/scripts
38 -
deep-link.ts
in typescript/src/app
36 1
files.ts
in typescript/src/app
36 1
Large Files That Change Often (Top 7)
To change a file, an AI coding agent (or a person) has to read it: these files are read the most for the changes in the past year (lines × changes).
File# lines≈ tokens
to read
# changes
(1y)
≈ lines edited
per change
lines read per
line changed
__init__.py
in python/src/openai_mcp_form_protocol
409 ~2k–7k 1 ~2 ~200
catalog.ts
in plugins/bits-and-bolts/src/server
367 ~2k–7k 1 ~50 ~7
bug-report.yml
in .github/ISSUE_TEMPLATE
52 ~300–1k 2 ~30 ~2
file-picker.ts
in typescript/src/server/forms
70 ~300–1k 1 ~1 ~70
request.yml
in .github/ISSUE_TEMPLATE
23 under 1k 2 ~15 ~2
_resource_picker.py
in python/src/openai_mcp_extensions/form
42 under 1k 1 ~5 ~7
config.yml
in .github/ISSUE_TEMPLATE
1 under 1k 1 ~1 ~1

Tokens are lines × 7 to 14 (analysis.fileReadsForChanges). Lines edited per change are the file's lines added and deleted divided by its commits over the whole history. Agents read about 2,000 lines at a time: when a 17,000-line file was split into modules, the tokens an agent read for the same change fell by 83% (The Economic Benefit of Refactoring, 2026).

Files With Most Units (Top 43)
File# lines# units
controller.ts
in plugins/bits-and-bolts/src/app
1129 32
scene.ts
in plugins/bits-and-bolts/src/app/viewer
535 30
__init__.py
in python/src/openai_mcp_form_protocol
409 22
build-models.py
in plugins/bits-and-bolts/scripts
643 21
catalog.ts
in plugins/bits-and-bolts/src/server
367 21
three.ts
in plugins/bits-and-bolts/src/app/renderers
160 12
register.ts
in plugins/bits-and-bolts/src/server
541 12
settings.py
in python/src/openai_mcp_extensions
248 8
local-store.ts
in plugins/bits-and-bolts/src/server
49 8
_schema.py
in python/src/openai_mcp_extensions/form
30 5
model_studio.py
in plugins/bits-and-bolts/scripts
187 5
resources.ts
in typescript/src/app
221 5
extensions.ts
in typescript/src/app
74 5
transport.ts
in typescript/src/app
115 5
model.ts
in plugins/bits-and-bolts/src/app/shared
129 4
_resource_picker.py
in python/src/openai_mcp_extensions/form
42 3
mentions.py
in python/src/openai_mcp_extensions
61 3
model.ts
in plugins/bits-and-bolts/src/app/viewer
106 3
schema.ts
in typescript/src/server/forms
81 3
extensions.py
in python/src/openai_mcp_extensions
25 2
model_gltf.py
in plugins/bits-and-bolts/scripts
120 2
inspection.ts
in plugins/bits-and-bolts/src/app/viewer
71 2
model-context.ts
in typescript/src/app
52 2
pyi
__init__.pyi
in python/typings/rfc3986_validator
2 1
resources.py
in python/src/openai_mcp_extensions
21 1
prepare-legends.py
in plugins/bits-and-bolts/scripts
74 1
vite.config.ts
in plugins/bits-and-bolts
17 1
stl.ts
in plugins/bits-and-bolts/src/app/shared
24 1
lighting.ts
in plugins/bits-and-bolts/src/app/shared
75 1
preview.ts
in plugins/bits-and-bolts/src/app/shared
96 1
step-worker.ts
in plugins/bits-and-bolts/src/app/viewer
111 1
forms.ts
in plugins/bits-and-bolts/src/server
62 1
index.ts
in plugins/bits-and-bolts/src/server
30 1
deep-link.ts
in typescript/src/app
36 1
message.ts
in typescript/src/app
41 1
files.ts
in typescript/src/app
36 1
file-picker.ts
in typescript/src/server/forms
70 1
elicitation.ts
in typescript/src/server/forms
61 1
mentions.ts
in typescript/src/server
75 1
resources.ts
in typescript/src/server
19 1
settings.ts
in typescript/src/server
258 1
extensions.ts
in typescript/src/server
17 1
check_packages.py
in .github/scripts
83 1
Files With Long Lines (Top 6)

There are 6 files with lines longer than 120 characters. In total, there are 7 long lines.

File# lines# units# long lines
controller.ts
in plugins/bits-and-bolts/src/app
1129 32 2
mjs
build.mjs
in plugins/bits-and-bolts/scripts
70 - 1
model.ts
in plugins/bits-and-bolts/src/app/shared
129 4 1
catalog.ts
in plugins/bits-and-bolts/src/server
367 21 1
settings.ts
in typescript/src/server
258 1 1
request.yml
in .github/ISSUE_TEMPLATE
23 - 1
Correlations

File Size vs. Commits (all time): 7 points

.github/ISSUE_TEMPLATE/request.yml x: 2 commits (all time) y: 23 lines of code .github/ISSUE_TEMPLATE/bug-report.yml x: 2 commits (all time) y: 52 lines of code .github/ISSUE_TEMPLATE/config.yml x: 1 commits (all time) y: 1 lines of code plugins/bits-and-bolts/src/server/catalog.ts x: 1 commits (all time) y: 367 lines of code python/src/openai_mcp_extensions/form/_resource_picker.py x: 1 commits (all time) y: 42 lines of code python/src/openai_mcp_form_protocol/__init__.py x: 1 commits (all time) y: 409 lines of code typescript/src/server/forms/file-picker.ts x: 1 commits (all time) y: 70 lines of code
409.0
lines of code
  min: 1.0
  average: 137.71
  25th percentile: 23.0
  median: 52.0
  75th percentile: 367.0
  max: 409.0
0 2.0
commits (all time)
min: 1.0 | average: 1.29 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 2.0 | max: 2.0

File Size vs. Contributors (all time): 7 points

.github/ISSUE_TEMPLATE/request.yml x: 1 contributors (all time) y: 23 lines of code .github/ISSUE_TEMPLATE/bug-report.yml x: 1 contributors (all time) y: 52 lines of code .github/ISSUE_TEMPLATE/config.yml x: 1 contributors (all time) y: 1 lines of code plugins/bits-and-bolts/src/server/catalog.ts x: 1 contributors (all time) y: 367 lines of code python/src/openai_mcp_extensions/form/_resource_picker.py x: 1 contributors (all time) y: 42 lines of code python/src/openai_mcp_form_protocol/__init__.py x: 1 contributors (all time) y: 409 lines of code typescript/src/server/forms/file-picker.ts x: 1 contributors (all time) y: 70 lines of code
409.0
lines of code
  min: 1.0
  average: 137.71
  25th percentile: 23.0
  median: 52.0
  75th percentile: 367.0
  max: 409.0
0 1.0
contributors (all time)
min: 1.0 | average: 1.0 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 1.0 | max: 1.0

File Size vs. Commits (30 days): 7 points

.github/ISSUE_TEMPLATE/request.yml x: 2 commits (30d) y: 23 lines of code .github/ISSUE_TEMPLATE/bug-report.yml x: 2 commits (30d) y: 52 lines of code .github/ISSUE_TEMPLATE/config.yml x: 1 commits (30d) y: 1 lines of code plugins/bits-and-bolts/src/server/catalog.ts x: 1 commits (30d) y: 367 lines of code python/src/openai_mcp_extensions/form/_resource_picker.py x: 1 commits (30d) y: 42 lines of code python/src/openai_mcp_form_protocol/__init__.py x: 1 commits (30d) y: 409 lines of code typescript/src/server/forms/file-picker.ts x: 1 commits (30d) y: 70 lines of code
409.0
lines of code
  min: 1.0
  average: 137.71
  25th percentile: 23.0
  median: 52.0
  75th percentile: 367.0
  max: 409.0
0 2.0
commits (30d)
min: 1.0 | average: 1.29 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 2.0 | max: 2.0

File Size vs. Contributors (30 days): 7 points

.github/ISSUE_TEMPLATE/request.yml x: 1 contributors (30d) y: 23 lines of code .github/ISSUE_TEMPLATE/bug-report.yml x: 1 contributors (30d) y: 52 lines of code .github/ISSUE_TEMPLATE/config.yml x: 1 contributors (30d) y: 1 lines of code plugins/bits-and-bolts/src/server/catalog.ts x: 1 contributors (30d) y: 367 lines of code python/src/openai_mcp_extensions/form/_resource_picker.py x: 1 contributors (30d) y: 42 lines of code python/src/openai_mcp_form_protocol/__init__.py x: 1 contributors (30d) y: 409 lines of code typescript/src/server/forms/file-picker.ts x: 1 contributors (30d) y: 70 lines of code
409.0
lines of code
  min: 1.0
  average: 137.71
  25th percentile: 23.0
  median: 52.0
  75th percentile: 367.0
  max: 409.0
0 1.0
contributors (30d)
min: 1.0 | average: 1.0 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 1.0 | max: 1.0

File Size vs. Commits (90 days): 7 points

.github/ISSUE_TEMPLATE/request.yml x: 2 commits (90d) y: 23 lines of code .github/ISSUE_TEMPLATE/bug-report.yml x: 2 commits (90d) y: 52 lines of code .github/ISSUE_TEMPLATE/config.yml x: 1 commits (90d) y: 1 lines of code plugins/bits-and-bolts/src/server/catalog.ts x: 1 commits (90d) y: 367 lines of code python/src/openai_mcp_extensions/form/_resource_picker.py x: 1 commits (90d) y: 42 lines of code python/src/openai_mcp_form_protocol/__init__.py x: 1 commits (90d) y: 409 lines of code typescript/src/server/forms/file-picker.ts x: 1 commits (90d) y: 70 lines of code
409.0
lines of code
  min: 1.0
  average: 137.71
  25th percentile: 23.0
  median: 52.0
  75th percentile: 367.0
  max: 409.0
0 2.0
commits (90d)
min: 1.0 | average: 1.29 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 2.0 | max: 2.0

File Size vs. Contributors (90 days): 7 points

.github/ISSUE_TEMPLATE/request.yml x: 1 contributors (90d) y: 23 lines of code .github/ISSUE_TEMPLATE/bug-report.yml x: 1 contributors (90d) y: 52 lines of code .github/ISSUE_TEMPLATE/config.yml x: 1 contributors (90d) y: 1 lines of code plugins/bits-and-bolts/src/server/catalog.ts x: 1 contributors (90d) y: 367 lines of code python/src/openai_mcp_extensions/form/_resource_picker.py x: 1 contributors (90d) y: 42 lines of code python/src/openai_mcp_form_protocol/__init__.py x: 1 contributors (90d) y: 409 lines of code typescript/src/server/forms/file-picker.ts x: 1 contributors (90d) y: 70 lines of code
409.0
lines of code
  min: 1.0
  average: 137.71
  25th percentile: 23.0
  median: 52.0
  75th percentile: 367.0
  max: 409.0
0 1.0
contributors (90d)
min: 1.0 | average: 1.0 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 1.0 | max: 1.0
About This Analysis
  • File size measurements show the distribution of size of files.
  • Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
  • It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...