CLI tool to print directory structure and file contents for LLM context generation
Project description
llmprint
llmprint is a CLI tool that prints directory structures and file contents in a clean, LLM-friendly format. It's perfect for generating context when pasting into a chatbot or code assistant.
🚀 Features
- 📂 Recursively includes multiple folders
- ✂️ Skips common clutter using
.gitignore-style rules - 🔍 Include/exclude specific folders and files
- 🧠 Great for LLM prompt preparation, code understanding, or debugging
- 📋 Cross-platform clipboard support
- 🌟 Clean, structured output format
📦 Installation
Option 1: Install from source
git clone https://github.com/rsh3khar/llmprint.git
cd llmprint
pip install .
Option 2: Install from pip
pip install llmprint
⚡️ Usage
Print Directory Structure
# Print structure of current directory
llmprint -s
# Print structure of specific directories
llmprint -s -i src/ tests/
Print File Contents Recursively
# Print contents of specific directories
llmprint -i src/ tests/
# Print all files in current directory
llmprint .
Exclude Specific Folders or Files
# Exclude directories while printing contents
llmprint -i . -e node_modules __pycache__
# Exclude files by pattern (use quotes to prevent shell expansion)
llmprint -i . -e "*.pyc" "*.log"
Copy to Clipboard
# Copy tree structure to clipboard
llmprint -s -c
# Copy file contents to clipboard
llmprint -i src/ -c
# Copy and also print to screen
llmprint -s -c -p
🧠 Why use this?
When prompting an LLM with questions like:
"Can you explain this repo to me?"
"What's the purpose of this function?"
"Can you refactor this?"
You often need to include file structure and contents. llmprint formats this perfectly for large-context pasting — clean, readable, and structured.
🛠 Options
| Option | Description |
|---|---|
-s / --structure |
Print directory structure only |
-i / --include |
Specify folders or files to include |
-e / --exclude |
Specify folders or files to exclude (use quotes for patterns, e.g., "*.pyc") |
-c / --copy |
Copy output to clipboard (suppresses stdout) |
-p / --print |
Print to stdout when using --copy |
If no flag is provided, it defaults to printing the directory structure.
🔧 Requirements
- Python 3.6 or higher
pyperclipfor clipboard operations
📄 License
✨ Author
Raj Shekhar
GitHub: @rsh3khar
Project details
Release history Release notifications | RSS feed
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 llmprint-0.1.2.tar.gz.
File metadata
- Download URL: llmprint-0.1.2.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1055708734c33e54e8c04d0e66284bec49cde806461cfcae8a266bcf3f7cab7
|
|
| MD5 |
9aadaa2f6e7208ed4eb0cc186c65a15e
|
|
| BLAKE2b-256 |
37fe75d187b302f1f6bed236024109f43be8630ddda1b2af7d5f2a364f01dd37
|
File details
Details for the file llmprint-0.1.2-py3-none-any.whl.
File metadata
- Download URL: llmprint-0.1.2-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6ec1dd0f1d0d2e8825d779183f745676ac21d907ff470564d09d38f1e668e2f
|
|
| MD5 |
3cc0c472cdf0e6668353612b14e7ba05
|
|
| BLAKE2b-256 |
016f9cc5b2edba831799e2a013acdf9afe7814159fa37a2344f2650bca762fd5
|