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.
Added Grok Engineer to the repo. Make sure you add your XAI_API_KEY in your .env file. Added Streaming.
/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.