File Size Overall
  • There are 30 files with 2,615 lines of code.
    • 0 very long files (0 lines of code)
    • 1 long files (700 lines of code)
    • 2 medium size files (589 lines of code)
    • 4 small files (523 lines of code)
    • 23 very small files (803 lines of code)
0% | 26% | 22% | 20% | 30%
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
go0% | 29% | 24% | 21% | 24%
yaml0% | 0% | 0% | 0% | 100%
proto0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
pkg0% | 83% | 0% | 16% | 0%
internal0% | 0% | 38% | 25% | 35%
ROOT0% | 0% | 0% | 0% | 100%
proto0% | 0% | 0% | 0% | 100%
cmd0% | 0% | 0% | 0% | 100%
.github0% | 0% | 0% | 0% | 100%
Longest Files (Top 30)
File# lines# units
agent.pb.go
in pkg/v1
700 92
exec.go
in internal/rpc
381 9
vdagent.go
in internal/spice/vdagent
208 4
root.go
in internal/command
166 4
141 13
diskresizer.go
in internal/diskresizer
114 3
listener.go
in internal/vsock
102 6
95 -
proto
agent.proto
in proto/v1
62 -
vd.go
in internal/spice/vd
61 -
execuser.go
in internal/execuser
50 1
vdi.go
in internal/spice/vdi
49 3
exec_wrapper.go
in internal/rpc
45 2
clipboard.go
in internal/spice/vd
44 3
agentmessage.go
in internal/spice/vd
41 3
main.go
in cmd
40 2
rpc.go
in internal/rpc
37 2
conn.go
in internal/vsock
35 8
34 -
clipboardrequest.go
in internal/spice/vd
30 3
clipboardgrab.go
in internal/spice/vd
30 3
resolveip.go
in internal/rpc
29 1
capability.go
in internal/spice/vd
28 3
tart.go
in internal/tart
28 1
version.go
in internal/version
23 1
addr.go
in internal/vsock
11 2
buf.yaml
in root
10 -
dependabot.yaml
in .github
10 -
8 -
logginglevel.go
in internal/logginglevel
3 -
Large Files That Change Often (Top 14)
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
exec.go
in internal/rpc
381 ~2k–7k 7 ~100 ~5
vdagent.go
in internal/spice/vdagent
208 ~1k–3k 4 ~50 ~5
agent.pb.go
in pkg/v1
700 ~3k–10k 1 ~700 ~1
root.go
in internal/command
166 ~1k–3k 3 ~30 ~5
95 ~500–1.5k 2 ~20 ~5
141 ~700–2k 1 ~200 ~1
rpc.go
in internal/rpc
37 under 1k 3 ~10 ~3
listener.go
in internal/vsock
102 ~700–1.5k 1 ~50 ~2
34 under 1k 2 ~30 ~1
proto
agent.proto
in proto/v1
62 ~300–1k 1 ~70 ~1
execuser.go
in internal/execuser
50 under 1k 1 ~70 ~1
exec_wrapper.go
in internal/rpc
45 under 1k 1 ~50 ~1
resolveip.go
in internal/rpc
29 under 1k 1 ~20 ~1
8 under 1k 1 ~5 ~2

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 22)
File# lines# units
agent.pb.go
in pkg/v1
700 92
141 13
exec.go
in internal/rpc
381 9
conn.go
in internal/vsock
35 8
listener.go
in internal/vsock
102 6
vdagent.go
in internal/spice/vdagent
208 4
root.go
in internal/command
166 4
diskresizer.go
in internal/diskresizer
114 3
clipboardrequest.go
in internal/spice/vd
30 3
clipboardgrab.go
in internal/spice/vd
30 3
capability.go
in internal/spice/vd
28 3
agentmessage.go
in internal/spice/vd
41 3
clipboard.go
in internal/spice/vd
44 3
vdi.go
in internal/spice/vdi
49 3
main.go
in cmd
40 2
addr.go
in internal/vsock
11 2
exec_wrapper.go
in internal/rpc
45 2
rpc.go
in internal/rpc
37 2
execuser.go
in internal/execuser
50 1
version.go
in internal/version
23 1
resolveip.go
in internal/rpc
29 1
tart.go
in internal/tart
28 1
Files With Long Lines (Top 4)

There are 4 files with lines longer than 120 characters. In total, there are 14 long lines.

File# lines# units# long lines
agent.pb.go
in pkg/v1
700 92 8
141 13 4
diskresizer.go
in internal/diskresizer
114 3 1
95 - 1
Correlations

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

internal/spice/vdagent/vdagent.go x: 6 commits (all time) y: 208 lines of code internal/command/root.go x: 9 commits (all time) y: 166 lines of code internal/rpc/exec.go x: 10 commits (all time) y: 381 lines of code internal/rpc/exec_wrapper.go x: 1 commits (all time) y: 45 lines of code internal/rpc/rpc.go x: 5 commits (all time) y: 37 lines of code internal/vsock/listener.go x: 3 commits (all time) y: 102 lines of code buf.gen.yaml x: 2 commits (all time) y: 8 lines of code internal/rpc/resolveip.go x: 2 commits (all time) y: 29 lines of code pkg/v1/agent.pb.go x: 1 commits (all time) y: 700 lines of code pkg/v1/agent_grpc.pb.go x: 1 commits (all time) y: 141 lines of code proto/v1/agent.proto x: 1 commits (all time) y: 62 lines of code .goreleaser.yml x: 9 commits (all time) y: 95 lines of code internal/execuser/execuser.go x: 1 commits (all time) y: 50 lines of code .golangci.yml x: 3 commits (all time) y: 34 lines of code cmd/main.go x: 2 commits (all time) y: 40 lines of code internal/tart/tart.go x: 3 commits (all time) y: 28 lines of code .github/dependabot.yaml x: 1 commits (all time) y: 10 lines of code internal/vsock/conn.go x: 1 commits (all time) y: 35 lines of code internal/spice/vd/agentmessage.go x: 1 commits (all time) y: 41 lines of code internal/spice/vd/capability.go x: 1 commits (all time) y: 28 lines of code internal/spice/vd/clipboard.go x: 1 commits (all time) y: 44 lines of code internal/spice/vdi/vdi.go x: 1 commits (all time) y: 49 lines of code internal/diskresizer/diskresizer.go x: 1 commits (all time) y: 114 lines of code internal/logginglevel/logginglevel.go x: 1 commits (all time) y: 3 lines of code internal/version/version.go x: 1 commits (all time) y: 23 lines of code
700.0
lines of code
  min: 3.0
  average: 87.17
  25th percentile: 28.0
  median: 40.5
  75th percentile: 96.75
  max: 700.0
0 10.0
commits (all time)
min: 1.0 | average: 2.43 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 3.0 | max: 10.0

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

internal/spice/vdagent/vdagent.go x: 3 contributors (all time) y: 208 lines of code internal/command/root.go x: 2 contributors (all time) y: 166 lines of code internal/rpc/exec.go x: 4 contributors (all time) y: 381 lines of code internal/rpc/exec_wrapper.go x: 1 contributors (all time) y: 45 lines of code internal/rpc/rpc.go x: 3 contributors (all time) y: 37 lines of code internal/vsock/listener.go x: 2 contributors (all time) y: 102 lines of code buf.gen.yaml x: 2 contributors (all time) y: 8 lines of code internal/rpc/resolveip.go x: 2 contributors (all time) y: 29 lines of code pkg/v1/agent.pb.go x: 1 contributors (all time) y: 700 lines of code pkg/v1/agent_grpc.pb.go x: 1 contributors (all time) y: 141 lines of code proto/v1/agent.proto x: 1 contributors (all time) y: 62 lines of code .goreleaser.yml x: 3 contributors (all time) y: 95 lines of code internal/execuser/execuser.go x: 1 contributors (all time) y: 50 lines of code .golangci.yml x: 3 contributors (all time) y: 34 lines of code cmd/main.go x: 1 contributors (all time) y: 40 lines of code internal/tart/tart.go x: 1 contributors (all time) y: 28 lines of code .github/dependabot.yaml x: 1 contributors (all time) y: 10 lines of code internal/vsock/conn.go x: 1 contributors (all time) y: 35 lines of code internal/spice/vd/clipboard.go x: 1 contributors (all time) y: 44 lines of code internal/spice/vdi/vdi.go x: 1 contributors (all time) y: 49 lines of code internal/diskresizer/diskresizer.go x: 1 contributors (all time) y: 114 lines of code internal/logginglevel/logginglevel.go x: 1 contributors (all time) y: 3 lines of code internal/version/version.go x: 1 contributors (all time) y: 23 lines of code
700.0
lines of code
  min: 3.0
  average: 87.17
  25th percentile: 28.0
  median: 40.5
  75th percentile: 96.75
  max: 700.0
0 4.0
contributors (all time)
min: 1.0 | average: 1.5 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 2.0 | max: 4.0

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

internal/spice/vdagent/vdagent.go x: 2 commits (30d) y: 208 lines of code internal/command/root.go x: 1 commits (30d) y: 166 lines of code internal/rpc/exec.go x: 1 commits (30d) y: 381 lines of code internal/rpc/exec_wrapper.go x: 1 commits (30d) y: 45 lines of code internal/rpc/rpc.go x: 1 commits (30d) y: 37 lines of code internal/vsock/listener.go x: 1 commits (30d) y: 102 lines of code
381.0
lines of code
  min: 37.0
  average: 156.5
  25th percentile: 43.0
  median: 134.0
  75th percentile: 251.25
  max: 381.0
0 2.0
commits (30d)
min: 1.0 | average: 1.17 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 1.25 | max: 2.0

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

internal/spice/vdagent/vdagent.go x: 2 contributors (30d) y: 208 lines of code internal/command/root.go x: 1 contributors (30d) y: 166 lines of code internal/rpc/exec.go x: 1 contributors (30d) y: 381 lines of code internal/rpc/exec_wrapper.go x: 1 contributors (30d) y: 45 lines of code internal/rpc/rpc.go x: 1 contributors (30d) y: 37 lines of code internal/vsock/listener.go x: 1 contributors (30d) y: 102 lines of code
381.0
lines of code
  min: 37.0
  average: 156.5
  25th percentile: 43.0
  median: 134.0
  75th percentile: 251.25
  max: 381.0
0 2.0
contributors (30d)
min: 1.0 | average: 1.17 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 1.25 | max: 2.0

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

internal/spice/vdagent/vdagent.go x: 3 commits (90d) y: 208 lines of code internal/command/root.go x: 1 commits (90d) y: 166 lines of code internal/rpc/exec.go x: 6 commits (90d) y: 381 lines of code internal/rpc/exec_wrapper.go x: 1 commits (90d) y: 45 lines of code internal/rpc/rpc.go x: 3 commits (90d) y: 37 lines of code internal/vsock/listener.go x: 1 commits (90d) y: 102 lines of code buf.gen.yaml x: 1 commits (90d) y: 8 lines of code internal/rpc/resolveip.go x: 1 commits (90d) y: 29 lines of code pkg/v1/agent.pb.go x: 1 commits (90d) y: 700 lines of code pkg/v1/agent_grpc.pb.go x: 1 commits (90d) y: 141 lines of code proto/v1/agent.proto x: 1 commits (90d) y: 62 lines of code .goreleaser.yml x: 2 commits (90d) y: 95 lines of code internal/execuser/execuser.go x: 1 commits (90d) y: 50 lines of code .golangci.yml x: 2 commits (90d) y: 34 lines of code
700.0
lines of code
  min: 8.0
  average: 147.0
  25th percentile: 36.25
  median: 78.5
  75th percentile: 176.5
  max: 700.0
0 6.0
commits (90d)
min: 1.0 | average: 1.79 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 2.25 | max: 6.0

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

internal/spice/vdagent/vdagent.go x: 2 contributors (90d) y: 208 lines of code internal/command/root.go x: 1 contributors (90d) y: 166 lines of code internal/rpc/exec.go x: 2 contributors (90d) y: 381 lines of code internal/rpc/exec_wrapper.go x: 1 contributors (90d) y: 45 lines of code internal/rpc/rpc.go x: 2 contributors (90d) y: 37 lines of code internal/vsock/listener.go x: 1 contributors (90d) y: 102 lines of code buf.gen.yaml x: 1 contributors (90d) y: 8 lines of code internal/rpc/resolveip.go x: 1 contributors (90d) y: 29 lines of code pkg/v1/agent.pb.go x: 1 contributors (90d) y: 700 lines of code pkg/v1/agent_grpc.pb.go x: 1 contributors (90d) y: 141 lines of code proto/v1/agent.proto x: 1 contributors (90d) y: 62 lines of code .goreleaser.yml x: 1 contributors (90d) y: 95 lines of code internal/execuser/execuser.go x: 1 contributors (90d) y: 50 lines of code .golangci.yml x: 2 contributors (90d) y: 34 lines of code
700.0
lines of code
  min: 8.0
  average: 147.0
  25th percentile: 36.25
  median: 78.5
  75th percentile: 176.5
  max: 700.0
0 2.0
contributors (90d)
min: 1.0 | average: 1.29 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 2.0 | max: 2.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...