Skip to main content

Just Count Total Line Of Code

Project description

ccloc - Count Lines of Code

A simple and fast CLI tool to count lines of code in your projects, built with Python and managed by uv.

Features

  • ๐Ÿ“Š Count lines of code by file extension/language
  • ๐ŸŽฏ Filter by specific file extensions
  • ๐Ÿšซ Exclude directories and files
  • ๐Ÿ“ˆ Beautiful table output with Rich
  • ๐Ÿ“„ Multiple output formats (table, JSON, CSV)
  • โšก Fast and efficient
  • ๐ŸŽจ Automatic comment and blank line detection

Installation

Using uv (recommended)

uv pip install ccloc

Using pip

pip install ccloc

From source

git clone https://github.com/yourusername/cloc.git
cd cloc
uv sync

Usage

Basic usage

Count lines in the current directory:

ccloc

Count lines in a specific directory:

ccloc /path/to/project

Filter by file extensions

Count only Python files:

ccloc --extensions .py
# or
ccloc -e .py

Count Python and JavaScript files:

ccloc -e .py -e .js -e .ts

Exclude directories

Exclude specific directories (by default excludes: .git, .venv, node_modules, __pycache__):

ccloc -x build -x dist

Output formats

Table format (default):

ccloc

JSON format:

ccloc --format json
# or
ccloc -f json

CSV format:

ccloc -f csv > output.csv

Recursive scanning

By default, the tool recursively scans all subdirectories. You can disable this:

# Scan only top-level directory
ccloc --no-recursive

# Scan only top-level Python files
ccloc --no-recursive -e .py

Combined examples

Count Python and JavaScript files, excluding tests:

ccloc -e .py -e .js -x tests -x __tests__

Scan only current directory without recursion:

ccloc . --no-recursive

Count all code in a project with JSON output:

ccloc /path/to/project -f json

Output

The tool provides detailed statistics:

  • Files: Number of files for each language/extension
  • Lines: Total lines in files
  • Blank: Blank lines
  • Comment: Comment lines
  • Code: Actual code lines (Lines - Blank - Comment)

Example output:

                       Lines of Code                        
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Language/Extension โ”ƒ Files โ”ƒ Lines โ”ƒ Blank โ”ƒ Comment โ”ƒ  Code โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ .py                โ”‚     5 โ”‚  1234 โ”‚   123 โ”‚     111 โ”‚  1000 โ”‚
โ”‚ .js                โ”‚     3 โ”‚   567 โ”‚    45 โ”‚      66 โ”‚   456 โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ TOTAL              โ”‚     8 โ”‚  1801 โ”‚   168 โ”‚     177 โ”‚  1456 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Development

This project uses uv for dependency management.

Setup development environment

# Clone the repository
git clone https://github.com/chuongmep/cloc.git
cd cloc

# Install dependencies
uv sync

# Run the tool in development mode
uv run ccloc

Run tests

uv run pytest

Build package

uv build

Supported Languages

The tool automatically detects comments for:

  • Python (.py)
  • JavaScript/TypeScript (.js, .ts)
  • Java (.java)
  • C/C++ (.c, .cpp)
  • C# (.cs)
  • Go (.go)
  • Rust (.rs)
  • PHP (.php)
  • Ruby (.rb)
  • Shell scripts (.sh)
  • YAML (.yaml, .yml)

And many more! Files with any extension can be counted.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see LICENSE file for details

Author

Chuong Ho - chuongpqvn@gmail.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ccloc-0.1.1.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ccloc-0.1.1-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file ccloc-0.1.1.tar.gz.

File metadata

  • Download URL: ccloc-0.1.1.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ccloc-0.1.1.tar.gz
Algorithm Hash digest
SHA256 382dd037b3faa708bbc4c700aff536c5dafb2fc129f974d6900cd93a4506b773
MD5 572b30021e628355e58a7973189bc2ff
BLAKE2b-256 5318288ac08d519f635adf92aa2525c80af2ae3fbee9b05592fbac1c250dca79

See more details on using hashes here.

File details

Details for the file ccloc-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ccloc-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ccloc-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dd9ff0bca1491488bb66ce4aa4405d49d89015b7b4b2301e15c17f8376749d66
MD5 9db20b025fa0e29666513dd2397fd130
BLAKE2b-256 d141fbd22cd6ddff64528e45ac2d68253b7a46d8bc73fb34c0e1027cc9cd83cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page