Recursivist draws any directory as a color-coded tree and annotates it with lines of code, file sizes, modification times, and Git status. It can filter that tree, compare it with another, and export it in six formats, for a local folder or for a GitHub repository you haven't cloned.
Each file type gets its own color. Folder figures are totals for the files beneath them, and [M] and [U] mark modified and untracked files.
Installation
pip install recursivist
Prefer an isolated install? pipx install recursivist and uv tool install recursivist both work. Each installs the recursivist command and its shorter alias, rcv.
Features
- File statistics: lines of code, size, and modification time for every file, rolled up per folder. Sort by any of them, or just display them.
- Git status: modified, added, deleted, and untracked files are marked in the tree and can be sorted first.
- Filtering: exclude directories and extensions, match file names by glob or regex, and apply
.gitignore-style files at every level of the tree. - GitHub repositories: pass a URL wherever a path is accepted, pinned to a branch, tag, or subfolder if you like. Private repositories work with
GITHUB_TOKENset. - Comparison: two trees side by side with their differences highlighted, in the terminal or as a self-contained HTML page. Either side can be local or on GitHub.
- Export: Markdown, JSON, HTML, SVG, plain text, and reStructuredText, with a pre-commit hook that regenerates them on every commit.
- Configuration: save your defaults once, or commit a project's to
.recursivist.tomlorpyproject.toml. - And more: Nerd Font icons, shell completion for Bash, Zsh, Fish, and PowerShell, and a typed Python API.
Quick Start
# The current directory, or any path, as a tree
recursivist visualize
recursivist visualize path/to/project --depth 2
# Most lines of code first, with size and modification time alongside
recursivist visualize --sort-by-loc --size --mtime
# Changed files first, leaving out whatever .gitignore ignores
recursivist visualize --sort-by-git-status --ignore-file .gitignore
# Python files only, without the tests
recursivist visualize --include-pattern "*.py" --exclude-pattern "test_*"
# A GitHub repository, or one folder of one branch
recursivist visualize https://github.com/owner/repo
recursivist visualize https://github.com/owner/repo/tree/develop/src
# A fork against its upstream, saved as an HTML report
recursivist compare ./my-fork https://github.com/owner/repo --save
# Markdown for the docs, JSON for scripts, SVG for a README
recursivist export --format "md json svg" --output-dir docs
# Defaults for every run
recursivist config set exclude node_modules .git
recursivist config set ignore-file .gitignore
Documentation
The documentation covers every command and option. Begin with the quick start, borrow from the recipes for CI pipelines, self-updating structure docs, and jq analysis, or look things up in the CLI reference.
Metadata
Release files for recursivist 4.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| recursivist-4.0.0.tar.gz | 170.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| recursivist-4.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 277.4 kB
Release files / recursivist-4.0.0.tar.gz
| Download URL | recursivist-4.0.0.tar.gz |
|---|---|
| Size | 170.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8709ef26545f7bb0e2cd9c6b5f93dafcd47e4e9fcd5b5403da3835264111c5db
|
|
BLAKE2b-256 checksum How to use checksums |
ef08ba6fd047e10057355845a1a9cb34d92d8578f317624eeb43a27e86966e84
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / recursivist-4.0.0-py3-none-any.whl
| Download URL | recursivist-4.0.0-py3-none-any.whl |
|---|---|
| Size | 106.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2a3537b42963bbc7e857e5591e3349addb59ed321b06e7ff52d07459ac87fc91
|
|
BLAKE2b-256 checksum How to use checksums |
e55dcccd6eaf68fef115802d072ff3c442f7b7cd561d723f30b4731bc919dc6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|