clines
v2.0.2
Published
A tool to count lines of code and update the README.
Readme
clines
clines is a simple CLI tool that counts the number of lines of code in your project and updates your README.md with the results. It also categorizes your project based on its size.
Ever wondered if your project is small or big? Curious about how many lines of code your project currently has? clines provides an easy way to measure your codebase and keep track of its growth.
Example Output in README.md
After running clines, your README.md might look like this:
Lines of Code: 6999
Project Size: Well-structured project ⚙️| Extension | Files | Effective LOC | |-----------|--------|----------------:| |
.ts| 62 | 3210 | |.tsx| 41 | 2212 | |.js| 18 | 935 | |.css| 6 | 542 |
Installation
Install locally as a development dependency:
npm install --save-dev clinesUsage
Run the command in your project's root directory:
npx clinesYou can also specify a directory:
npx clines path/to/directoryConfiguration
To customize which files and directories should be excluded from the line count, create a clines.json file in the root of your project. If this file does not exist, clines will generate one with the following default settings:
{
"ignoreFiles": [
".log", ".gitignore", ".csv", ".ini", ".env", ".LICENSE", ".gitmodules"
],
"ignoreDirs": [
"node_modules", "dist", "build", "coverage", "logs", ".git", ".idea", ".vscode", "tmp", "out", "public", "static"
]
}ignoreFiles: Specifies file extensions that should be ignored.ignoreDirs: Defines directories that should be excluded from the count.
How It Works
- Recursively counts lines of code in the specified directory.
- Ignores files and directories based on
clines.jsonsettings. - Updates
README.mdwith the total line count inside the placeholders:
<!-- LINE_COUNT_PLACEHOLDER_1 -->
**Total Files:** `147`
**Lines of Code:** `6999`
**Project Size:** Well-structured project ⚙️
| Extension | Files | Effective LOC |
|-----------|--------|----------------:|
| `.ts` | 62 | 3210 |
| `.tsx` | 41 | 2212 |
| `.js` | 18 | 935 |
| `.css` | 6 | 542 |
<!-- LINE_COUNT_PLACEHOLDER_2 -->- You can place
<!-- LINE_COUNT_PLACEHOLDER_1 -->and<!-- LINE_COUNT_PLACEHOLDER_2 -->anywhere in yourREADME.md, andclineswill update the content inside them. - If no placeholders are provided,
clineswill append the line count information at the end ofREADME.md.
Project Size Labels
| Lines of Code | Project Size Label | | ------------- | -------------------------- | | < 500 | Tiny scriptlet 💡 | | < 2000 | Compact utility 🛠️ | | < 5000 | Growing codebase 🏗️ | | < 10000 | Well-structured project ⚙️ | | < 20000 | Robust system 🔬 | | < 50000 | Complex software 🏢 | | 50000+ | Massive code empire 🌌 |
License
MIT License © 2025 Adilet Baimyrza Uulu
