A powerful, cross-platform GUI application for concatenating and dumping source code files with intelligent filtering and organization capabilities. Built with PyQt5 for a modern, responsive interface.
- π Directory Browsing: Navigate and select entire directories or specific files
- π Smart Filtering: Automatically skips common build artifacts and binary files
- π File Selection: Check/uncheck files and directories with recursive selection
- π Search & Filter: Real-time search by filename, content, or both
- π File Preview: Preview selected files before concatenation
- π Code Dumping: Generate comprehensive dumps with file metadata
- ποΈ Folder Structure: Generate visual folder structure representations
- π Clipboard Integration: Copy results directly to clipboard
- β‘ Performance: Efficient file processing with caching
- π¨ Modern UI: Clean, intuitive PyQt5 interface
- π Refresh Support: Dynamic directory refresh without losing selections
- Programming Languages: Python, JavaScript, TypeScript, C/C++, Java, Go, Rust, Swift, and many more
- Markup: HTML, CSS, XML, JSON, YAML, Markdown
- Configuration: Config files, Docker files, Makefiles
- Documentation: README, LICENSE, and documentation files
The application provides a three-panel layout:
- Left Panel: File tree with directory structure
- Top-Right: Selected files list
- Bottom-Right: File preview and dump content
- Directory Selection: Browse and select target directories
- Search Bar: Filter files by name or content
- Action Buttons: Generate dumps, folder structures, and copy to clipboard
- Python 3.6 or higher
- PyQt5
- pyperclip (for clipboard functionality)
# Clone the repository
git clone https://github.com/Sn0wfly/codedump.git
cd codedump
# Install dependencies
pip install -r requirements.txt
# Install the package
pip install -e .# Clone and install in development mode
git clone https://github.com/Sn0wfly/codedump.git
cd codedump
pip install -e .# Launch the GUI application
codedump
# Or run directly
python -m mi_app_pyqt5.main_app- Launch Application: Run
codedumpfrom command line - Select Directory: Click "Select Directory" to choose your source folder
- Browse Files: Navigate the file tree to explore your codebase
- Select Files: Check files/directories you want to include
- Generate Dump: Click "Generate Dump" to create concatenated output
- Copy Results: Use "Copy to Clipboard" to copy results
- Ctrl+O: Select directory
- Ctrl+R: Refresh directory
- Ctrl+F: Focus search
- Ctrl+C: Copy to clipboard
- Escape: Clear search
codedump/
βββ mi_app_pyqt5/
β βββ __init__.py # Package initialization
β βββ main_app.py # Main PyQt5 GUI application
β βββ backend.py # Core file processing logic
β βββ ... # Additional modules
βββ pyproject.toml # Project configuration
βββ requirements.txt # Dependencies
βββ README.md # This file
βββ ... # Additional project files
The application uses intelligent filtering to skip:
- Build artifacts:
__pycache__,node_modules,build/,dist/ - Version control:
.git/,.svn/,.hg/ - IDE files:
.idea/,.vscode/ - Binary files: Images, executables, compiled code
- Log files:
*.log, temporary files
Modify backend.py to adjust:
- Allowed file extensions
- Skip patterns
- Directory exclusions
- File processing behavior
- Launch the application
- Test directory selection with various folder structures
- Verify file filtering works correctly
- Test search functionality
- Generate dumps and verify content
- Test clipboard functionality
# Run basic functionality tests
python -c "from mi_app_pyqt5.backend import should_skip; print('Testing...')"Q: Application won't start
- Ensure Python 3.6+ is installed
- Install all dependencies:
pip install -r requirements.txt
Q: Files not appearing
- Check if directory has read permissions
- Verify files aren't being filtered out
- Try refreshing the directory
Q: Large directories slow
- The application caches file information
- Consider excluding large binary directories
Q: Unicode errors
- The application handles various encodings automatically
- Report specific file encoding issues
Enable debug logging by setting:
import logging
logging.basicConfig(level=logging.DEBUG)We welcome contributions! Please see our Contributing Guidelines for details.
git clone https://github.com/Sn0wfly/codedump.git
cd codedump
pip install -e ".[dev]"- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- PyQt5 Team for the excellent GUI framework
- Python Community for the rich ecosystem
- Contributors who helped improve this tool
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: Open an issue for direct support
- Export to multiple formats (PDF, HTML, Markdown)
- Syntax highlighting in preview
- Batch processing
- Custom file type definitions
- Plugin system for extensions
- Web-based version
- Cloud storage integration
- Collaborative features
- Advanced filtering with regex
- Performance optimizations
Made with β€οΈ by the CodeDump Team