An intelligent assistant designed to enhance your development workflow with advanced AI capabilities.
✨ NEW
O1 support. Simply use openai/o1-preview or openai/o1-mini as models.
🔍 Overview
Omni Engineer is a console-based tool that integrates AI capabilities into your development process. It offers smart responses to coding queries, file management, web searching, and image processing functionalities, now with enhanced features for a more robust development experience.
Omni Engineer is a spiritual successor to Claude Engineer, built from extensive usage of hand-made AI tools, trial and error, and user feedback. This new script allows for more control via simplicity while introducing powerful new features like multi-file editing and chat session management.
🌟 Features
- AI-Powered Responses with Streaming Output
- Advanced File Management (Add, Edit, Create, Show Content)
- Multi-File Editing Support
- Web Searching with DuckDuckGo Integration
- Image Processing (Local Files and URLs)
- Undo Functionality for File Edits
- Conversation Save & Load
- Syntax Highlighting for Code
- Diff Display for File Changes
- AI Model Selection and Switching
🖥️ Commands
/add <filepath>: Add files to AI context/edit <filepath>: Edit existing files/new <filepath>: Create new files/search: Perform web searches/image <filepath/url>: Add images to context/clear: Clear AI memory/reset: Reset the session/diff: Toggle diff display/history: View chat history/save: Save current chat/load: Load a previous chat/undo <filepath>: Undo last file edit/help: Display available commands/model: Show current AI model/change_model: Change the AI model/show <filepath>: Display content of a file
🚀 Installation
- Clone the repository:
git clone https://github.com/doriandarko/omni-engineer.git cd omni-engineer - Install the required packages:
pip install -r requirements.txt - Rename the .env.example to .env and add your API Key:
OPENROUTER_API_KEY="Your key" - Run the main script:
python omni-eng.py
📚 Usage
After launching the console, enter commands or questions as needed. The AI will respond accordingly, assisting with various development tasks. Use the /help command to see a list of available commands and their descriptions.
🤖 AI Models
Omni Engineer utilizes OpenRouter to access a variety of AI models. The default model is set to "anthropic/claude-3.5-sonnet" for general assistance and "google/gemini-pro-1.5" for code editing. You can view the current model with /model and change it using /change_model. For detailed information on available models and their capabilities, refer to OpenRouter's documentation.
🔧 Advanced Features
- Multi-File Editing: Edit multiple files in a single session.
- Real-time Diff Display: See changes as they're made with the diff feature.
- Syntax Highlighting: Improved code readability with syntax highlighting.
- Image Context: Add both local and URL-based images to your AI context.
- Flexible Model Selection: Switch between different AI models for various tasks.
🐛 Issue Reporting
Please use the issue tracker only for reporting actual bugs in the code. This helps keep the issue tracker focused on improving the project's stability and functionality.
🤝 Contributing
Contributions to Omni Engineer are welcome! Please feel free to submit pull requests, create issues for bugs, or suggest new features.
omni-engineer Copyright (c) 2024, Pietro Schirano