A powerful, local-first web IDE with AI assistance, cloud synchronization, and secure code execution. Built for developers who demand professional tools with enterprise-grade security.
- Monaco Editor (VS Code's editor) with full IntelliSense
- Multi-language syntax highlighting (Python, JavaScript, Java, C++, and more)
- Split editor support for side-by-side coding
- Real-time file watching and auto-refresh
- 28+ language support
- Powered by Groq - Fast, free LLM integration
- Intelligent code completion with inline suggestions
- Context-aware code explanation and documentation
- AI-driven refactoring suggestions
- Interactive chat for coding help
- Browser-based terminal with full ANSI support
- Auto-detect programming languages from file extensions
- One-click code execution with live output
- Multiple terminal sessions support
- Real-time WebSocket streaming
- Single Docker container for all languages (Python, Node.js, Java, C++)
- Secure sandboxing with resource limits
- Isolated execution environment
- Automatic dependency management
- File watching and hot reload
- Seamless project storage and synchronization
- OAuth2 authentication
- Automatic backup and versioning
- Offline-first with background sync
- Share projects with collaborators
- Container isolation for code execution
- Non-root user execution
- Resource limits (CPU, memory, time)
- Encrypted token storage
- Rate limiting and DDoS protection
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend Layer β
β ββββββββββββββ ββββββββββββββ ββββββββββββββ ββββββββββββββ β
β β Monaco β β xterm.js β β AI Chat β β Drive β β
β β Editor β β Terminal β β Assistant β β Sync β β
β ββββββββββββββ ββββββββββββββ ββββββββββββββ ββββββββββββββ β
β React + Vite + WebSocket + REST API β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββ
β Backend Layer (Node.js) β
β ββββββββββββββ ββββββββββββββ ββββββββββββββ ββββββββββββββ β
β β Auth β β File β β AI β β Execution β β
β β Service β β Service β β Service β β Service β β
β ββββββββββββββ ββββββββββββββ ββββββββββββββ ββββββββββββββ β
β Express + MongoDB + Google APIs + WebSocket β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββ
β Execution Layer (Docker) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Universal Container (Alpine Linux) β β
β β Python 3.11 β Node.js 18 β Java 17 β G++ 12 β β
β β Isolated Execution β Resource Limits β Security β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
|
|
Ensure you have the following installed:
| Software | Version | Purpose |
|---|---|---|
| Node.js | β₯18.0.0 LTS | Backend & Frontend runtime |
| Docker Desktop | β₯20.10 | Code execution containers |
| Git | Latest | Version control |
| MongoDB | β₯6.0 (optional) | Database (or use MongoDB Atlas) |
git clone https://github.com/Path3010/AI-IDE.git
cd AI-IDE# Backend configuration
cd backend
cp .env.example .env
# Windows
scripts\build-runners.bat
# Linux/Mac
chmod +x scripts/build-runners.sh
./scripts/build-runners.sh# Development mode (recommended)
cd backend
npm install
nodemon
# In a new terminal
cd frontend
npm install
npm run dev- Frontend: http://localhost:3000
- Backend API: http://localhost:3001
- Health Check: http://localhost:3001/health
scripts\setup-tools.bat
scripts\start-dev.batAI-IDE/
βββ π frontend/ # React application
β βββ src/
β β βββ components/ # UI components
β β β βββ EnhancedMonacoEditor.jsx # Code editor
β β β βββ Terminal.jsx # Integrated terminal
β β β βββ AIAssistant.jsx # AI chat interface
β β β βββ FileExplorer.jsx # File tree
β β β βββ SplitEditor.jsx # Split view editor
β β βββ services/ # API clients
β β βββ hooks/ # Custom React hooks
β β βββ context/ # Global state
β β βββ App.jsx # Main application
β βββ package.json
β
βββ π backend/ # Node.js API server
β βββ src/
β β βββ controllers/ # Route handlers
β β β βββ auth.controller.js # Authentication
β β β βββ execution.controller.js # Code execution
β β β βββ file.controller.js # File operations
β β β βββ ai.controller.js # AI features
β β βββ services/ # Business logic
β β β βββ execution.service.js # Docker management
β β β βββ fileWatcher.service.js # File monitoring
β β β βββ ai.service.js # Groq integration
β β βββ lib/ # Core libraries
β β β βββ containerManager.js # Container lifecycle
β β β βββ terminalManager.js # WebSocket terminals
β β β βββ driveService.js # Google Drive API
β β βββ middleware/ # Express middleware
β β βββ models/ # MongoDB schemas
β β βββ index.js # Server entry point
β βββ package.json
β
βββ π runner-images/ # Docker configurations
β βββ universal/ # Universal runtime
β βββ Dockerfile # Multi-language container
β βββ entrypoint.sh # Container startup
β
βββ π scripts/ # Automation scripts
β βββ build-runners.bat # Build Docker images (Windows)
β βββ build-runners.sh # Build Docker images (Linux/Mac)
β βββ start-dev.bat # Start development
β βββ diagnose-issues.bat # System diagnostics
β
βββ π docs/ # Documentation
β βββ features/ # Feature guides
β βββ project-requirements.md # Requirements specification
β βββ project-design.md # System design
β βββ SETUP_GOOGLE_OAUTH.md # OAuth setup guide
β
βββ π infra/ # Infrastructure
β βββ docker-compose.dev.yml # Development compose
β βββ mongodb/ # Database setup
β
βββ .gitignore # Git ignore rules
βββ package.json # Root package config
βββ README.md # This file
βββ LICENSE # MIT License
cd frontend
npm install
npm run dev # Start Vite dev server (localhost:3000)
npm run build # Production build
npm run preview # Preview production build
npm run lint # Run ESLintcd backend
npm install
npm run dev # Start with nodemon (localhost:3001)
npm run start # Production server
npm test # Run tests
npm run lint # Run ESLint# Build universal runner
docker build -t ai-ide-universal-runner runner-images/universal/
# Test container
docker run --rm ai-ide-universal-runner python3 --version
# Check running containers
docker ps
# View logs
docker logs <container_id>
# Clean up
docker system prune -a# Unit tests
npm test
# E2E tests
npm run test:e2e
# Coverage report
npm run test:coverage
# Watch mode
npm run test:watch| Feature | Implementation | Status |
|---|---|---|
| Container Isolation | Docker sandboxing | β Active |
| Resource Limits | CPU/Memory/Time constraints | β Active |
| Non-root Execution | Unprivileged user (coderunner) | β Active |
| Network Isolation | No internet access in containers | β Active |
| Token Encryption | bcrypt + crypto for OAuth tokens | β Active |
| Rate Limiting | 100 requests/15min per IP | β Active |
| CORS Protection | Whitelist allowed origins | β Active |
| Security Headers | Helmet.js middleware | β Active |
| Input Validation | Sanitization & validation | β Active |
| Audit Logging | All actions logged | β Active |
# Non-root user
USER coderunner
# Resource limits
--memory=512m
--cpus=1.0
--pids-limit=100
# Network isolation
--network=none
# Read-only root filesystem
--read-only
# Security options
--security-opt=no-new-privileges# Run all tests
npm test
# Frontend tests
cd frontend && npm test
# Backend tests
cd backend && npm test
# E2E tests
npm run test:e2e- Code Editor - Monaco editor, syntax highlighting, IntelliSense
- Terminal - Integrated terminal, WebSocket, auto-detection
- AI Assistant - Groq integration, code completion, chat
- Code Execution - Docker containers, universal runtime
- File Management - File explorer, CRUD operations, file watching
- Google Drive - OAuth, sync, offline support
- Authentication - JWT, session management, security
- Requirements - Functional and technical requirements
- Design - System architecture and API specifications
- Work Plan - Sprint breakdown and implementation plan
- OAuth Setup - Google Cloud Console configuration
// From the IDE interface:
1. Click "New Project" in File Explorer
2. Enter project name
3. Choose template (Python, Node.js, Java, C++)
4. Start coding!# Write your code in the editor
print("Hello from AI-IDE!")
# Click the "Run" button or use:
# - Ctrl+Enter (Windows/Linux)
# - Cmd+Enter (Mac)
# Output appears in the integrated terminal// 1. Inline completion
function calculateSum( // Wait 800ms, AI suggests completion
// 2. Chat assistant
// Click AI icon β Ask: "Explain async/await in JavaScript"
// 3. Code explanation
// Select code β Right-click β "Explain Code"
// 4. Refactoring
// Select code β Right-click β "Get Refactoring Suggestions"# All changes auto-sync to Google Drive
# Status indicator shows sync progress
# Offline changes sync when connection restored# Build frontend
cd frontend
npm run build
# Output: frontend/dist/
# Build backend (if needed)
cd backend
npm run build # Start all services
docker-compose -f docker-compose.yml up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose down# render.yaml
services:
- type: web
name: ai-ide-backend
env: docker
dockerfilePath: ./backend/Dockerfile
- type: web
name: ai-ide-frontend
env: docker
dockerfilePath: ./frontend/Dockerfile# Deploy with Railway CLI
railway init
railway up# Clone repository
git clone https://github.com/Path3010/AI-IDE.git
# Setup environment
cd AI-IDE
cp backend/.env.example backend/.env
# Edit .env with production credentials
# Start with Docker Compose
docker-compose up -d
# Setup NGINX reverse proxy (optional)
sudo apt install nginx
# Configure NGINX for https://yourdomain.com# Backend (.env)
NODE_ENV=production
PORT=3001
MONGODB_URI=mongodb+srv://...
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
GROQ_API_KEY=your_groq_key
SESSION_SECRET=strong_random_secret
FRONTEND_URL=https://yourdomain.com
# Frontend (build time)
VITE_API_URL=https://api.yourdomain.comWe welcome contributions from the community! Here's how you can help:
- Fork the repository on GitHub
- Clone your fork locally
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes following our coding standards
- Test your changes thoroughly
- Commit with clear messages:
git commit -m "Add: feature description" - Push to your fork:
git push origin feature/your-feature-name - Open a Pull Request with detailed description
- Style Guide: Follow ESLint + Prettier configurations
- Naming: Use camelCase for variables, PascalCase for components
- Comments: Document complex logic with JSDoc
- Testing: Write unit tests for new features
- Commits: Use conventional commit messages (feat:, fix:, docs:)
- Keep PRs focused on a single feature/fix
- Include tests for new functionality
- Update documentation as needed
- Ensure all CI checks pass
- Respond to review feedback promptly
- π Bug fixes and testing
- π Documentation improvements
- π Internationalization (i18n)
- βΏ Accessibility enhancements
- π¨ UI/UX improvements
- β‘ Performance optimizations
- Monaco Editor - VS Code's editor in the browser
- xterm.js - Terminal emulator for the web
- Docker - Container platform for secure execution
- Google Drive API - Cloud storage integration
- Open Source Community - For amazing tools and libraries
Special thanks to all contributors who have helped build and improve AI-IDE!
| Metric | Value | Status |
|---|---|---|
| Initial Load Time | < 2s | β |
| Code Execution | < 500ms | β |
| AI Response Time | < 2s | β |
| File Sync Latency | < 1s | β |
| Container Startup | < 1s | β |
- Real-time collaboration
- Git integration
- Debugger support
- Plugin system
- Mobile support
- π Documentation: docs/ folder
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
Built with β€οΈ by developers, for developers
Empowering coders with AI-powered development tools
Report Bug β’ Request Feature β’ Documentation