Project Tools Runner is a versatile Tkinter-based desktop application for developers, technical writers, and project managers to streamline project management, analysis, and sharing. It offers a clean, intuitive interface to:
- Concatenate Project Files: Combine all text-based files in your project into a single
.txt
file for easy sharing, backups, or AI code reviews. - Visualize Project Structure: Map your directory structure into an interactive, multi-column tree view enriched with file metadata like size, creation date, and last-modified date.
- Analyze Projects: Get detailed insights with folder counts, metadata, and advanced filtering options to explore and document your project effortlessly.
This tool is perfect for organizing large codebases, generating documentation, and preparing projects for AI-assisted workflows.
- Key Features
- Installation
- Quick Start
- Usage Guide
- Technical Details
- FAQ and Troubleshooting
- Contributing
- License
- File Loader Tool: Automatically combines all text-based files into a single
.txt
file while skipping binary files and excluded directories. - Project Structure Visualization: Generates a detailed JSON representation of your directory and displays it in a multi-column, interactive tree view.
- Snapshot Management: Save and reload tree states for easy comparison and reference.
- Interactive Controls: Expand or collapse directories, search by name, filter by file type, and toggle metadata columns (size, created, modified).
- Copy Tree as Text: Export the visible tree structure (filtered view) as a clean ASCII representation for documentation or sharing.
- Partial Collapse: Collapse the tree to only display top-level directories while preserving current states.
- Preserved States: Toggle excluded directories without resetting the tree view.
- Flexible Layout: Collapsible tree and console panels, responsive design, and tooltips for intuitive navigation.
- Console Logging: Real-time logging for operations, errors, and file processing details.
-
Clone the Repository:
git clone https://github.com/sidbetatester/AI-Dev-Kit.git cd AI-Dev-Kit
-
Ensure Python 3.7+ is installed:
python --version
-
Install Tkinter (Linux users only):
sudo apt-get install python3-tk
-
Optional: Create a Virtual Environment:
python -m venv venv source venv/bin/activate # For Windows: venv\Scripts\activate pip install -r requirements.txt
-
Run the Application:
python tool_runner_ui.py
- Open the application and select your Project Root using the "Browse..." button.
- Choose an Output Directory (default is
Tools_Outputs
). - Select tools to run:
- File Loader: Concatenates files into a single
.txt
. - Project Structure: Visualizes the folder hierarchy.
- File Loader: Concatenates files into a single
- Click Run Tools to start processing.
- Use the tree view to navigate your project or export it as ASCII text.
The main window offers:
- Directory Selection: Choose the project root and output directory.
- Tool Selection: Select File Loader, Project Structure, or both.
- Output Configuration: Set file names for concatenated output, structure JSON, and logs.
- Run Controls: Start, clear logs, or toggle the console/tree view.
Explore your project with:
- File sizes (bytes).
- Creation and last-modified timestamps.
- Folder counts for directories.
Switch to a simplified view that focuses on structure alone.
Key controls include:
- Expand All/Collapse All: Quickly navigate the tree.
- Search and Filter: Find specific files or extensions in real time.
- Snapshot Management: Save or load the current tree view.
- Toggle Columns: Show or hide metadata like size, created, and modified.
-
Concatenated Text File (
loaded_files_output.txt
):- Contains all text files combined.
- Skips binary files and excluded directories.
-
Project Structure JSON (
project_structure.json
):- Hierarchical representation of the project.
- Includes file metadata and folder relationships.
-
Log File (
file_loader_log.txt
):- Logs file processing details and errors.
- Save snapshots of your project tree and reload them later.
- Export filtered views for team sharing.
- Generate a clean ASCII representation:
Project Tools Runner/ ├── file_loader.py ├── tool_runner_ui.py ├── requirements.txt └── Tools_Outputs/ ├── loaded_files_output.txt └── project_structure.json
Monitor real-time updates:
- File processing status.
- Logs for excluded/skipped files.
- Errors or warnings.
graph TD
A[Start Scan] --> B[Initialize Directory Walk]
B --> C{Is Entry a Directory?}
C -->|Yes| D[Recursively Process Subdirectory]
C -->|No| E{Is Entry a File?}
E -->|Yes| F[Check File Type]
F --> G{Text or Binary?}
G -->|Text| H[Process and Collect Metadata]
G -->|Binary| I[Log Skipped File]
E -->|No| J[Log Exclusion]
D --> K[Merge Subdirectory Data]
H --> K
I --> K
J --> K
K --> L{More Entries?}
L -->|Yes| B
L -->|No| M[Save Results and Finish]
- Check if the selected directory contains files.
- Verify that excluded folders (e.g.,
venv
,.git
) are toggled.
- Ensure you have read permissions for all files in the project directory.
- Run the app with administrative privileges if needed.
- No, binary files are automatically skipped to prevent encoding issues.
We welcome contributions! To contribute:
- Fork the repository.
- Create a new branch.
- Implement your feature or fix.
- Submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
Author: Siddharth Venkumahnati
Project: Part of the AI-Dev-Kit
Project Tools Runner: Simplifying project management for developers and technical writers.