CodyArchitect build on top of codypy and is an innovative program designed to revolutionize the way developers understand and navigate unfamiliar codebases. Powered by Cody Sourcegraph and Ollama, CodyArchitect provides comprehensive overviews of a codebase's architecture, functionality, and conventions, making the onboarding process smoother and more efficient.
NOTE: This is a BUILD IN THE PUBLIC project and is not yet fully operational. You will find the documentation of the progress in the doc folder
If you find CodyArchitect valuable and would like to support its ongoing development, I am open to sponsorship. Your support will help me dedicate more time and resources to enhancing the program's features and functionality. Please reach out to me directly via info@prinova.de, over Sourcegraph Discord to discuss sponsorship opportunities or use the sponsor button at the top.
-
Language-Agnostic: CodyArchitect is adaptable to various programming languages and codebases, providing a unified view of the entire project.
-
Intelligent Architecture Overview: Leveraging LLM capabilities, CodyArchitect generates high-level summaries of the codebase's architecture, highlighting the relationships between modules, packages, and their roles within the project.
-
Comprehensive Reports: The program generates multiple reports focusing on different aspects of the codebase, such as high-level architecture, module and class descriptions, and dependencies.
-
Detailed Module and Function Reports: CodyArchitect dives into the details of each module and function, providing descriptions, dependencies, and how they fit into the overall architecture. This granular information helps developers quickly grasp the purpose and functionality of specific code components.
-
Semantic Code Understanding: By employing advanced natural language processing techniques, CodyArchitect understands the semantics of code elements, enabling it to provide meaningful insights and summaries.
-
Vector Embeddings and Efficient Storage: CodyArchitect generates vector embeddings of code elements and stores them in ChromaDB, along with relevant metadata. This enables quick retrieval and similarity-based searches for efficient navigation and understanding of the codebase.
-
Markdown Output: Reports are generated in easy-to-read Markdown format and stored on the file system for convenient access.
-
Command-Line Interface: CodyArchitect offers a simple CLI where users can specify the directory of the codebase they want to analyze.
- User Input: Provide the directory path of the codebase you want to analyze.
- Codebase Traversal: CodyArchitect recursively traverses the codebase directory, collecting relevant documentation and source code files.
- Documentation Analysis: The program extracts key information from documentation files using LLM, such as project description, architecture overview, and setup instructions.
- Code Analysis: CodyArchitect identifies main modules, packages, classes, and functions within the codebase, extracting high-level and detailed information.
- LLM Interaction: The extracted information is processed by the LLM to generate concise summaries and descriptions of the codebase's components and their relationships.
- Embedding Generation: Vector embeddings are generated for documentation and code elements, enabling efficient storage and retrieval in ChromaDB.
- Report Generation: CodyArchitect generates comprehensive reports in Markdown format, including high-level overviews and detailed module/package reports.
To use CodyArchitect, follow these steps:
- Clone the repository:
git clone https://github.com/PriNova/CodyArchitect.git
- Install the required dependencies:
pip install -r requirements.txt
- Set up your OpenAI API credentials and ChromaDB configuration.
- Run the program:
python codyarchitect.py /path/to/codebase
We have an exciting roadmap planned for CodyArchitect, including:
- Graphical User Interface (GUI) implementation
- Automation processes for bug fixing, feature implementations and more
At this early stage of development, I am not accepting pull requests. However, I welcome feedback, suggestions, and bug reports through the issue tracker. Your input is valuable in shaping the future of CodyArchitect.
CodyArchitect is released under the MIT License.