printdirtree is a command-line utility that prints the structure of a directory tree,
allowing you to easily specify files and directories to exclude.
You can now also print the contents of all files, which is very useful for prompting LLMs.
Example:
$ printdirtree
PrintDirTree
├── MANIFEST.in
├── README.md
├── printdirtree
│ ├── __init__.py
│ └── __main__.py
└── setup.pyThis tool is very useful to aid with prompting ChatGPT.
Install printdirtree easily with pip:
pip install printdirtreeTo use printdirtree, simply run the command followed by optional arguments to tailor the output to your needs.
The basic usage prints the current directory structure:
printdirtreeTo print the structure of a specific directory:
printdirtree --dir /path/to/directoryExclude specific directories and/or file patterns:
printdirtree --exclude-dir node_modules --exclude-dir .git --exclude-file "*.log"To save your exclusions for future runs:
printdirtree --exclude-dir temp --exclude-file "*.tmp" --saveSee what exclusions are currently saved:
printdirtree --view-exclusionsTo remove exclusions and include directories or files back into the printout:
printdirtree --include-dir temp --include-file "*.tmp" --saveTo display both the directory structure and the contents of all files:
printdirtree --show-contentsor just -p:
printdirtree -pThis will output the directory tree followed by each file's contents with its relative path as a comment. For example:
temp
├── a.py
└── b.py
# temp/a.py
print("a.py")
# temp/b.py
print("b.py")
This is particularly useful when sharing code with LLMs, as it provides both structure and content in a clear, readable format.
Just use the -c flag!
Just use the -p flag!
After installing printdirtree, you can run it to visualize the structure of your project directory. Here's an example command that excludes .git files:
printdirtree --exclude-file ".git"Output for the PrintDirTree project might look like this:
PrintDirTree
├── MANIFEST.in
├── README.md
├── printdirtree
│ ├── __init__.py
│ └── __main__.py
└── setup.py