GUI Usage ========= The application includes a Graphical User Interface (GUI) built with Tkinter and ttk. Key GUI Components ------------------ Based on the files in `app/gui/`: * **Main Window (`app/gui/main.py`):** Sets up the main application window with tabs for different functionalities. * **Getting Started Tab (`app/gui/getting_started.py`):** Provides an initial welcome screen and directs users to the setup. * **Configuration Tab (`app/gui/configuration.py`):** Allows users to configure API keys (like Gemini), select models (API-based or local like Ollama), and set the repository path. Includes validation for inputs. * **Readme Automatic Tab (`app/gui/readme_automatic.py`):** Provides functionality to automatically generate a README file, likely using LLM calls based on the repo content. * **Readme Improvement Tab (`app/gui/readme_improvement.py`):** Allows users to load an existing README, split it into sections, generate improvements for sections using an LLM, and export the result. Also includes features for manual content creation. * **Commit Analyzer Tab (`app/gui/commit_analyzer.py`):** Fetches current Git changes or historical commits, displays diffs, generates commit messages using an LLM, and allows committing and pushing. * **Security Generator Tab (`app/gui/security_generator.py`):** Helps create a `SECURITY.md` file by asking for reporting methods, disclosure policies, preferred languages, and contact info, then generates the file content. * **Security Scanner Tab (`app/gui/security_scanner_tab.py`):** Provides buttons to run security scans (First Pass, Second Pass) on the repository code, displays progress, and shows a summary of findings. It uses the main security scanning logic. * **Gemini Chat Tab (`app/gui/gemini_chat_tab.py`):** Allows users to chat with an AI assistant (Gemini) about the initialized repository context. Requires initialization which likely involves processing and uploading repo content. * **Improve Structure Tab (`app/gui/improve_structure_tab.py`):** Analyzes the project structure and suggests improvements based on popular templates (like Cookiecutter) using an LLM.