Skip to main content

NeonLoc

A blazingly fast, cyber-styled source code counter. Count your lines with pure edge.

PyPI version

NeonLoc Logo

Installation

Install directly from PyPI:

pip install neonloc

From source:

git clone https://github.com/debeski/neonloc.git
cd neonloc
pip install .

Usage

Simply run neonloc in your terminal and pass a directory. By default, it will use the current directory (.).

neonloc .

Or target a specific folder:

neonloc /path/to/project

List line metrics by layout-aware paths:

neonloc . -L auto

Use -L files, --list-loc dirs, or --list-loc both to force file, directory, or combined LOC tables. When -L is passed, NeonLoc shows only the detailed path table view plus the final scan summary. Tame large listings with --depth N (dirs mode), --top/--top-dirs/--top-languages N, and --sort loc|name|code|comments|ratio (files mode).

Export the scan result as JSON + text report:

neonloc . -e

Writes timestamped result_<timestamp>.json/.txt files under the scanned directory's .neonloc folder (never overwritten).

Export a standalone HTML report:

neonloc . --html report.html

Other useful flags:

neonloc . -D              # file-size distribution, empty/minimal files, largest files
neonloc . -X              # duplicate-code detection (normalized line-hash matching)
neonloc . --git           # branch, HEAD commit, author, uncommitted diffstat
neonloc . --since 30d     # daily LOC trend from Git history (also accepts w/m/y)
neonloc . -q              # print only the total LOC count, for scripting
neonloc . --no-banner --no-color  # script-friendly output

Configure defaults with a .neonloc.toml file in the scanned directory, so neonloc . just works:

[scan]
respect_gitignore = true
include_hidden = false
include_generated = false

[output]
color = true
banner = true

[thresholds]
large_file = 500
huge_file = 1000

Features

  • Categorized Metrics: Distinct, color-coded tables for Code, Documentation, Config, Data, Markup, and Style, each with a Code / Comment / Blank ratio column.
  • Cyber Aesthetic: Pure neon glory in your terminal, rendered with Rich.
  • Lightning Fast: Scans and parses directories in the blink of an eye.
  • Language Support: Python, JavaScript, TypeScript, Go, C/C++, C#, Rust, Swift, Kotlin, HTML, Jinja/Django, XML/SVG, CSS, YAML, JSON, SQL, CSV, Markdown, Text, Bash, Ruby, Java, PHP, Vue, Svelte, TOML, INI/Config, Dockerfile, and common ignore files (.gitignore, etc.).
  • Deep Metrics: Counts true code logic, comments, blanks, and total lines.
  • Path LOC Tables: Optional file and directory tables replace the generic category report, with auto choosing flat, modular, or mixed layout output. Supports depth limiting, top-N caps, and sorting.
  • Project Health: Always-on panel with code ratio, average file size, largest file, empty/huge-file counts, and warnings — plus a FILE READ ERRORS table for any file NeonLoc couldn't analyze (never silently skipped).
  • File Size Distribution & Duplication: -D shows size buckets, empty/minimal files, and the largest files; -X detects duplicated code blocks across files.
  • Git Integration: --git shows branch/commit/author/diffstat; --since shows a daily LOC trend derived from Git history.
  • Config File: Drop a .neonloc.toml in your project to set scan, output, and threshold defaults.
  • Export Files: -e/--export writes timestamped JSON + text reports to .neonloc/; --html writes a standalone, self-contained HTML report.
  • Scripting Friendly: -q/--quiet, --no-banner, --no-color.

View on PyPIView on GitHub

Download files

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

Source Distribution

neonloc-0.6.0.tar.gz (21.9 kB view details)

Uploaded Source

Built Distribution

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

neonloc-0.6.0-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file neonloc-0.6.0.tar.gz.

File metadata

  • Download URL: neonloc-0.6.0.tar.gz
  • Upload date:
  • Size: 21.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for neonloc-0.6.0.tar.gz
Algorithm Hash digest
SHA256 456a454107ade2a2801a8f72301118350b2de2e3726d268ccb2566bb8a8cba8b
MD5 6d80bfe50744f905674596819a798c23
BLAKE2b-256 1dbef309509b8ac2fb29c4792260855e125f68435473affbfa2655ad63c89b5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for neonloc-0.6.0.tar.gz:

Publisher: release.yml on debeski/neonloc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neonloc-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: neonloc-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 21.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for neonloc-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 93da92c06bbda394b1d125ba3137a2bbba2025595224cb121a56c6e9980e332b
MD5 5e6327f4981705128aaed3e612c4261a
BLAKE2b-256 0b5479b1f48af239fd482609c279ee35095e86a5644d110c86eec2a284fcf53e

See more details on using hashes here.

Provenance

The following attestation bundles were made for neonloc-0.6.0-py3-none-any.whl:

Publisher: release.yml on debeski/neonloc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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