What is code-server?¶
code-server is an open-source project that enables you to run VS Code in a browser, providing a full-featured development environment accessible from anywhere.
Key Differences from VS Code Desktop¶
code-server is NOT VS Code Desktop. It's an open-source fork with important differences:
| Feature | VS Code Desktop | code-server |
|---|---|---|
| Platform | Desktop app | Web browser |
| Installation | Download installer | Server installation |
| Extension Marketplace | Microsoft Store | Open VSX |
| Remote Access | Limited | Built-in |
| Licensing | Microsoft | MIT License |
| Telemetry | Microsoft | Disabled by default |
Why code-server?¶
1. Browser-Based¶
Access your development environment from any device:
- 💻 Laptop, desktop, tablet
- 🌐 Any operating system
- 📱 Even mobile devices (limited)
- ☁️ No local installation required
2. Consistent Environments¶
- Same setup across all machines
- No "works on my machine" issues
- Share environments with team members
- Quick onboarding for new developers
3. Resource Flexibility¶
- Server-side execution: Code runs on server, not local machine
- Powerful backends: Use cloud VMs with more resources
- Thin clients: Old laptops can access powerful development environments
4. Always Available¶
- No setup time: Environment is always running
- Resume work: Pick up exactly where you left off
- Persistent state: Terminal sessions, debug sessions remain active
How It Works¶
graph TB
Browser[Web Browser]
CS[code-server Process<br/>:8010]
FS[File System<br/>Workspace]
Term[Integrated Terminal]
Browser -->|HTTP/WebSocket| CS
CS -->|Read/Write| FS
CS -->|Execute| Term
Term -->|Output| CS
CS -->|Stream| Browser
Flow:
- User accesses
http://localhost:8010in browser - code-server serves VS Code web UI
- User edits files in browser
- code-server writes changes to server filesystem
- Terminal commands execute on server
- Output streams back to browser
Open VSX vs Microsoft Marketplace¶
Microsoft Marketplace¶
- ❌ Not available in code-server
- ❌ Proprietary to Microsoft VS Code
- ❌ Licensing restrictions prevent use in forks
Open VSX Registry¶
- ✅ Open source extension registry
- ✅ Available to all VS Code forks
- ✅ Most popular extensions available
- ⚠️ Some Microsoft extensions not available
Missing Extensions:
- Microsoft Python Extension (alternatives available)
- Live Share (planned support)
- Some proprietary Microsoft tools
Workarounds:
- Use open-source alternatives
- Manually install compatible
.vsixfiles - Use Databricks DevBox pre-configured extension groups
Architecture in Databricks DevBox¶
Databricks DevBox runs multiple code-server instances:
DevBox Manager (:8000)
├── code-server instance 1 (:8010)
├── code-server instance 2 (:8011)
└── code-server instance N (:8099)
Each instance:
- Runs as separate process
- Has isolated workspace directory
- Uses dedicated configuration
- Runs on unique port
Learn more about architecture →
Command Line Options¶
Databricks DevBox starts code-server with:
code-server \
--bind-addr 0.0.0.0:8010 \
--user-data-dir /path/to/data/<server-id>/code-server \
--auth none \
--disable-telemetry \
--disable-update-check \
--disable-file-downloads \
--log info \
/path/to/workspace
Options explained:
--bind-addr: Listen on all interfaces, specific port--user-data-dir: Isolated configuration directory--auth none: No password (protected by DevBox)--disable-telemetry: No usage tracking--disable-update-check: Prevent automatic updates--disable-file-downloads: Security hardening--log info: Logging level
Environment Variables¶
code-server instances run with:
XDG_DATA_HOME=/path/to/data/<server-id>
NODE_OPTIONS=--max-old-space-size=2048
VSCODE_LOGS=info
CODE_SERVER_LOG=info
UV_THREADPOOL_SIZE=128
NODE_TLS_REJECT_UNAUTHORIZED=0
VSCODE_DISABLE_CRASH_REPORTER=true
ELECTRON_NO_ATTACH_CONSOLE=1
DISABLE_TELEMETRY=true
Comparison with Alternatives¶
| Feature | code-server | Gitpod | GitHub Codespaces |
|---|---|---|---|
| Self-hosted | ✅ Yes | ⚠️ Limited | ❌ No |
| Cost | Free | Paid | Paid |
| Customization | ✅ Full | ⚠️ Limited | ⚠️ Limited |
| Databricks Integration | ✅ Yes (via DevBox) | ❌ No | ❌ No |
| Open Source | ✅ Yes | ⚠️ Partial | ❌ No |
Benefits in Databricks Context¶
1. Lakehouse Integration¶
- Access Databricks workspace files
- Run Databricks CLI commands
- Use Databricks extensions
- Query Unity Catalog
2. Training & Workshops¶
- Pre-configured environments for students
- Consistent setup across all participants
- No installation required
- Quick teardown after session
3. AI-Assisted Development¶
- Claude Code pre-installed and configured
- Databricks models via CCR
- Token management handled automatically
4. Team Collaboration¶
- Shared templates for common projects
- Consistent tooling across team
- Easy environment reproduction
Limitations¶
1. Not Identical to VS Code¶
- Some keyboard shortcuts differ
- Performance may vary
- Browser limitations apply
2. Extension Availability¶
- Not all extensions available on Open VSX
- Microsoft-proprietary extensions unavailable
- Some extensions may have compatibility issues
3. Network Dependency¶
- Requires connection to server
- Latency affects responsiveness
- Offline work not possible
4. Browser Constraints¶
- Browser resource limits
- Tab closure loses state
- Browser-specific quirks
Best Practices¶
1. Use Modern Browsers¶
- ✅ Chrome/Chromium
- ✅ Firefox
- ✅ Edge
- ⚠️ Safari (some issues)
2. Stable Connections¶
- Prefer wired connections
- Use stable WiFi
- Avoid mobile hotspots for intensive work
3. Regular Saves¶
- Enable auto-save
- Commit frequently
- Use version control
4. Resource Management¶
- Close unused terminals
- Limit concurrent processes
- Monitor memory usage
Next Steps¶
-
Detailed comparison
-
Open VSX vs Microsoft Store
-
How DevBox manages code-server