🌳 TreeExporter
Automatically generate beautiful repository structure diagrams from your project.
No more manually maintaining folder trees in your README.
Why?
Keeping a repository structure up to date is surprisingly annoying.
Every time files or folders change, developers have to manually edit the tree inside the documentation:
src
├── api
├── models
├── utils
└── ...
Which quickly becomes outdated.
TreeExporter scans your project and generates a clean, automatically updated visualization instead.
It can be:
- updated automatically with GitHub Actions
- used as a Python library
- used as a CLI tool
- exported to SVG or plain text
🖼 Demo
SVG

Text
Look at ./structure.txt
🚀 Features
- Repository scanning
- SVG export
- Plain text export
- Configurable excluded directories
- GitHub Actions support
- Python library API
- Fast recursive traversal
More formats are planned.
Installation
WIP
💻 CLI
Generate a text tree:
tree-exporter
Generate SVG:
tree-exporter \
--format svg \
--output structure.svg
Exclude additional folders:
tree-exporter \
--exclude ".venv,dist,build"
GitHub Actions
Automatically regenerate your repository structure on a schedule or after every push.
- uses: mrf0rtuna4/TreeExporter@master
with:
format: svg
output: docs/structure.svg
Perfect for keeping documentation synchronized with your project.
Library
TreeExporter can also be used directly from Python.
from tree_exporter.config import ScanConfig
from tree_exporter.scanner import scan_repository
tree = scan_repository(
".",
ScanConfig(),
)
Roadmap
- ✅ Text export
- ✅ SVG export
- ✅ GitHub Action
- 🔄 Themes
- 🚧 Mermaid export
- 🚧 JSON export
- 🚧 PNG export
- 🚧 Custom icons
- 🚧 Ignore file support
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 treeexporter-0.1.0.tar.gz.
File metadata
- Download URL: treeexporter-0.1.0.tar.gz
- Upload date:
- Size: 34.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9ecc4c59d4b32681cfd4c446affc5ebcce7b74b6604a0b0fc176a474cd18e08
|
|
| MD5 |
9e3bae41680929edfd2f7611c375f65c
|
|
| BLAKE2b-256 |
d1210394585ce1e2aa8962f84b3eb2a2012676d90af88e50023dbfe5a776f6c8
|
Provenance
The following attestation bundles were made for treeexporter-0.1.0.tar.gz:
Publisher:
publish.yml on mrf0rtuna4/TreeExporter
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
treeexporter-0.1.0.tar.gz -
Subject digest:
e9ecc4c59d4b32681cfd4c446affc5ebcce7b74b6604a0b0fc176a474cd18e08 - Sigstore transparency entry: 2358661239
- Sigstore integration time:
-
Permalink:
mrf0rtuna4/TreeExporter@f4857421dbc1655398e71c9f8570e8d90820065e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/mrf0rtuna4
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f4857421dbc1655398e71c9f8570e8d90820065e -
Trigger Event:
release
-
Statement type:
File details
Details for the file treeexporter-0.1.0-py3-none-any.whl.
File metadata
- Download URL: treeexporter-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0524731f51efcb12de2dbd4cab167f254a655aa274d15b61440db459096f1204
|
|
| MD5 |
24800844ba5eeb5f46c977101b7579a1
|
|
| BLAKE2b-256 |
1486dfca8acae82f4153ae496b5d76a00fba2c06bcc16533c4b403031fb44cc8
|
Provenance
The following attestation bundles were made for treeexporter-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on mrf0rtuna4/TreeExporter
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
treeexporter-0.1.0-py3-none-any.whl -
Subject digest:
0524731f51efcb12de2dbd4cab167f254a655aa274d15b61440db459096f1204 - Sigstore transparency entry: 2358661464
- Sigstore integration time:
-
Permalink:
mrf0rtuna4/TreeExporter@f4857421dbc1655398e71c9f8570e8d90820065e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/mrf0rtuna4
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f4857421dbc1655398e71c9f8570e8d90820065e -
Trigger Event:
release
-
Statement type: