Skip to main content

Structure Viewer

CI Python Version License: MIT

A powerful CLI tool to visualize project directory structure with smart exclusions, multiple output formats, and colorized output.

Structure Viewer Demo

✨ Features

  • 🌳 Beautiful Tree Output - ASCII art tree representation with colorized output
  • 🚫 Smart Exclusions - Automatically excludes common development artifacts (.git, node_modules, __pycache__, etc.)
  • 📊 Multiple Formats - Output as tree, JSON, or YAML
  • 🎨 Colorized Output - File type-aware syntax highlighting in terminal
  • 🔧 Highly Configurable - Custom exclusions, depth limiting, extension filtering
  • 🖥️ Cross-Platform - Works on Windows, macOS, and Linux

📦 Installation

Using pip

pip install structure-viewer
pipx install structure-viewer

From source

git clone https://github.com/crrrowz/structure-viewer.git
cd structure-viewer
pip install -e .

🚀 Usage

Basic Usage

# Show structure of current directory
structure

# Show structure of a specific directory
structure ./my-project

# Show structure with limited depth
structure -d 2

Output Formats

# Default tree format
structure

# JSON output
structure -f json

# YAML output (requires PyYAML)
structure -f yaml

Filtering

# Only show Python files
structure -I py

# Exclude log and tmp files
structure -E log -E tmp

# Add custom exclusion patterns
structure -e "*.bak" -e "*.tmp"

# Show hidden files
structure -a

Other Options

# Show only directories
structure -q

# Show file/directory statistics
structure -s

# Disable colors
structure --no-color

📋 Example Output

my-project/
├── src/
│   ├── __init__.py
│   ├── cli.py
│   ├── core.py
│   └── utils.py
├── tests/
│   ├── conftest.py
│   ├── test_cli.py
│   └── test_core.py
├── LICENSE
├── README.md
└── pyproject.toml

2 directories, 10 files

⚙️ CLI Reference

usage: structure [OPTIONS] [DIRECTORY]

Visualize project directory structure.

positional arguments:
  directory              Directory to scan (default: current directory)

options:
  -h, --help             Show this help message
  -V, --version          Show version number
  -d, --depth N          Maximum depth to display (default: unlimited)
  -e, --exclude PATTERN  Additional patterns to exclude (can be repeated)
  -I, --include-ext EXT  Only show files with these extensions
  -E, --exclude-ext EXT  Exclude files with these extensions
  -f, --format FORMAT    Output format: tree, json, yaml (default: tree)
  -a, --all              Show hidden files
  --no-color             Disable colorized output
  -q, --quiet            Only show directories
  -s, --stats            Show statistics

🔒 Default Exclusions

Structure Viewer automatically excludes common development artifacts:

Category Patterns
Version Control .git, .hg, .svn
Python __pycache__, .pytest_cache, .mypy_cache, *.egg-info
Node.js node_modules, .npm, .yarn
Build dist, build, out, target
IDEs .idea, .vscode, .vs
OS .DS_Store, Thumbs.db

🐍 Python API

You can also use structure-viewer as a library:

from structure_viewer import walk_directory, format_tree

# Get the directory tree
tree = walk_directory("./my-project", max_depth=3)

# Format as ASCII tree
output = format_tree(tree, colorize=False)
print(output)

# Or as JSON
from structure_viewer import format_json
json_output = format_json(tree)

🤝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

Inspired by the classic tree command and modern directory visualization tools.

Metadata

Release files for structure-viewer 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for structure-viewer 1.0.1
File Size Uploaded Provenance
structure_viewer-1.0.1.tar.gz 354.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for structure-viewer 1.0.1
File Interpreter ABI Platform
structure_viewer-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 368.4 kB

Release files / structure_viewer-1.0.1.tar.gz

Download URL structure_viewer-1.0.1.tar.gz
Size 354.1 kB
Tags Source
SHA-256 checksum
How to use checksums
4dc5870326e4f6309351095f73de906135d1a3bd3548dd048e3fd5e640ae9796
BLAKE2b-256 checksum
How to use checksums
d0e8a5c40f85e6f31d75303aac9d80f44805e4a090d98b76d9d50c656db465cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 24, 2025.

Transparency log

Release files / structure_viewer-1.0.1-py3-none-any.whl

Download URL structure_viewer-1.0.1-py3-none-any.whl
Size 14.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a12a9d8ec558ff78a060e7fc556430ce80ef8067c4c25cf7b122e0b8e461fd94
BLAKE2b-256 checksum
How to use checksums
93ac8711f69c4709d367350752754ecd29cc40e5c272d19066976333ed9a459d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 24, 2025.

Transparency log

Security for structure-viewer 1.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for structure_viewer-1.0.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 24, 2025.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page