Progress Tree v1.0.0
First stable release of Progress Tree.
Progress Tree is a lightweight command-line utility for creating structural snapshots of software repositories. It recursively scans a project, generates a readable ASCII directory tree, and reports basic project metrics including directory count, file count, lines of code, and scan time.
The tool is designed around three deliberately simple questions:
- What is actually in this project?
- How big is it?
- What should be ignored so the useful structure is not buried in noise?
This is especially useful in AI-assisted development, where repositories can grow quickly and understanding what has actually been created can become surprisingly nontrivial.
Highlights
- Recursive ASCII directory tree generation
- File, directory, and line-of-code metrics
- Timestamped project reports
- Gitignore-style exclusion rules through
tree_ignore.txt - Custom ignore-file support
- Optional fast scanning without line counting
- Configurable progress reporting for larger repositories
- Output directly to stdout or to a report file
- Configurable logging and log-file output
- Safe handling of symbolic links
- Python API for programmatic scanning and report generation
- Zero runtime dependencies beyond the Python standard library
- Unit-test suite using pytest
Command-Line Interface
After installation, the progress-tree command can be run directly:
progress-treeScan another project:
progress-tree --root ~/projects/my-appPrint the report directly to the terminal:
progress-tree --root ~/projects/my-app --stdoutSkip line counting for a faster structural scan:
progress-tree --no-linesUse a custom ignore file:
progress-tree --ignore-file .treeignoreReport Output
A Progress Tree report contains:
- generation timestamp
- scanned repository root
- ASCII representation of the project hierarchy
- directory count
- file count
- total lines of code
- scan duration
The resulting text file can serve as a lightweight development artifact, repository inventory, project snapshot, or context document for an AI coding session.
Python API
Progress Tree can also be incorporated into other Python tools using its public scanning and reporting components, including:
TreeScannerScanResultScanMetricsReportBuilder- configurable ignore strategies
This allows repository inspection to become part of a larger development, documentation, or context-engineering workflow.
Requirements
- Python 3.10 or later
- No runtime dependencies
Development dependencies are limited to pytest and pytest-cov.
Why Progress Tree?
Modern development tools are very good at producing more code. AI coding systems have made them dramatically better at it.
Understanding the resulting repository is a separate problem.
Progress Tree deliberately does not generate, refactor, evaluate, or explain code. It provides a deterministic structural view of what exists so that developers can periodically inspect the thing they are actually building.
It is infrastructure for understanding the codebase rather than another mechanism for making the codebase larger.
Version
1.0.0
This release establishes the initial stable CLI, report format, scanning model, ignore behavior, and Python API for future Progress Tree development.