Skip to main content

A Rich + Typer powered tree viewer that summarizes directories when they get busy.

Project description

ttree 🍵-🌳

ttree is a Rich + Typer powered alternative to tree that keeps directory browsing readable, summarizing noisy folders, colorizing output, and optionally hiding dotfiles.

Features

  • Rich renders a hierarchical tree with coloring for directories, files, and summaries.
  • Crowded directories are collapsed: file clusters become summaries like 5 py, 3 md files and subdirectories collapse to N directories.
  • Dotfiles stay hidden unless you opt in with -a/--all.
  • Need plain output for CI logs? pass --no-color or set NO_COLOR=1.
  • A live progress spinner appears when scanning large trees on a TTY.
  • -V/--version prints the installed version for quick diagnostics.

Installation

Requires Python 3.11+.

From PyPI:

pip install tea-tree

For local development, install via uv:

uv sync --extra dev

or use pip install -e .[dev]. After installation the ttree console script is available on your PATH.

Usage

ttree [DIRECTORY] [OPTIONS]

Common examples:

# summarize files once there are more than 2 siblings
ttree ~/Developer -m 2

# include dotfiles and show fewer subdirectories before collapsing
ttree src -a -d 5

# print version information immediately
ttree -V

During development, uv run ttree -- --help or python -m ttree behave the same without installing the entry point.

Key options

  • DIRECTORY (default .): root folder to inspect.
  • -m, --max-files-to-list: maximum files to display individually before summarizing. Set to 0 to always show summaries.
  • -d, --max-dirs-to-list: maximum subdirectories to list before using N directories. Set to 0 to only emit counts.
  • -a, --all: include entries starting with ..
  • --no-color: disable Rich colors (equivalent to exporting NO_COLOR=1).

Example Output

$ ttree demo -m 2 -d 3
demo
├── api
│   ├── handlers
│   └── models
├── docs
│   └── 3 directories
├── scripts
│   └── 4 py, 1 sh files
└── tests
    ├── unit
    └── 5 directories

The actual CLI uses color and dimmed summaries via Rich; the example above shows the structure you can expect.

Development

  • CLI implementation: src/ttree/cli.py; helpers live nearby. main.py is a lightweight wrapper for executing the app without installation.
  • Run tests via pytest. Fixtures cover directory summaries, dotfile behavior, permission errors, and Typer command invocations.
  • Build distributables with uv build; the project uses the uv_build backend.

Contributions are welcome—tune the thresholds or output styles in src/ttree/cli.py and update the tests to keep coverage high.

Publishing to PyPI

  1. Bump version in pyproject.toml and update the changelog/README as needed.
  2. Install dependencies (uv sync --extra dev) and run pytest.
  3. Build artifacts: uv build (creates dist/tea_tree-<version>.whl and .tar.gz).
  4. Publish with a PyPI token: UV_PYPI_TOKEN=... uv publish --token "$UV_PYPI_TOKEN".

The published distribution name is tea-tree, while the installed CLI remains ttree.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tea_tree-0.1.3.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tea_tree-0.1.3-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file tea_tree-0.1.3.tar.gz.

File metadata

  • Download URL: tea_tree-0.1.3.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.2

File hashes

Hashes for tea_tree-0.1.3.tar.gz
Algorithm Hash digest
SHA256 683110f857a1173b245659f8e2a1d0fcc51024f703e0922c40504ae0a88e5880
MD5 ca897d1c3fbf4cc859c3d471ead90c4c
BLAKE2b-256 e880df37861cb381518804b2e19f20ce3e7987cdba99cbed58f47d6ae42b3a18

See more details on using hashes here.

File details

Details for the file tea_tree-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: tea_tree-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.2

File hashes

Hashes for tea_tree-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fae91d3213a55931619205e332e3412a38f2763b8b0da6f2ac5842cd2739f823
MD5 40e7584ed6fc8c941c887844e8964435
BLAKE2b-256 4d3dcb7623a2a7d17c1cadaa8b18a797ebfff9052e2898fcce7cb319c1f64283

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page