Analyze project metrics: lines of code, language distribution, function complexity, code-to-comment ratio, test coverage indicators, dependency counts, largest files, and tech debt signals (TODOs, FIXMEs, HACKs). Supports 40+ languages. Use when asked to analyze a codebase, count lines of code, check code complexity, get project statistics, audit code quality, measure tech debt, or understand language distribution in a project. Triggers on "codebase stats", "lines of code", "LOC", "code complexity", "project metrics", "code quality", "tech debt", "language distribution", "project size", "code analysis", "cyclomatic complexity".

Install

openclaw skills install @charlie-morrison/codebase-stats

Codebase Stats

Project metrics, complexity analysis, and health indicators. Pure Python, zero deps, 40+ languages.

Quick Start

bash
# Analyze current directory
python3 scripts/codebase_stats.py

# Analyze specific project
python3 scripts/codebase_stats.py /path/to/project

# Markdown report
python3 scripts/codebase_stats.py /path/to/project --format markdown

# JSON (for CI/CD dashboards)
python3 scripts/codebase_stats.py /path/to/project --format json

# Filter by language
python3 scripts/codebase_stats.py --language Python

# Save report
python3 scripts/codebase_stats.py --format markdown --output stats.md

What It Measures

CategoryMetrics
SizeTotal files, code/comment/blank lines, lines per file
LanguagesDistribution by code lines and file count (40+ languages)
ComplexityPer-function cyclomatic complexity estimate, top complex functions
QualityCode-to-comment ratio, test file coverage indicator
Dependenciesnpm, pip, Go modules, Cargo crate counts
Tech DebtTODO/FIXME/HACK/XXX counts across codebase
FilesTop 10 largest files by line count

Supported Languages

Python, JavaScript, TypeScript, Java, Go, Rust, Ruby, PHP, C, C++, C#, Swift, Kotlin, Scala, R, Lua, Perl, Shell, SQL, HTML, CSS, SCSS, Vue, Svelte, Dart, Elixir, Erlang, Zig, Nim, V, Solidity, Terraform, Protobuf, and more.

Exit Codes

  • 0 — Success
  • 1 — Error (directory not found, language not found)