Welcome to XaresAICoder, a browser-based AI coding platform that integrates VS Code with multiple AI coding assistants for enhanced development productivity.
- Open XaresAICoder in your browser
- Enter a project name in the "Project Name" field
- Select "Python Flask" as the project type
- Click "Create Workspace"
- Wait for the workspace to be created (this may take a few moments)
- Your VS Code workspace will open in a new tab
Your workspace comes pre-configured with:
- VS Code extensions for Python development
- Git repository initialized
- Multiple AI coding tools available
- Python Flask project template (if selected)
- GitHub CLI (gh) for repository management
XaresAICoder provides multiple AI coding assistants. Here's how to get started with each:
setup_ai_tools # Shows setup instructions for all available AI toolsBest for project analysis and collaborative development:
setup_opencode # Quick setup
opencode auth login # Authenticate
opencode # Start interactive session
# Then type: /init # Initialize project analysisBest for interactive coding with direct file editing:
export OPENAI_API_KEY=your_key_here # or ANTHROPIC_API_KEY, GEMINI_API_KEY
setup_aider
aider # Start pair programming sessionBest for code generation and debugging:
export GEMINI_API_KEY=your_key_here # Get from https://makersuite.google.com/app/apikey
setup_gemini
gemini # Start interactive sessionBest for deep codebase understanding and advanced workflows:
setup_claude
claude # Start agentic coding sessionBest for comprehensive code analysis and workflow automation:
setup_qwen
qwen # Start interactive sessionBest for terminal-based ChatGPT integration with MCP support:
setup_codex
codex # Start interactive coding sessionBest for multi-model flexibility and session-based workflows:
setup_crush
crush # Start interactive session
crush --session feature-name # Named session management- Authentication:
opencode auth login - Interactive mode:
opencode(then use/init,/share,/help) - Direct requests:
opencode "your request" - Project analysis: Use
/initcommand in interactive mode
- Start session:
aider - Add files:
aider file1.py file2.py(edit specific files) - Git integration: Aider automatically commits changes
- Model selection: Supports OpenAI, Anthropic, Google, and local models
- Interactive mode:
gemini - Direct requests:
gemini "explain this code" - Code generation: Natural language to code conversion
- Debugging help: Error analysis and solutions
- Agentic session:
claude - Multi-file editing: Understands entire codebase context
- Git workflows: Advanced repository operations
- Complex reasoning: Handles multi-step development tasks
- Interactive mode:
qwen - Workflow automation: Automated code analysis and generation
- Comprehensive analysis: Deep understanding of project structure
- Multi-language support: Works with various programming languages
- Interactive session:
codex - Terminal integration: ChatGPT-like experience in terminal
- MCP support: Model Context Protocol for enhanced capabilities
- Direct code assistance: Quick coding help without leaving terminal
- Start session:
crush - Named sessions:
crush --session feature-name(project-specific contexts) - List sessions:
crush --list-sessions - Model switching:
/model claude-3-5-sonnetor/model gpt-4(during session) - Multi-model support: Switch between OpenAI, Anthropic, Google, Groq, OpenRouter
- LSP integration: Enhanced code understanding via Language Server Protocol
Install from marketplace: continue.continue
- Inline code completion
- Sidebar chat interface
- Multiple AI provider support
Install from marketplace: saoudrizwan.claude-dev
- Direct file editing with Claude AI
- Multi-file operations
- Terminal integration
- Be specific: Provide clear, detailed requests
- Context matters: Include relevant file names or function names
- Choose the right tool:
- OpenCode SST: Project analysis, collaboration
- Aider: Interactive pair programming
- Gemini: Quick code generation
- Claude Code: Complex multi-file tasks
- Continue: Inline completions
- Cline: VS Code integrated editing
- Review code: Always review AI-generated code before using it
- Combine tools: Use different tools for different tasks
- View projects: All your projects are listed on the main dashboard
- Open workspace: Click "Open Workspace" to access your project
- Delete project: Use the "Delete" button to remove a project permanently
- 🟢 Running: Workspace is active and accessible
- 🔴 Stopped: Workspace has been stopped (due to inactivity or manual stop)
- Workspaces automatically stop after 120 minutes of inactivity
- Maximum 5 workspaces per user
- Files are preserved when workspaces restart
Your Python Flask workspace includes:
- Python 3 with pip
- Flask and python-dotenv packages
- Virtual environment setup function
- Sample Flask application
-
Activate the virtual environment:
source venv/bin/activate -
Install additional packages:
pip install package-name
-
Run your Flask app:
python app.py
-
Use AI tools for development:
# OpenCode SST for project analysis opencode # Then: /init # Aider for interactive development aider app.py # Gemini for quick code generation gemini "add a database connection to my Flask app" # Continue extension for inline completions (in VS Code)
Use the pre-configured setup_flask_project function to create a new Flask project structure:
setup_flask_project- All files in your workspace directory
- Git repository history
- Installed packages and configurations
- Running processes (you'll need to restart your apps)
- Terminal sessions
- VS Code layout preferences
Workspace won't open
- Check if the workspace is still running (status indicator)
- Try refreshing the project list
- The workspace may have timed out - create a new one
AI Tools not working
For OpenCode SST:
- Ensure you've authenticated:
opencode auth login - Check your API key is valid
- Verify OpenCode SST is in your PATH:
which opencode
For Aider:
- Set your API key:
export OPENAI_API_KEY=your_key(or ANTHROPIC_API_KEY, GEMINI_API_KEY) - Run setup:
setup_aider - Check installation:
which aider
For Gemini CLI:
- Set your API key:
export GEMINI_API_KEY=your_key - Get API key from: https://makersuite.google.com/app/apikey
- Run setup:
setup_gemini
For Claude Code:
- Requires Claude Pro/Max subscription or API billing
- Run setup:
setup_claude - Follow authentication prompts
For VS Code Extensions (Continue, Cline):
- Install from Extensions marketplace
- Configure API keys in extension settings
Git issues
- Git is pre-configured with default user settings
- Update with your details:
git config user.name "Your Name" git config user.email "your.email@example.com"
Python/Flask issues
- Activate virtual environment:
source venv/bin/activate - Install missing packages:
pip install package-name - Check Python version:
python --version
- AI Tools:
- OpenCode SST:
opencode --helpor use/helpin interactive mode - Aider: Built-in help and documentation
- Gemini: Interactive help within the tool
- Claude Code: Comprehensive built-in guidance
- OpenCode SST:
- VS Code: Use the built-in help and documentation
- Flask: Refer to the official Flask documentation
- Platform issues: Check the error messages in the browser console
- Setup issues: Run
setup_ai_toolsfor tool-specific guidance
- Close unused terminals to save resources
- Commit your work regularly using Git
- Use AI tools efficiently - choose the right tool for each task
- Monitor workspace timeout - save work before 120 minutes
- Leverage GitHub CLI - use
ghcommands for repository management
Teachers can prepare a fully-configured base workspace and then clone it into multiple identical copies for students.
- Create and configure a base workspace (install packages, set up files, clone repos, etc.)
- On the project card, click the Clone button (copy icon)
- In the clone modal:
- Review the source workspace settings (memory, CPU, proxy mode, group)
- Set the number of clones (1–50)
- Optionally set a password for all cloned workspaces
- Preview the clone names (
Base Workshop 1,Base Workshop 2, etc.)
- Click Clone — clones appear immediately as "Creating" and become available as each one finishes
- The entire container filesystem: installed packages, project files, configs, git repos
- Workspace metadata: proxy mode, group, memory/CPU limits, git URL reference
- Running processes (each clone starts fresh)
- The source workspace's password (you set a new one or leave clones unprotected)
- Uses
docker committo snapshot the source container's filesystem - Each clone is an independent container with its own Docker copy-on-write layer
- The snapshot image is temporary and cleaned up automatically after all clones are created
- Source workspace can be running or stopped during cloning (briefly paused for consistency)
# 1. Teacher creates and sets up the base workspace via UI
# 2. Clone via API (alternative to UI)
curl -X POST http://localhost/api/projects/<source-id>/clone \
-H "Content-Type: application/json" \
-d '{"count": 20, "password": "student2026"}'
# 3. Students receive their individual workspace URLs
# Each clone has its own independent environmentAfter cloning workspaces for a workshop, use the built-in landing page to distribute them to participants automatically.
- Participants scan a QR code or open
http://<server>/workshop/ - They enter their name and email address
- The system assigns the next free running workspace from the configured group
- The workspace URL is shown immediately with a copy button and a direct link
Each email address can only be registered once — returning participants see their existing workspace instead of getting a new one.
- Configure
.env:WORKSHOP_GROUP=JavaLand # projectName prefix of workshop workspaces WORKSHOP_ADMIN_PASSWORD=... # password for the admin page - Restart the server container:
docker-compose up -d --build server - Clone your base workspace into N copies (see section above) — the landing page picks them up automatically
Open http://<server>/workshop/admin.html to:
- See all active claims (name, email, assigned workspace, timestamp)
- Release a workspace — moves the claim to the history log and makes the workspace available again
- View the release history (collapsible, newest first)
- Export CSV of all active claims for email distribution
The history is never deleted — released claims are preserved in /app/workspaces/workshop-claims-history.json.
| Endpoint | Auth | Description |
|---|---|---|
GET /api/workshop/status |
— | Available / total / claimed counts |
POST /api/workshop/claim |
— | Claim a workspace { name, email } |
GET /api/workshop/claims?password= |
✅ | All claims + history (admin) |
POST /api/workshop/claims/:id/release?password= |
✅ | Release a claim to history |
You can install additional VS Code extensions:
- Open the Extensions panel (Ctrl+Shift+X)
- Search for and install extensions
- Extensions will be available for the session
Create a .env file for environment-specific settings:
# .env
DEBUG=True
DATABASE_URL=sqlite:///app.db
SECRET_KEY=your-secret-keyAider - Best for multi-file editing:
aider models.py views.py # Edit multiple files together
# Aider understands relationships between filesClaude Code - Best for complex multi-file projects:
claude # Understands entire codebase context
# Can handle complex refactoring across multiple filesOpenCode SST - Good for project-wide analysis:
opencode
# Use /init to analyze entire project structureTraditional single-file requests:
gemini "update the user model in models.py to include email validation"Use GitHub CLI for seamless Git workflows:
# Authenticate with GitHub
gh auth login
# Create repository
gh repo create my-project --public
# Push to GitHub
git push -u origin main
# Create pull request
gh pr create --title "Feature: User authentication"- Your API keys are stored locally in your workspace
- Workspaces are isolated from each other
- No root access is provided in containers
- Regular security updates are applied to base images
If you encounter issues or have suggestions:
- Check this user guide first
- Use OpenCode SST for coding questions
- Report platform issues through the appropriate channels
Happy coding with XaresAICoder! 🚀