A simple CLI tool to analyse code statistics in a directory
Project description
codesize
A simple CLI tool that scans directories for code files and displays statistics. Supports Python, Go, Rust, Elixir, JavaScript, TypeScript, C, and Objective-C.
.h files are auto-detected as C or Objective-C based on their content.
Respects .gitignore files found in the tree by default (pass --no-gitignore to disable).
Features
- Recursively scans directories for supported code files
- Reports per-language breakdown:
- Number of files
- Total size (KB/MB)
- Total lines
- Code lines (excluding blank lines, docstrings, and decorative comments)
- Combined totals when multiple languages are present
- Only shows languages that have files — no clutter
- Beautiful ASCII box output with ANSI colours (when running in a terminal)
- Plain text and JSON output formats available
Installation
# Using uv
uv pip install codesize
# Using pip
pip install codesize
Usage
# Scan current directory
codesize
# Scan a specific directory
codesize /path/to/project
# Plain text output (no box)
codesize --plain
# JSON output
codesize --json
# Ignore .gitignore files (scan everything)
codesize --no-gitignore
# Sort languages by something other than code lines
codesize --sort files # or: size, lines, code (default), name
Languages are listed biggest first by code-line count by default. Pass --sort name for alphabetical, or --sort files|size|lines for the other fields.
Example Output
╭──────────────────────────────────────────────╮
│ Code Stats: my-project │
│──────────────────────────────────────────────│
│ Files Size Lines Code │
│ Python 42 128.50 KB 3,847 2,691 │
│ Go 18 65.20 KB 1,523 1,210 │
│ Rust 7 22.00 KB 580 445 │
│──────────────────────────────────────────────│
│ Total 67 215.70 KB 5,950 4,346 │
╰──────────────────────────────────────────────╯
Development
# Set up development environment
make dev
# Run linting and type checks
make check
# Format code
make format
# Build wheel and docs
make build
Publishing
Publishing requires cal-publish-python configuration.
# Build first
make build
# Publish wheel to PyPI and docs to GitLab Pages
make publish
Licence
Unlicense — public domain. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file codesize-1.4.0-py3-none-any.whl.
File metadata
- Download URL: codesize-1.4.0-py3-none-any.whl
- Upload date:
- Size: 83.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a707730ceda4f5c54141a6a1a0f80c342656a4c1bd83bf51588c8dc2606dcb25
|
|
| MD5 |
3e42bab0209eb2c871b673f7f32913fa
|
|
| BLAKE2b-256 |
64844f45e9b3a6b0e625ebbe9831b24166a70f226a39aa0df9e7a80f74e04962
|