Project structure tree visualizer with Python AST analysis and change tracking
Project description
Trellis
Project structure tree visualizer with Python AST analysis and change tracking.
Trellis scans a directory tree and produces a text representation that includes Python classes, functions, signatures, decorators, and call flow analysis. It tracks structural changes between runs and generates categorized change summaries with timestamped log files.
Installation
pip install trellis
Quick Start
Run from any directory inside a project. Trellis auto-discovers the project
root by walking upward looking for .git, pyproject.toml, and other markers.
trellis
Or run as a Python module:
python -m trellis
Output is saved to docs/{project}_structure.txt. On subsequent runs, trellis
detects and reports structural changes.
Output Example
project/ [pkg] [cmd] [typed]
├── core/ [pkg]
│ ├── models.py {85}
│ │ ├── class BaseProcessor :5
│ │ ├── class DataStore(BaseProcessor) :20
│ │ │ ├── def connect(host: str, port: int) -> None :25
│ │ │ └── def query(sql: str) -> list[dict] :34
│ │ └── def build_config(path: str) -> Config :60
│ └── utils.py {42}
│ ├── /wrapper\ def cached_lookup(func) :10
│ └── def format_output(items: list) -> str :18
├── handlers.py {120}
│ ├── @app.route('/api')
│ │ └── def handle_request(request: Request) -> Response :15
│ └── def process_data(input: str, limit: int) -> Result :45
└── main.py {30}
└── def main() -> int :8
└── calls: build_config -> process_data -> run
# tr_meta:D1I1F1T1@1C0P1V0U0S0Wsmart
Markers: [pkg] = Python package, [cmd] = has __main__.py,
[typed] = has py.typed
Line counts: {85} = 85 lines of source code
Call flow: calls: build_config -> process_data -> run shows orchestration
function call chains (SMART mode filters for high-signal calls)
Wrapper collapse: /wrapper\ tags decorator boilerplate that wraps a
single inner function
CLI Flags
trellis --show-private # include _private members
trellis --show-dunder # include __dunder__ methods
trellis --show-all # show everything
trellis --hide-all # hide private/dunder/mangled, disable call flow
trellis --call-flow raw # show all calls without filtering
trellis --call-flow off # disable call flow display
trellis --hide-types # omit type annotations
trellis --hide-decorators # omit decorator rendering
See CLI Reference for the full flag list.
Documentation
- CLI Reference -- all flags with examples
- Configuration -- settings, ignore patterns, project root discovery
- Change Tracking -- how change detection works, log format
- Architecture -- package layout, data flow, design patterns
- API Reference -- programmatic usage from Python
License
MIT
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ks_trellis-1.3.0.tar.gz.
File metadata
- Download URL: ks_trellis-1.3.0.tar.gz
- Upload date:
- Size: 86.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b17da629fdf5240a231994de4317c12a98c3938daed0dfc1b972a3184c0147c
|
|
| MD5 |
f88c46a9d4369b182b9051c51226e06d
|
|
| BLAKE2b-256 |
ed68760c37df32b6b2dd0f47c18f9f075666512fe5148d0dcc6cb9d5da5860f9
|
File details
Details for the file ks_trellis-1.3.0-py3-none-any.whl.
File metadata
- Download URL: ks_trellis-1.3.0-py3-none-any.whl
- Upload date:
- Size: 64.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a92e3d679f0790616159bd038045d35b460b0b3905ac860c96e0857513f4fed2
|
|
| MD5 |
6beda2463589803b86c1777a75121c4f
|
|
| BLAKE2b-256 |
d5a90256a2f93239f94031ae8362bff4fe196ab096b16379640f8189d910ca52
|