openapiv1/bytebot
0
1---2title: bytebot3sdk: docker4emoji: 💻5colorFrom: indigo6colorTo: indigo7short_description: bytebot8---9<div align="center">10 11<img src="docs/images/bytebot-logo.png" width="500" alt="Bytebot Logo">12 13# Bytebot: Open-Source AI Desktop Agent14 15<a href="https://trendshift.io/repositories/14624" target="_blank"><img src="https://trendshift.io/api/badge/repositories/14624" alt="bytebot-ai%2Fbytebot | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>16 17**An AI that has its own computer to complete tasks for you**18 19[](https://railway.com/deploy/bytebot?referralCode=L9lKXQ)20 21[](https://github.com/bytebot-ai/bytebot/tree/main/docker)22[](LICENSE)23[](https://discord.com/invite/d9ewZkWPTP)24 25[🌐 Website](https://bytebot.ai) • [📚 Documentation](https://docs.bytebot.ai) • [💬 Discord](https://discord.com/invite/d9ewZkWPTP) • [𝕏 Twitter](https://x.com/bytebot_ai)26 27<!-- Keep these links. Translations will automatically update with the README. -->28[Deutsch](https://zdoc.app/de/bytebot-ai/bytebot) | 29[Español](https://zdoc.app/es/bytebot-ai/bytebot) | 30[français](https://zdoc.app/fr/bytebot-ai/bytebot) | 31[日本語](https://zdoc.app/ja/bytebot-ai/bytebot) | 32[한국어](https://zdoc.app/ko/bytebot-ai/bytebot) | 33[Português](https://zdoc.app/pt/bytebot-ai/bytebot) | 34[Русский](https://zdoc.app/ru/bytebot-ai/bytebot) | 35[中文](https://zdoc.app/zh/bytebot-ai/bytebot)36</div>37 38---39 40https://github.com/user-attachments/assets/f271282a-27a3-43f3-9b99-b34007fdd16941 42https://github.com/user-attachments/assets/72a43cf2-bd87-44c5-a582-e7cbe176f37f43 44## What is a Desktop Agent?45 46A desktop agent is an AI that has its own computer. Unlike browser-only agents or traditional RPA tools, Bytebot comes with a full virtual desktop where it can:47 48- Use any application (browsers, email clients, office tools, IDEs)49- Download and organize files with its own file system50- Log into websites and applications using password managers51- Read and process documents, PDFs, and spreadsheets52- Complete complex multi-step workflows across different programs53 54Think of it as a virtual employee with their own computer who can see the screen, move the mouse, type on the keyboard, and complete tasks just like a human would.55 56## Why Give AI Its Own Computer?57 58When AI has access to a complete desktop environment, it unlocks capabilities that aren't possible with browser-only agents or API integrations:59 60### Complete Task Autonomy61 62Give Bytebot a task like "Download all invoices from our vendor portals and organize them into a folder" and it will:63 64- Open the browser65- Navigate to each portal66- Handle authentication (including 2FA via password managers)67- Download the files to its local file system68- Organize them into a folder69 70### Process Documents71 72Upload files directly to Bytebot's desktop and it can:73 74- Read entire PDFs into its context75- Extract data from complex documents76- Cross-reference information across multiple files77- Create new documents based on analysis78- Handle formats that APIs can't access79 80### Use Real Applications81 82Bytebot isn't limited to web interfaces. It can:83 84- Use desktop applications like text editors, VS Code, or email clients85- Run scripts and command-line tools86- Install new software as needed87- Configure applications for specific workflows88 89## Quick Start90 91### Deploy in 2 Minutes92 93**Option 1: Railway (Easiest)**94[](https://railway.com/deploy/bytebot?referralCode=L9lKXQ)95 96Just click and add your AI provider API key.97 98**Option 2: Docker Compose**99 100```bash101git clone https://github.com/bytebot-ai/bytebot.git102cd bytebot103 104# Add your AI provider key (choose one)105echo "ANTHROPIC_API_KEY=sk-ant-..." > docker/.env106# Or: echo "OPENAI_API_KEY=sk-..." > docker/.env107# Or: echo "GEMINI_API_KEY=..." > docker/.env108 109docker-compose -f docker/docker-compose.yml up -d110 111# Open http://localhost:9992112```113 114[Full deployment guide →](https://docs.bytebot.ai/quickstart)115 116## How It Works117 118Bytebot consists of four integrated components:119 1201. **Virtual Desktop**: A complete Ubuntu Linux environment with pre-installed applications1212. **AI Agent**: Understands your tasks and controls the desktop to complete them1223. **Task Interface**: Web UI where you create tasks and watch Bytebot work1234. **APIs**: REST endpoints for programmatic task creation and desktop control124 125### Key Features126 127- **Natural Language Tasks**: Just describe what you need done128- **File Uploads**: Drop files onto tasks for Bytebot to process129- **Live Desktop View**: Watch Bytebot work in real-time130- **Takeover Mode**: Take control when you need to help or configure something131- **Password Manager Support**: Install 1Password, Bitwarden, etc. for automatic authentication132- **Persistent Environment**: Install programs and they stay available for future tasks133 134## Example Tasks135 136### Basic Examples137 138```139"Go to Wikipedia and create a summary of quantum computing"140"Research flights from NYC to London and create a comparison document"141"Take screenshots of the top 5 news websites"142```143 144### Document Processing145 146```147"Read the uploaded contracts.pdf and extract all payment terms and deadlines"148"Process these 5 invoice PDFs and create a summary report"149"Download and analyze the latest financial report and answer: What were the key risks mentioned?"150```151 152### Multi-Application Workflows153 154```155"Download last month's bank statements from our three banks and consolidate them"156"Check all our vendor portals for new invoices and create a summary report"157"Log into our CRM, export the customer list, and update records in the ERP system"158```159 160## Programmatic Control161 162### Create Tasks via API163 164```python165import requests166 167# Simple task168response = requests.post('http://localhost:9991/tasks', json={169 'description': 'Download the latest sales report and create a summary'170})171 172# Task with file upload173files = {'files': open('contracts.pdf', 'rb')}174response = requests.post('http://localhost:9991/tasks',175 data={'description': 'Review these contracts for important dates'},176 files=files177)178```179 180### Direct Desktop Control181 182```bash183# Take a screenshot184curl -X POST http://localhost:9990/computer-use \185 -H "Content-Type: application/json" \186 -d '{"action": "screenshot"}'187 188# Click at specific coordinates189curl -X POST http://localhost:9990/computer-use \190 -H "Content-Type: application/json" \191 -d '{"action": "click_mouse", "coordinate": [500, 300]}'192```193 194[Full API documentation →](https://docs.bytebot.ai/api-reference/introduction)195 196## Setting Up Your Desktop Agent197 198### 1. Deploy Bytebot199 200Use one of the deployment methods above to get Bytebot running.201 202### 2. Configure the Desktop203 204Use the Desktop tab in the UI to:205 206- Install additional programs you need207- Set up password managers for authentication208- Configure applications with your preferences209- Log into websites you want Bytebot to access210 211### 3. Start Giving Tasks212 213Create tasks in natural language and watch Bytebot complete them using the configured desktop.214 215## Use Cases216 217### Business Process Automation218 219- Invoice processing and data extraction220- Multi-system data synchronization221- Report generation from multiple sources222- Compliance checking across platforms223 224### Development & Testing225 226- Automated UI testing227- Cross-browser compatibility checks228- Documentation generation with screenshots229- Code deployment verification230 231### Research & Analysis232 233- Competitive analysis across websites234- Data gathering from multiple sources235- Document analysis and summarization236- Market research compilation237 238## Architecture239 240Bytebot is built with:241 242- **Desktop**: Ubuntu 22.04 with XFCE, Firefox, VS Code, and other tools243- **Agent**: NestJS service that coordinates AI and desktop actions244- **UI**: Next.js application for task management245- **AI Support**: Works with Anthropic Claude, OpenAI GPT, Google Gemini246- **Deployment**: Docker containers for easy self-hosting247 248## Why Self-Host?249 250- **Data Privacy**: Everything runs on your infrastructure251- **Full Control**: Customize the desktop environment as needed252- **No Limits**: Use your own AI API keys without platform restrictions253- **Flexibility**: Install any software, access any systems254 255## Advanced Features256 257### Multiple AI Providers258 259Use any AI provider through our [LiteLLM integration](https://docs.bytebot.ai/deployment/litellm):260 261- Azure OpenAI262- AWS Bedrock263- Local models via Ollama264- 100+ other providers265 266### Enterprise Deployment267 268Deploy on Kubernetes with Helm:269 270```bash271# Clone the repository272git clone https://github.com/bytebot-ai/bytebot.git273cd bytebot274 275# Install with Helm276helm install bytebot ./helm \277 --set agent.env.ANTHROPIC_API_KEY=sk-ant-...278```279 280[Enterprise deployment guide →](https://docs.bytebot.ai/deployment/helm)281 282## Community & Support283 284- **Discord**: [Join our community](https://discord.com/invite/d9ewZkWPTP) for help and discussions285- **Documentation**: Comprehensive guides at [docs.bytebot.ai](https://docs.bytebot.ai)286- **GitHub Issues**: Report bugs and request features287 288## Contributing289 290We welcome contributions! Whether it's:291 292- 🐛 Bug fixes293- ✨ New features294- 📚 Documentation improvements295- 🌐 Translations296 297Please:298 2991. Check existing [issues](https://github.com/bytebot-ai/bytebot/issues) first3002. Open an issue to discuss major changes3013. Submit PRs with clear descriptions3024. Join our [Discord](https://discord.com/invite/d9ewZkWPTP) to discuss ideas303 304## License305 306Bytebot is open source under the Apache 2.0 license.307 308---309 310<div align="center">311 312**Give your AI its own computer. See what it can do.**313 314[](https://railway.com/deploy/bytebot?referralCode=L9lKXQ)315 316<sub>Built by [Tantl Labs](https://tantl.com) and the open source community</sub>317 318</div>