code-stats

0xDarkMatter's avatarfrom 0xDarkMatter

Analyze codebase with tokei (fast line counts by language) and difft (semantic AST-aware diffs). Get quick project overview without manual counting. Triggers on: how big is codebase, count lines of code, what languages, show semantic diff, compare files, code statistics.

⭐3stars🔀0forks📁View on GitHub🕐Updated Dec 27, 2025

When & Why to Use This Skill

The Code Statistics skill provides high-performance codebase analysis by integrating tokei for rapid line counts and difft for AST-aware semantic diffs. It allows developers to instantly grasp project scale, language composition, and meaningful structural changes, streamlining the process of code auditing and repository exploration.

Use Cases

  • Project Onboarding: Quickly assess the size and primary languages of a new codebase to understand its complexity and technical stack.
  • Semantic Code Review: Use AST-aware diffing to focus on actual logic changes between file versions, ignoring insignificant whitespace or formatting shifts.
  • Refactoring Impact Analysis: Compare code statistics before and after refactoring to quantify code reduction and structural improvements.
  • Technical Debt Tracking: Monitor codebase growth and language distribution trends to identify areas that may require optimization or modernization.
namecode-stats
description"Analyze codebase with tokei (fast line counts by language) and difft (semantic AST-aware diffs). Get quick project overview without manual counting. Triggers on: how big is codebase, count lines of code, what languages, show semantic diff, compare files, code statistics."
compatibility"Requires tokei and difft CLI tools. Install: brew install tokei difft (macOS) or cargo install tokei difftastic (cross-platform)."
allowed-tools"Bash"

Code Statistics

Quickly analyze codebase size, composition, and changes.

tokei - Line Counts

# Count all code
tokei

# Compact output sorted by code
tokei --compact --sort code

# Specific languages
tokei --type=TypeScript,JavaScript

# Exclude directories
tokei --exclude node_modules --exclude dist

# JSON output for scripting
tokei --output json | jq '.Total.code'

Sample Output

===============================================================================
 Language            Files        Lines         Code     Comments       Blanks
===============================================================================
 TypeScript             45        12847         9823         1456         1568
 JavaScript             12         2341         1876          234          231
-------------------------------------------------------------------------------
 Total                  57        15188        11699         1690         1799
===============================================================================

difft - Semantic Diffs

# Compare files
difft old.ts new.ts

# Inline mode
difft --display=inline old.ts new.ts

# With git
GIT_EXTERNAL_DIFF=difft git diff
GIT_EXTERNAL_DIFF=difft git show HEAD~1

Why Semantic?

Traditional diff difft
Line-by-line AST-aware
Shows moved as delete+add Recognizes moves
Whitespace sensitive Ignores formatting

Quick Reference

Task Command
Count all code tokei
Compact output tokei --compact
Sort by code tokei --sort code
TypeScript only tokei -t TypeScript
JSON output tokei --output json
Exclude dir tokei --exclude node_modules
Semantic diff difft file1 file2
Git diff GIT_EXTERNAL_DIFF=difft git diff

When to Use

  • Getting quick codebase overview
  • Comparing code changes semantically
  • Understanding project composition
  • Reviewing refactoring impact
  • Tracking codebase growth

Additional Resources

For detailed patterns, load:

  • ./references/tokei-advanced.md - Filtering, output formats, CI integration
  • ./references/difft-advanced.md - Display modes, git integration, language support