> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bytebot.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick Start

> Get your AI desktop agent running in 2 minutes

# Choose Your Deployment Method

Bytebot can be deployed in several ways depending on your needs:

> [tab] Railway (Easiest)
>
> ## ☁️ One-click Deploy on Railway
>
> [![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/deploy/bytebot?referralCode=L9lKXQ)
>
> **1. Visit the Template**
>
> Click the Deploy Now button in the Bytebot template on Railway.
>
> **2. Add Anthropic Key**
>
> Enter either your `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, or `GEMINI_API_KEY` for the bytebot-agent resource.
>
> **3. Deploy & Launch**
>
> Hit **Deploy**. Railway will build the stack, wire the services together via private networking and output a public URL for the UI. Your agent should be ready within a couple of minutes!
>
> > [!NOTE]
> >
> > Need more details? See the full [Railway deployment guide](https://docs.bytebot.ai/deployment/railway.md).

> [tab] Docker Compose
>
> ## 🐳 Self-host with Docker Compose
>
> ## Prerequisites
>
> * Docker ≥ 20.10
> * Docker Compose
> * 4GB+ RAM available
> * AI API key from one of these providers:
>   * Anthropic ([get one here](https://console.anthropic.com)) - Claude models
>   * OpenAI ([get one here](https://platform.openai.com/api-keys)) - GPT models
>   * Google ([get one here](https://makersuite.google.com/app/apikey)) - Gemini models
>
> ## 🚀 2-Minute Setup
>
> Get your self-hosted AI desktop agent running with just three commands:
>
> **1. Clone and Configure**
>
> ```bash theme={null}
> git clone https://github.com/bytebot-ai/bytebot.git
> cd bytebot
>
> # Configure your AI provider (choose one):
> echo "ANTHROPIC_API_KEY=your_api_key_here" > docker/.env    # For Claude
> # echo "OPENAI_API_KEY=your_api_key_here" > docker/.env     # For OpenAI
> # echo "GEMINI_API_KEY=your_api_key_here" > docker/.env     # For Gemini
> ```
>
> **2. Start the Agent Stack**
>
> ```bash theme={null}
> docker-compose -f docker/docker-compose.yml up -d 
> ```
>
> This starts all four services:
>
> * **Bytebot Desktop**: Containerized Linux environment
> * **AI Agent**: LLM-powered task processor (supports Claude, GPT, or Gemini)
> * **Chat UI**: Web interface for interaction
> * **Database**: PostgreSQL for persistence
>
> **3. Open the Chat Interface**
>
> Navigate to [http://localhost:9992](http://localhost:9992) to access the Bytebot UI.
>
> **Two ways to interact:**
>
> 1. **Tasks**: Enter task descriptions to have Bytebot work autonomously
> 2. **Desktop**: Direct access to the virtual desktop for manual control
>
> Try asking:
>
> * "Open Firefox and search for the weather forecast"
>
> * "Take a screenshot of the desktop"
>
> * "Create a text file with today's date"
>
> > [!NOTE]
> >
> > **First time?** The initial startup may take 2-3 minutes as Docker downloads
> > the images. Subsequent starts will be much faster.
>
> ## 🎯 What You Just Deployed
>
> You now have a complete AI desktop automation system with:
>
> > [!NOTE]
> >
> > **🔐 Password Manager Support**: Bytebot can handle authentication automatically when you install a password manager extension. See our [password management guide](https://docs.bytebot.ai/guides/password-management.md) for setup instructions.
>
> > [card] AI Agent
> >
> > * Understands natural language
> > * Plans and executes tasks
> > * Adapts to errors
> > * Works autonomously
>
> > [card] Virtual Desktop
> >
> > * Full Ubuntu environment
> > * Browser, office tools
> > * File system access
> > * Application support
>
> > [card] Task Interface
> >
> > * Create and manage tasks
> > * Real-time desktop view
> > * Conversation history
> > * Takeover mode
>
> > [card] REST APIs
> >
> > * Programmatic control
> > * Task management API
> > * Direct desktop access
> > * MCP protocol support
>
> ## 🚀 Your First Tasks
>
> Now let's see Bytebot in action! Try these example tasks:
>
> ### Simple Tasks (Test the Basics)
>
> > [card] Take a Screenshot
> >
> > "Take a screenshot of the desktop"
>
> > [card] Open Browser
> >
> > "Open Firefox and go to google.com"
>
> > [card] Create File
> >
> > "Create a text file called 'hello.txt' with today's date"
>
> > [card] System Info
> >
> > "Check the system information and tell me the OS version"
>
> ### Advanced Tasks (See the Power)
>
> > [card] Web Research
> >
> > "Find the top 5 AI news stories today and create a summary document"
>
> > [card] Data Extraction
> >
> > "Go to hacker news, find the top 10 stories, and save them to a CSV file"
>
> > [card] Document Processing
> >
> > "Upload a PDF contract and extract all payment terms and deadlines"
>
> > [card] Multi-Step Workflow
> >
> > "Search for 'machine learning tutorials', open the first 3 results in tabs, and take screenshots of each"
>
> ## Accessing Your Services
>
> | Service | URL | Purpose |
> | - | - | - |
> | **Tasks UI** | [http://localhost:9992](http://localhost:9992) | Main interface for interacting with the agent |
> | **Agent API** | [http://localhost:9991/tasks](http://localhost:9991/tasks) | REST API for programmatic task creation |
> | **Desktop API** | [http://localhost:9990/computer-use](http://localhost:9990/computer-use) | Low-level desktop control API |
> | **MCP SSE** | [http://localhost:9990/mcp](http://localhost:9990/mcp) | Connect MCP clients for tool access |

> [tab] Kubernetes/Helm
>
> ## ☸️ Deploy with Helm
>
> See our [Helm deployment guide](https://docs.bytebot.ai/deployment/helm.md) for Kubernetes installation.

> [tab] Desktop Only
>
> ## 🖥️ Desktop Container Only
>
> If you just want the virtual desktop without the AI agent:
>
> ```bash theme={null}
> # Using pre-built image (recommended)
> docker-compose -f docker/docker-compose.core.yml pull
> docker-compose -f docker/docker-compose.core.yml up -d
> ```
>
> Or build locally:
>
> ```bash theme={null}
> docker-compose -f docker/docker-compose.core.yml up -d --build
> ```
>
> Access the desktop at [http://localhost:9990/vnc](http://localhost:9990/vnc)

## Managing Your Agent

### View Logs

Monitor what your agent is doing:

```bash theme={null}
# All services
docker-compose -f docker/docker-compose.yml logs -f

# Just the agent
docker-compose -f docker/docker-compose.yml logs -f bytebot-agent
```

### Stop Services

```bash theme={null}
docker-compose -f docker/docker-compose.yml down
```

### Update to Latest

```bash theme={null}
docker-compose -f docker/docker-compose.yml pull
docker-compose -f docker/docker-compose.yml up -d
```

### Reset Everything

Remove all data and start fresh:

```bash theme={null}
docker-compose -f docker/docker-compose.yml down -v
```

## Quick API Examples

### Create a Task via API

```bash theme={null}
# Simple task
curl -X POST http://localhost:9991/tasks \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Search for flights from NYC to London next month",
    "priority": "MEDIUM"
  }'

# Task with file upload
curl -X POST http://localhost:9991/tasks \
  -F "description=Read this contract and summarize the key terms" \
  -F "priority=HIGH" \
  -F "files=@contract.pdf"
```

### Direct Desktop Control

```bash theme={null}
# Take a screenshot
curl -X POST http://localhost:9990/computer-use \
  -H "Content-Type: application/json" \
  -d '{"action": "screenshot"}'

# Type text
curl -X POST http://localhost:9990/computer-use \
  -H "Content-Type: application/json" \
  -d '{"action": "type_text", "text": "Hello, Bytebot!"}'
```

## Troubleshooting

> [accordion] Container won't start
>
> Check Docker is running and you have enough resources:
>
> ```bash theme={null}
> docker info
> docker-compose -f docker/docker-compose.yml logs 
> ```

> [accordion] Can't connect to tasks UI
>
> Ensure all services are running:
>
> ```bash theme={null}
> docker-compose -f docker/docker-compose.yml ps 
> ```
>
> All services should show as "Up".

> [accordion] Agent errors or no response
>
> Check your API key is set correctly:
>
> ```bash theme={null}
> cat docker/.env
> docker-compose -f docker/docker-compose.yml logs bytebot-agent 
> ```
>
> Ensure you're using a valid API key from Anthropic, OpenAI, or Google.

## 📚 Next Steps

> [card] [Using the UI](https://docs.bytebot.ai/guides/task-creation.md)
>
> Learn how to create and manage tasks effectively

> [card] [Takeover Mode](https://docs.bytebot.ai/guides/takeover-mode.md)
>
> Take control when you need to guide Bytebot

> [card] [LiteLLM Integration](https://docs.bytebot.ai/deployment/litellm.md)
>
> Use any LLM provider with Bytebot

> [card] [API Integration](https://docs.bytebot.ai/api-reference/introduction.md)
>
> Automate Bytebot with your applications

## 🔧 Configuration Options

### Environment Variables

> [accordion] AI Provider Settings
>
> ```bash theme={null}
> # Choose one AI provider:
> ANTHROPIC_API_KEY=sk-ant-...    # For Claude models
> OPENAI_API_KEY=sk-...           # For GPT models  
> GEMINI_API_KEY=...              # For Gemini models
>
> # Optional: Use specific models
> ANTHROPIC_MODEL=claude-3-5-sonnet-20241022  # Default
> OPENAI_MODEL=gpt-4o
> GEMINI_MODEL=gemini-1.5-flash
> ```

> [accordion] Port Configuration
>
> ```bash theme={null}
> # Change default ports if needed
> # Edit docker-compose.yml ports section:
> # bytebot-ui:
> #   ports:
> #     - "8080:9992"  # Change 8080 to your desired port
> ```

> [accordion] Using LiteLLM Proxy
>
> ```bash theme={null}
> # To use multiple LLM providers, use the proxy setup:
> docker-compose -f docker/docker-compose.proxy.yml up -d
>
> # This includes a pre-configured LiteLLM proxy
> ```

> [!NOTE]
>
> **Need help?** Join our [Discord
> community](https://discord.com/invite/d9ewZkWPTP) for support and to share
> what you're building!


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.