A powerful web-based AI coding assistant that allows users to edit GitHub repositories inside a browser. This application allows you to clone any GitHub repository, edit code in real-time, and get AI assistance with development tasks. It automatically deploys cloud containers on Railway with a universal Docker image that supports any Node.js, Python, or web project.
- π€ AI-Powered Code Assistant - Chat with Gemini AI to make code changes
- βοΈ Railway Cloud Containers - Each project runs in its own isolated cloud environment
- π³ Universal Docker Containers - Automatically detects and runs any Node.js, Python, or web project
- π GitHub Repository Cloning - Clone and work with any public or private GitHub repo
- π οΈ Live Development Tools - Edit files, run commands, restart servers in real-time
- π‘ Live Log Streaming - See your application logs in real-time as you develop
- π¨ Modern UI - Built with Next.js, Mantine, and Tailwind CSS
- π Multi-step Agent - AI assistant can take multiple actions to complete complex tasks
- π₯ Multi-tenant Support - Multiple users can work on the same repository simultaneously
- Frontend: Next.js 15 with App Router, Mantine UI components
- AI Integration: Google Gemini via AI SDK
- Cloud Runtime: Railway containers with universal Docker images
- Container Registry: GitHub Container Registry (GHCR)
- Real-time Communication: Server-Sent Events for log streaming
- Styling: Tailwind CSS + Mantine component library
npm installCreate a .env.local file with the following variables:
# AI Configuration
GOOGLE_GENERATIVE_AI_API_KEY=your_google_ai_api_key_here
# Railway Configuration (server-side only)
RAILWAY_DEV_PROJECT_ID=your_railway_dev_project_id
RAILWAY_DEV_ENVIRONMENT_ID=your_railway_dev_environment_id
RAILWAY_TOKEN=your_railway_api_tokenFollow the detailed setup guide in RAILWAY_SETUP.md to:
- Create a Railway project and get credentials
- Configure your Railway environment
- Set up the universal container deployment
npm run devNavigate to http://localhost:3000
To work with a GitHub repository:
- Navigate to
http://localhost:3000/your-project-name?repo=https://github.com/owner/repo - Add your GitHub token when requested (for private repos)
- The system will automatically:
- Deploy a new Railway container with universal Docker image
- Generate a public Railway domain (e.g.,
project-user-production.up.railway.app) - Clone your repository inside the container
- Auto-detect project type (Node.js, Python, etc.)
- Install dependencies (
npm install,pip install, etc.) - Start your development server with proper port configuration
- Expose your app through path-based proxy routing
- Stream real-time logs from both container and your app
- Enable hot module replacement for instant changes
The AI assistant can help you with:
-
File Operations:
read_file- View any file in your projectwrite_file- Create or modify fileslist_files- Explore project structure
-
Development Tools:
run_command- Execute terminal commandsrestart_server- Restart your development server
-
Real-time Features:
- Live code changes with hot reloading
- Real-time log streaming
- Instant feedback on compilation errors
π Live Demo: https://sr2e-starter-production.up.railway.app
This is a live example of a Next.js starter deployed through our system:
- User App: https://sr2e-starter-production.up.railway.app/ (Next.js with Mantine UI)
- Container API: https://sr2e-starter-production.up.railway.app/_container/health
- Live Logs: https://sr2e-starter-production.up.railway.app/_container/logs/stream
- "Show me the project structure and main components"
- "Add authentication to this Next.js app"
- "Fix the TypeScript errors in the components folder"
- "Add a new API endpoint for user management"
- "Optimize this React component for performance"
- "Set up a database connection and create user models"
Each deployed container uses a path-based proxy system:
https://your-domain.up.railway.app/- Your application (Next.js, React, etc.)https://your-domain.up.railway.app/about- All standard app routeshttps://your-domain.up.railway.app/_next/*- WebSocket HMR, static assets
GET /_container/health- Container health checkPOST /_container/read_file- Read file contentsPOST /_container/write_file- Write/modify filesPOST /_container/list_files- List directory contentsPOST /_container/run_command- Execute commandsPOST /_container/restart_server- Restart the development serverGET /_container/logs/stream- Real-time log streaming via Server-Sent Events
The proxy ensures zero conflicts between your app and AI agent tools while maintaining full HMR support.
# Development server with hot reloading
npm run dev
# Production build
npm run build
# Start production server
npm run start
# Lint code
npm run lint
# Testing scripts
npm run test:container # Test container deployment
npm run test:files # Test file operations
npm run test:logs # Test log streaming
npm run test:all # Run full test suite
npm run inspect:container # Interactive container inspectorThe system supports multiple users working on the same repository simultaneously:
- Each user gets a unique user ID stored in localStorage
- Railway services are named with format:
{userId}-{repoName} - Each user-repo combination gets its own isolated container
- Automatic Railway domain generation:
{userId}-{repoName}.up.railway.app - Real-time log streaming is per-user session
- No conflicts between users editing the same repository
The universal Docker container automatically detects and supports:
- Next.js Applications -
npm run devwith HMR support - React Applications - Create React App, Vite projects
- Express Servers - API servers and web applications
- Vue.js Applications - Nuxt.js and standard Vue projects
- General Node.js - Any project with
package.json
- Flask Applications - Web applications and APIs
- Django Projects - Full-stack web applications
- FastAPI - Modern async API frameworks
- General Python - Any project with
requirements.txt
- HTML/CSS/JS - Served via static file server
- Generated Sites - Gatsby, Hugo output directories
- Detects project type from
package.json,requirements.txt - Automatically installs dependencies
- Selects appropriate start command (
npm run dev,python app.py, etc.) - Configures ports for Railway deployment
- Handles both development and production modes
This application requires a modern browser with support for:
- ES2022 features
- Server-Sent Events (EventSource)
- Modern JavaScript APIs
- Fork the repository
- Create a feature branch
- Test your changes with the provided testing scripts
- Ensure all container functionality works
- Submit a pull request
MIT License - see LICENSE file for details