Tokei
Count your code, quickly.
Install / Use
/learn @XAMPPRocky/TokeiREADME
Tokei (時計)
Tokei is a program that displays statistics about your code. Tokei will show the number of files, total lines within those files and code, comments, and blanks grouped by language.
Example
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Language Files Lines Code Comments Blanks
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
BASH 4 49 30 10 9
JSON 1 1332 1332 0 0
Shell 1 49 38 1 10
TOML 2 77 64 4 9
───────────────────────────────────────────────────────────────────────────────
Markdown 5 1355 0 1074 281
|- JSON 1 41 41 0 0
|- Rust 2 53 42 6 5
|- Shell 1 22 18 0 4
(Total) 1471 101 1080 290
───────────────────────────────────────────────────────────────────────────────
Rust 19 3416 2840 116 460
|- Markdown 12 351 5 295 51
(Total) 3767 2845 411 511
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Total 32 6745 4410 1506 829
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
API Documentation
Table of Contents
- Features
- Installation
- Configuration
- How to use Tokei
- Options
- Supported Languages
- Changelog
- Common Issues
- Canonical Source
- Copyright and License
Features
-
Tokei is very fast, and is able to count millions of lines of code in seconds. Check out the 11.0.0 release to see how Tokei's speed compares to others.
-
Tokei is accurate, Tokei correctly handles multi line comments, nested comments, and not counting comments that are in strings. Providing an accurate code statistics.
-
Tokei has huge range of languages, supporting over 150 languages, and their various extensions.
-
Tokei can output in multiple formats (CBOR, JSON, YAML) allowing Tokei's output to be easily stored, and reused. These can also be reused in tokei combining a previous run's statistics with another set.
-
Tokei is available on Mac, Linux, and Windows. See installation instructions for how to get Tokei on your platform.
-
Tokei is also a library allowing you to easily integrate it with other projects.
-
Tokei comes with and without color. Set the env variable NO_COLOR to 1, and it'll be black and white.
Installation
Package Managers
Unix
# Alpine Linux (since 3.13)
apk add tokei
# Arch Linux
pacman -S tokei
# Cargo
cargo install tokei
# Conda
conda install -c conda-forge tokei
# Fedora
sudo dnf install tokei
# FreeBSD
pkg install tokei
# NetBSD
pkgin install tokei
# Nix/NixOS
nix-env -i tokei
# OpenSUSE
sudo zypper install tokei
# Void Linux
sudo xbps-install tokei
macOS
# Homebrew
brew install tokei
# MacPorts
sudo port selfupdate
sudo port install tokei
Windows
# Winget
winget install XAMPPRocky.tokei
# Scoop
scoop install tokei
Manual
Downloading
You can download prebuilt binaries in the releases section.
Building
You can also build and install from source (requires the latest stable Rust compiler.)
cargo install --git https://github.com/XAMPPRocky/tokei.git tokei
Configuration
Tokei has a configuration file that allows you to change default behaviour.
The file can be named tokei.toml or .tokeirc. Currently tokei looks for
this file in three different places. The current directory, your home directory,
and your configuration directory.
How to use Tokei
Basic usage
This is the basic way to use tokei. Which will report on the code in ./foo
and all subfolders.
$ tokei ./foo
Multiple folders
To have tokei report on multiple folders in the same call, simply add all the folders you'd like tokei to examine.
$ tokei ./foo ./bar ./baz
Excluding folders
Tokei will respect all .gitignore and .ignore files, and you can use
the --exclude option to exclude any additional files. The --exclude flag has
the same semantics as .gitignore.
$ tokei ./foo --exclude *.rs
Paths to exclude can also be listed in a .tokeignore file, using the same
syntax as .gitignore files.
Sorting output
By default tokei sorts alphabetically by language name, however using --sort
tokei can also sort by any of the columns.
blanks, code, comments, lines
$ tokei ./foo --sort code
Outputting file statistics
By default tokei only outputs the total of the languages, and using --files
flag tokei can also output individual file statistics.
$ tokei ./foo --files
Outputting into different formats
Tokei normally outputs into a nice human readable format designed for terminals.
There is also using the --output option various other formats that are more
useful for bringing the data into another program.
Note: This version of tokei was compiled without any serialization formats, to enable serialization, reinstall tokei with the features flag.
ALL:
cargo install tokei --features all
CBOR:
cargo install tokei --features cbor
YAML:
cargo install tokei --features yaml
Currently supported formats
- JSON
--output json - YAML
--output yaml - CBOR
--output cbor
$ tokei ./foo --output json
Reading in stored formats
Tokei can also take in the outputted formats added in the previous results to its current run. Tokei can take either a path to a file, the format passed in as a value to the option, or from stdin.
$ tokei ./foo --input ./stats.json
Options
USAGE:
tokei [FLAGS] [OPTIONS] [--] [input]...
FLAGS:
-f, --files Will print out statistics on individual files.
-h, --help Prints help information
--hidden Count hidden files.
-l, --languages Prints out supported languages and their extensions.
--no-ignore Don't respect ignore files (.gitignore, .ignore, etc.). This implies --no-ignore-parent,
--no-ignore-dot, and --no-ignore-vcs.
--no-ignore-dot Don't respect .ignore and .tokeignore files, including those in parent directories.
--no-ignore-parent Don't respect ignore files (.gitignore, .ignore, etc.) in parent directories.
--no-ignore-vcs Don't respect VCS ignore files (.gitignore, .hgignore, etc.), including those in parent
directories.
-V, --version Prints version information
-v, --verbose Set log output level:
1: to show unknown file extensions,
2: reserved for future debugging,
3: enable file level trace. Not recommended on multiple files
OPTIONS:
-c, --columns <columns> Sets a strict column width of the output, only available for terminal output.
-e, --exclude <exclude>... Ignore all files & directories matching the pattern.
-i, --input <file_input> Gives statistics from a previous tokei run. Can be given a file path, or "stdin" to
read from stdin.
-o, --output <output> Outputs Tokei in a specific format. Compile with additional features for more format
support. [possible values: cbor, json, yaml]
-s, --sort <sort> Sort languages based on column [possible values: files, lines, blanks, code, comments]
-t, --type <types> Filters output by language type, separated by a comma. i.e. -t=Rust,Markdo
Related Skills
himalaya
325.9kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
325.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
80.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
coding-agent
325.9kDelegate coding tasks to Codex, Claude Code, or Pi agents via background process
