Desktop Environment
The containerized Linux desktop that serves as your AI agent’s workspace
Overview
The Bytebot Desktop Environment is a fully functional Linux desktop running inside a Docker container. It’s the workspace where your AI agent performs tasks - clicking, typing, browsing, and working with applications just like a human would at a physical computer.
Why a Containerized Desktop?
Complete Isolation
- No Risk to Host: All actions happen inside the container
- Sandboxed Environment: Desktop can’t access your host system
- Easy Reset: Destroy and recreate in seconds
- Multiple Instances: Run several agents simultaneously
Consistency Everywhere
- Platform Independent: Same environment on Mac, Windows, or Linux
- Reproducible: Identical setup every time
- Version Control: Pin specific versions for stability
- No Dependencies: Everything included in the container
Built for Automation
- Predictable UI: Consistent element positioning
- Clean Environment: No popups or distractions
- Automation-Ready: Optimized for programmatic control
- Fast Startup: Desktop ready in seconds
Technical Stack
Base System
- Ubuntu 22.04 LTS: Stable, well-supported Linux distribution
- XFCE4 Desktop: Lightweight, responsive desktop environment
- X11 Display Server: Standard Linux graphics system
- supervisord: Service management
Pre-installed Software
Web Browsers
- Firefox ESR (Extended Support Release)
- Pre-configured for automation
- Ad blocker extensions
Office Tools
- Text editors (nano, vim, gedit)
- PDF viewer
- File managers
Communication
- Thunderbird email client
- Chat applications
- Terminal emulators
Development
- Git version control
- Python 3 environment
- Node.js runtime
- Common dev tools
Core Services
-
bytebotd Daemon
- Runs on port 9990
- Handles all automation requests
- Built on nutjs framework
- Provides REST API
-
noVNC Web Client
- Browser-based desktop access
- No client installation needed
- WebSocket proxy included
-
Supervisor
- Process management
- Service monitoring
- Automatic restarts
- Log management
Desktop Features
Display Configuration
User Environment
- Username:
user
- Home Directory:
/home/user
- Sudo Access: Yes (passwordless)
- Desktop Session: Auto-login enabled
File System
Accessing the Desktop
Web Browser (Recommended)
Navigate to http://localhost:9990/vnc
for instant access:
- No software installation required
- Works on any device with a browser
- Supports touch devices
- Clipboard sharing
MCP Control
The core container also exposes an MCP endpoint.
Connect your MCP client to http://localhost:9990/mcp
to invoke these tools over SSE.
Direct API Control
Most efficient for automation:
Customization
Adding Software
Create a custom Dockerfile:
Environment Variables
Configure behavior via environment:
Performance Optimization
Resource Allocation
Security Hardening
Default configuration prioritizes ease of use. For production, apply these security measures:
Essential Security Steps
-
Change Default Passwords
-
Restrict Network Access
-
Remove Sudo Access
-
Enable Authentication
Troubleshooting
Desktop won't start
Desktop won't start
Check logs:
Common issues:
- Insufficient memory
- Port conflicts
- Display server errors
Applications crash
Applications crash
Monitor resources:
Solutions:
- Increase memory allocation
- Check disk space
- Update container image
Best Practices
- Regular Updates: Keep the base image updated for security patches
- Persistent Storage: Mount volumes for important data
- Backup Configurations: Save customizations outside the container
- Monitor Resources: Track CPU/memory usage
- Clean Temporary Files: Periodic cleanup for performance