A command-line tool designed to assist developers in managing and interacting with their projects efficiently. Leveraging the power of OpenAI's API, o1-engineer provides functionalities such as code generation, file editing, project planning, and code review to streamline your development workflow.
/add
and /edit
commands now support adding and modifying both files and folders, providing greater flexibility in managing your project structure./planning
command, which allows users to create comprehensive project plans that can be used to generate files and directories systematically.Automated Code Generation: Generate code for your projects effortlessly.
File Management: Add, edit, and manage project files directly from the command line.
Interactive Console: User-friendly interface with rich text support for enhanced readability.
Conversation History: Save and reset conversation histories as needed.
Code Review: Analyze and review code files for quality and suggestions.
Enhanced File and Folder Management: The /add
and /edit
commands now support adding and modifying both files and folders, providing greater flexibility in managing your project structure.
Project Planning: Introducing the /planning
command, which allows users to create comprehensive project plans that can be used to generate files and directories systematically.
Initialization: The script initializes global variables and sets up the OpenAI client using the provided API key.
Handling User Commands: It listens for user commands such as /edit
, /create
, /add
, /review
, and the new /planning
command, processing them accordingly.
Processing File and Folder Modifications: Based on the user's instructions, the script modifies files and folders, adds new content, or creates new files and folders as needed. The /add
and /edit
commands have been enhanced to support both files and folders, providing greater flexibility in project management.
Project Planning: The newly introduced /planning
command allows users to create comprehensive project plans, which the script can use to generate files and directories systematically using the /create
command.
AI-Generated Instructions: The tool interacts with OpenAI's API to generate instructions and suggestions for code generation, editing, project planning, and reviewing.
Applying Changes: Changes are applied to the project files and folders based on the AI-generated instructions, ensuring that the project stays up-to-date and well-maintained.
Managing Conversation History and Added Files: The script manages the conversation history and keeps track of files and folders added to the context, allowing users to reset or modify the history as needed.
Python: Ensure you have Python 3.7 or higher installed. Download Python
OpenAI API Key: Obtain an API key from OpenAI.
Clone the Repository:
git clone https://github.com/doriandarko/o1-engineer.git
Navigate to the Project Directory:
cd o1-engineer
Install Dependencies:
pip install -r requirements.txt
Configure APIs:
Add your API key at the top of the script
client = OpenAI(api_key="YOUR API")
Launch the application using the following command:
python o1-eng.py
/edit
: Edit files or folders (followed by file or folder paths)
/create
: Create files or folders (followed by instructions)
/add
: Add files or folders to context (followed by file or folder paths)
/planning
: Plan project structure and tasks (followed by instructions)
/debug
: Print the last AI response
/reset
: Reset chat context and clear added files
/review
: Review and analyze code files for quality and potential improvements (followed by file or folder paths)
/quit
: Exit the program
Here's an example workflow that demonstrates using /planning
followed by /create
to generate files based on the created plan:
Planning the Project:
You: /planning Create a basic web application with the following structure:
- A frontend folder containing HTML, CSS, and JavaScript files.
- A backend folder with server-side scripts.
- A README.md file with project documentation.
Creating the Project Structure based on the Plan:
You: /create Generate the project structure based on the above plan.
This demonstrates how to use the new /planning
command to define a project structure, and then /create
to generate the files and folders accordingly.
You: /add src/main.py src/utils/helper.py src/models/
You: /planning Outline a RESTful API project with separate folders for models, views, and controllers.
You: /create Set up the basic structure for a RESTful API project with models, views, and controllers folders, including initial files.
You: /edit src/main.py src/models/user.py src/views/user_view.py
We welcome contributions! Please follow these steps:
Fork the repository.
Create a new branch (git checkout -b feature/YourFeature
).
Commit your changes (git commit -m 'Add some feature'
).
Push to the branch (git push origin feature/YourFeature
).
Open a pull request.