SIDEVKICK is a tool designed to assist developers by integrating AI capabilities directly into their local development workflow. It helps with tasks like code editing, refactoring, generation, explanation, and more, using the GenAI models of your choice.
- AI-Powered Coding Assistance: Leverage models from Google Gemini, OpenAI, or Anthropic for code generation, refactoring, explanation, and suggestions.
- Interactive Chat Interface: Communicate with the AI to get help with your coding tasks.
- Integrated Code Editor: View and edit your project files directly within the application using Monaco Editor.
- File Explorer: Easily navigate your project's directory structure.
- Apply AI Suggestions: Review and apply AI-suggested changes (file edits, new file/folder creation, shell command execution) with a diff view.
- Backend API: A robust FastAPI backend to handle AI interactions and file operations.
- Modern Frontend: A responsive React (TypeScript) frontend built with Vite and Material-UI for a clean user experience.
- Git Integration: Basic Git operations (status, add, commit, push, pull, branch) from the UI.
- Configurable: Set your API key and choose your preferred AI model.
- Live Preview: (For web projects) An integrated iframe to preview changes.
This agent currently supports multiple providers and their latest models:
gemini-2.0-flash-exp
gemini-1.5-pro
gemini-1.5-flash
gemini-1.5-flash-8b
gemini-2.5-pro-preview-05-06
gemini-2.5-flash-preview-05-20
gemini-2.5-flash-preview-native-audio-dialog
claude-3.5-sonnet
claude-3-opus
claude-3-haiku
- GPT-4-turbo and future support for GPT-4.5 and GPT-5 models.
✅ You can switch models dynamically from the configuration panel.
The agent supports two powerful methods to understand your codebase context:
- Uses embeddings and a semantic vector index (FAISS + SentenceTransformers) to retrieve only the most relevant code chunks for your query.
- Helps avoid noisy context and focuses the model on precise logic.
- Enables file-level dependency understanding, class/function metadata, and component detection.
- Even when RAG is disabled, the agent performs intelligent static analysis to determine relevant files and context.
- It detects UI components, code complexity, function/class declarations, and structural relationships across files.
- This hybrid approach ensures that context sent to the model is focused and high-quality — even in full-project scans.
You can toggle RAG on/off via UI or API. Both methods work intelligently behind the scenes using semantic metadata, not just raw file dumps.
-
Backend:
- Python 3.9+
- FastAPI
- Uvicorn (ASGI server)
- Google Generative AI SDK (
google-generativeai
) - Anthropic AI SDK
- OpenAI AI SDK
-
Frontend:
- React 18+
- TypeScript
- Vite
- Material-UI (MUI)
- Monaco Editor (for the code editor component)
- Axios (for API communication)
-
AI Model: Google Gemini (configurable), Anthropic Claude, OpenAI
- Python 3.9 or higher
- Node.js 18.x or higher and npm (or yarn)
- Git
- An API key for Google Gemini, OpenAI, or Anthropic (depending on your chosen provider)
-
Clone the repository:
git clone https://github.com/Abdohurbly/local-ai-developer-agent.git cd local-ai-developer-agent
-
Backend Setup:
-
Navigate to the project root directory.
-
Create and activate a Python virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install Python dependencies:
pip install -r requirements.txt
-
-
Frontend Setup:
-
Navigate to the
frontend
directory:cd frontend
-
Install Node.js dependencies:
npm install # or if you use yarn: # yarn install
-
Go back to the project root directory:
cd ..
-
- The application allows you to configure your AI API Key and select the AI model through the UI (Settings page).
- Ensure your API key has the necessary permissions to use the selected GenAI models.
-
Start the Backend Server:
-
From the project root directory (ensure your Python virtual environment is activated):
uvicorn backend_api:app --host 0.0.0.0 --port 8000 --reload
-
The backend API will be running at
http://localhost:8000
.
-
-
Start the Frontend Development Server:
-
Open a new terminal, navigate to the
frontend
directory:cd frontend
-
Run the development server:
npm run dev # or if you use yarn: # yarn dev
-
The frontend application will be accessible at
http://localhost:3000
(or another port if 3000 is in use, check your terminal output).
-
-
Access the Application:
- Open your web browser and go to
http://localhost:3000
. - Configure your API Key and load your project path via the Settings page in the UI.
- Open your web browser and go to
-
agent.py
: Core AI agent logic. -
backend_api.py
: FastAPI application defining the backend server and API endpoints. -
utils.py
: Utility functions for file system operations and project context gathering. -
requirements.txt
: Python dependencies for the backend. -
frontend/
: Contains the React frontend application.frontend/src/
: Main source code for the React app (components, pages, services).frontend/public/
: Static assets for the frontend.frontend/package.json
: Frontend dependencies and scripts.frontend/vite.config.ts
: Vite configuration for the frontend development server and build process.
Contributions are welcome! We appreciate any help to improve the SIDEVKICK. Here's how you can contribute:
-
Fork the Repository: Create your own fork of the project on GitHub.
-
Create a Branch:
git checkout -b feature/your-amazing-feature
-
Make Your Changes: Implement your feature or bug fix.
-
Lint and Test:
-
For frontend changes, run the linter:
cd frontend npm ci # install Node dependencies npm run lint
-
For backend changes, run the Python unit tests:
# install dependencies if you haven't pip install -r requirements.txt pytest
The tests include dummy modules for large optional dependencies so they can run in minimal environments.
-
-
Commit Your Changes:
git commit -m "feat: Add some amazing feature" # Use conventional commit messages if possible
-
Push to Your Branch:
git push origin feature/your-amazing-feature
-
Open a Pull Request: Go to the original repository on GitHub and open a Pull Request from your forked branch.
- Please use the GitHub Issues section of this repository to report bugs or request new features.
- Before creating a new issue, check if a similar one already exists.
- For bug reports, please provide as much detail as possible, including steps to reproduce, environment details, and logs if relevant.
- Frontend: The project uses ESLint for code linting. Please ensure your contributions pass the linting checks.
- Backend (Python): (Consider adopting a style like Black or PEP 8. For now, aim for clarity and consistency).
This project is licensed under the MIT License.
- Google for the Gemini API.
- The creators of FastAPI, React, Vite, Material-UI, Monaco Editor, and other open-source libraries used in this project.