NeonLoc
A blazingly fast, cyber-styled source code counter. Count your lines with pure edge.
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, andStyle, each with aCode / Comment / Blankratio 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
autochoosing 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 ERRORStable for any file NeonLoc couldn't analyze (never silently skipped). - File Size Distribution & Duplication:
-Dshows size buckets, empty/minimal files, and the largest files;-Xdetects duplicated code blocks across files. - Git Integration:
--gitshows branch/commit/author/diffstat;--sinceshows a daily LOC trend derived from Git history. - Config File: Drop a
.neonloc.tomlin your project to set scan, output, and threshold defaults. - Export Files:
-e/--exportwrites timestamped JSON + text reports to.neonloc/;--htmlwrites a standalone, self-contained HTML report. - Scripting Friendly:
-q/--quiet,--no-banner,--no-color.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 neonloc-0.6.3.tar.gz.
File metadata
- Download URL: neonloc-0.6.3.tar.gz
- Upload date:
- Size: 24.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e75f81412b262d42cb5806c957b5047e2545df0d85e810700aae23221f7707f
|
|
| MD5 |
239ea5a53c26547128689cd54d7340c2
|
|
| BLAKE2b-256 |
323843f8a3ff55240288735af853a8aa8a5a5911cd4445ea12c592552eaac131
|
Provenance
The following attestation bundles were made for neonloc-0.6.3.tar.gz:
Publisher:
release.yml on debeski/neonloc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
neonloc-0.6.3.tar.gz -
Subject digest:
3e75f81412b262d42cb5806c957b5047e2545df0d85e810700aae23221f7707f - Sigstore transparency entry: 2440555610
- Sigstore integration time:
-
Permalink:
debeski/neonloc@46535c6380ca60e11450b4417b8f94c7468fc113 -
Branch / Tag:
refs/tags/v0.6.3 - Owner: https://github.com/debeski
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@46535c6380ca60e11450b4417b8f94c7468fc113 -
Trigger Event:
push
-
Statement type:
File details
Details for the file neonloc-0.6.3-py3-none-any.whl.
File metadata
- Download URL: neonloc-0.6.3-py3-none-any.whl
- Upload date:
- Size: 23.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a961eb2c7519eb3ba5a98f640fb5270a8082c25a3064d1a917095243b42dafc
|
|
| MD5 |
c1e96b6b433847627062162b205d0024
|
|
| BLAKE2b-256 |
ab8d76cdb08c7e946919342a4c003e8c9214222a752b5b59cfc33c4cab101a8d
|
Provenance
The following attestation bundles were made for neonloc-0.6.3-py3-none-any.whl:
Publisher:
release.yml on debeski/neonloc
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
neonloc-0.6.3-py3-none-any.whl -
Subject digest:
8a961eb2c7519eb3ba5a98f640fb5270a8082c25a3064d1a917095243b42dafc - Sigstore transparency entry: 2440555645
- Sigstore integration time:
-
Permalink:
debeski/neonloc@46535c6380ca60e11450b4417b8f94c7468fc113 -
Branch / Tag:
refs/tags/v0.6.3 - Owner: https://github.com/debeski
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@46535c6380ca60e11450b4417b8f94c7468fc113 -
Trigger Event:
push
-
Statement type: