Core Concepts
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
- SystemD: Modern service management
Pre-installed Software
Web Browsers
- Firefox ESR (Extended Support Release)
- Chrome/Chromium available
- Pre-configured for automation
- Ad blocker extensions
Office Tools
- Text editors (nano, vim, gedit)
- LibreOffice suite (optional)
- PDF viewers
- File managers
Communication
- Thunderbird email client
- Chat applications
- Video conferencing tools
- 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
-
VNC Server
- TigerVNC for remote access
- Configurable resolution
- Multiple connection support
-
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:
bytebot
- Home Directory:
/home/bytebot
- 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
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
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