🚀 ConTextCap = "Context Capture" A powerful desktop application that captures and documents your project codebase and artifacts by generating a single, beautiful PDF document to feed to your LLM of your choice. 🥳
[Demo Screenshot/GIF Coming Soon]
- 🌳 Directory Tree Visualization: Displays your project's structure in an easy-to-read tree format
- 📄 Code Content Capture: Includes the full content of text-based files (code, markdown, config files, etc.)
- 📊 Binary File Information: Shows size and type information for non-text files
- 🎨 Customizable Icon Styles: Choose from multiple icon styles for file and folder representation
- 🔍 Smart File Filtering: Automatically excludes common non-essential directories (like
.git
,__pycache__
, etc.) - 📱 Modern UI: Built with PyQt6 for a clean and intuitive user experience
- Python 3.6+
- PyQt6
- FPDF
- Python 3.6 or higher
- pip (Python package installer)
- Clone the repository:
git clone https://github.com/awaliuddin/ConTextCap.git
cd ConTextCap
- Install the required dependencies:
pip install -r requirements.txt
- Run the application:
python ConTextCap.py
- Use the interface to:
- Select a directory to document
- Choose your preferred icon style
- Generate a PDF documentation
The application generates a hierarchical view of your project's structure, making it easy to understand the organization of your codebase.
- Text Files: Full content is included in the PDF
- Supported formats:
.py
,.js
,.json
,.xml
,.md
,.txt
,.rst
,.log
,.ini
,.conf
,.cfg
- Supported formats:
- Binary Files: File information (size, type) is displayed
- Special Handling: Unicode characters are properly handled and converted
- Clean and intuitive design
- Progress tracking for large projects
- Error handling with user-friendly messages
- Persistent settings for user preferences
We love your input! We want to make contributing to ConTextCap as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
- Fork the repo and create your branch from
main
. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue that pull request!
In short, when you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that's a concern.
- Add support for more file types
- Custom theming options
- Export in multiple formats (MD, HTML)
- Batch processing capabilities
- Integration with CI/CD pipelines
If you found this project interesting or helpful, please consider:
- ⭐ Starring the repository
- 🐛 Reporting bugs
- 💡 Suggesting new features
- 🔀 Creating pull requests
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with PyQt6 for the modern UI
- Uses FPDF for PDF generation
- Icon styles provided by various open-source contributors
Made with ❤️ by Asif Waliuddin