Know the shape of your project, not just the size.
Tallyman is a command-line tool that gives you a real picture of your codebase - not just raw line counts, but where your effort actually lives. It groups results into meaningful categories like Code, Design, Docs, Specs, and Data, so you can see at a glance whether your project is mostly Python logic, CSS styling, or Markdown documentation.
Installuv tool install tallyman-metrics
Then just point it at a project:
tallyman # analyze current directory tallyman /path/to/project # analyze a specific path tallyman --setup # re-run the interactive setup tallyman --no-color # disable colored output tallyman --image # save a PNG summary card to Desktop tallyman --image-light # light-themed PNG variant tallyman --with-spaces # use total lines (incl. comments/blanks) for totals
Tools like cloc, tokei, and scc are excellent at counting lines of code. If all you need is raw numbers, they're great choices.
But line counts alone don't tell you much about a project's shape. Is your codebase mostly application logic, or has the CSS layer quietly grown to rival your backend? Are those Markdown files general docs, or are they specifications driving your development? How much of your project is configuration and data files versus actual code?
Tallyman answers these questions. It organizes every recognized file into one of six categories - Code, DevOps, Design, Docs, Specs, and Data - and shows you both the raw line count and the "effective" line count (excluding comments and blank lines) for each.
A few things that set it apart:
specs/, plans/, or agents/ are automatically reclassified from Docs to Specs. If you're using planning documents to drive development (especially with AI-assisted workflows), Tallyman tracks that separately..tally-config.toml so subsequent runs are instant..gitignore and .git/info/exclude patterns automatically. It skips virtual environments, node_modules, build artifacts, and anything else you've already told Git to ignore.--with-spaces to base summaries and percentages on total lines instead.tally-config.toml and reused on every run--image (dark) or --image-light (light theme)Want to share your project's code stats in a README, a slide deck, or a social post? Use --image to generate a clean PNG summary card:
tallyman --image # dark theme (default) tallyman --image-light # light theme
The image is saved to your Desktop (or the current directory if no Desktop is found) with a filename based on the project name. Here's an example from the CommandBook macOS app:
The card includes category totals with effective line counts, a colored language composition bar, and a compact legend - everything you need to show the shape of your project at a glance.
Supported LanguagesTallyman recognizes 40 languages across six categories:
| Category | Languages |
|---|---|
| Code | Python, Rust, Go, JavaScript, TypeScript, Java, C, C++, C#, Swift, Kotlin, Ruby, Shell, Lua, PHP, Perl, R, Dart, Scala, Elixir, Zig, Haskell, Erlang, OCaml, Nim, V |
| DevOps | Terraform, Makefile, Docker |
| Design | CSS, SCSS, LESS, HTML (+ 12 template formats), SVG |
| Docs | Markdown, reStructuredText |
| Specs | Markdown and reStructuredText files auto-detected in spec directories |
| Data | TOML, YAML, JSON, XML, SQL |
| Language | Extensions / Filenames |
|---|---|
| Python | .py |
| Rust | .rs |
| Go | .go |
| JavaScript | .js, .jsx, .mjs |
| TypeScript | .ts, .tsx |
| Java | .java |
| C | .c |
| C Header | .h |
| C++ | .cpp, .hpp, .cc, .cxx |
| C# | .cs |
| Swift | .swift |
| Kotlin | .kt, .kts |
| Ruby | .rb |
| Shell | .sh, .bash, .zsh |
| Lua | .lua |
| PHP | .php |
| Perl | .pl, .pm |
| R | .r, .R |
| Dart | .dart |
| Scala | .scala |
| Elixir | .ex, .exs |
| Zig | .zig |
| Haskell | .hs |
| Erlang | .erl |
| OCaml | .ml, .mli |
| Nim | .nim, .nims |
| V | .v, .vv |
| Language | Extensions / Filenames |
|---|---|
| Terraform | .tf, .tfvars |
| Makefile | .mk, Makefile, makefile, GNUmakefile |
| Docker | .dockerfile, Dockerfile*, docker-compose.yml/yaml, compose.yml/yaml |
| Language | Extensions |
|---|---|
| CSS | .css |
| SCSS | .scss |
| LESS | .less |
| HTML | .html, .htm, .xhtml, .shtml, .pt, .jinja, .jinja2, .j2, .njk, .hbs, .ejs, .mustache |
| SVG | .svg |
| Language | Extensions |
|---|---|
| Markdown | .md, .mdx |
| reStructuredText | .rst |
| Language | Extensions |
|---|---|
| TOML | .toml |
| YAML | .yml, .yaml |
| JSON | .json |
| XML | .xml |
| SQL | .sql |
Tallyman runs a simple pipeline:
Spec directories (specs/, plans/, specifications/, agents/) are auto-detected. Any Markdown or reStructuredText files inside them are reclassified from Docs to Specs, giving you a clear picture of how much of your project is specification-driven.
Comment detection covers single-line comment styles (#, //, --, %, ;). Multi-line comment blocks (/* */, """ """) are not currently detected - lines inside them are counted as code.
On first run, Tallyman launches an interactive TUI where you can browse your project tree and configure which directories to exclude or mark as spec directories. Your choices are saved to .tally-config.toml in the project root.
To re-run setup at any time:
Tallyman also respects the NO_COLOR environment variable to disable colored output, following the no-color.org convention.
Contributions are welcome! Whether it's adding support for a new language, improving detection, or fixing a bug, we'd love the help.
Before opening a PR, please create an issue first to discuss what you have in mind. This helps make sure your idea aligns with the direction of the project and saves everyone time. Once we've agreed on the approach, fire away with the pull request.
LicenseMIT License - Created by Michael Kennedy
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | py2many: Transpiler of Python to Many Other Languages | 0 | 22.5 | 05-03-2026 |
| 2 | Pymetrica: A Codebase Analysis Tool | 0 | 10 | 15-05-2026 |
| 3 | Sifty: OSS Windows Maintenance CLI | 0 | 10 | 12-07-2026 |
| 4 | vibescore: One-Command Quality Score for Any Python Project | 0 | 22.5 | 30-04-2026 |
| 5 | entelligence-cli 0.1.105 | 5 | 7 | 20-07-2026 |
| 6 | skill-scanner - Security Scanner for Agent Skills | 0 | 24.29 | 08-03-2026 |
| 7 | whichllm - поиск лучшей LLM модели под оборудование | 0 | 10 | 08-06-2026 |
| 8 | PyPy: A new benchmark runner for PyPy | 0 | 7.35 | 20-06-2026 |
| 9 | miniword: A WYSIWYG Word Processor in Python | 0 | 10 | 07-05-2026 |
| 10 | cmd-chat: Peer-to-Peer Encrypted CLI Chat | 0 | 50 | 06-02-2026 |