A utility to create Markdown snapshots of project structures for LLMs
Project description
Project Snapshot Utility (project-snap)
A command-line utility to create comprehensive Markdown snapshots of your project structure for sharing with LLMs like Claude or Gemini.
Features
- Create detailed markdown snapshots of your project structure
- Configurable inclusion/exclusion of files, folders, and extensions
- Automatic syntax highlighting for common file types
- Table of contents generation for easy navigation
- Size limits to avoid including large files
- Configurable via JSON file or command-line arguments
- Installable via pip
Installation
pip install project-snap
Usage
Basic Usage
Generate a project snapshot with default settings:
project-snap
This will create a project_snapshot.md file in the current directory.
Command-line Options
project-snap --help
project-snap --init # Create a sample configuration file
project-snap --config path/to/config.json # Use a custom configuration file
project-snap --output custom_name.md # Specify a custom output filename
project-snap --target /path/to/project # Snapshot a different directory
Configuration
The tool looks for a configuration file in the following locations:
project-snapshot-config.json.project-snapshot.jsonproject_snapshot_config.json
You can generate a sample configuration file using:
project-snap --init
Sample configuration:
{
"folders": {
"include": [],
"exclude": ["node_modules", "venv", ".git", "__pycache__", "dist", "build"]
},
"files": {
"include": [],
"exclude": [".DS_Store", "*.pyc", "*.jpg", "*.png", "package-lock.json"]
},
"ext": {
"include": [".py", ".js", ".ts", ".html", ".css", ".json", ".md"],
"exclude": []
},
"target_folder": ".",
"output_folder": ".",
"snapshot_name": "project_snapshot.md",
"max_file_size_kb": 500
}
Use with LLMs
The generated markdown file is optimized for sharing with Large Language Models like Claude or Gemini. The snapshot includes:
- Table of contents for easy navigation
- Directory and file structure
- Full file contents with syntax highlighting
- Manageable file sizes for context windows
License
MIT
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 project_snap-1.0.0.tar.gz.
File metadata
- Download URL: project_snap-1.0.0.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
484d6e9a449072ac10757886c96e9b01f57acfa04fd5ababe03e9d6f1590b2aa
|
|
| MD5 |
6bda60e2a19e68f06bc98c9c0c5b2fca
|
|
| BLAKE2b-256 |
360e2a83ff0c638a7550be6a5bebbb7e834866076176341dfb05c2e76ce62364
|
File details
Details for the file project_snap-1.0.0-py3-none-any.whl.
File metadata
- Download URL: project_snap-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b06f6a0ff5c4df8ba894f446dcf6b3f4d91b3a64a9aea2451c354860890302da
|
|
| MD5 |
d9c70f76998d9b2b282de5fa74dab751
|
|
| BLAKE2b-256 |
201d198fae6373ba2948ecc35be98e5fa2d82e22cba53dc742fea16ded02828a
|