Bytebot spins up a containerized Linux desktop with a task-driven agent ready for automation. Chat with it through the web UI or control it programmatically for scraping, CI tasks and remote work.
setup_email_example.mp4
email_json_attachment_example.mp4
- 📦 Containerized Desktop – XFCE4 on Ubuntu 22.04 in a single Docker image
- 🌍 Access Anywhere – VNC & browser‑based noVNC built‑in
- 🛠️ Unified API – Script every click & keystroke with a clean REST interface
- ⚙️ Ready‑to‑Go Tools – Firefox & essentials pre‑installed
- 🤖 Task-Driven Agent – Manage tasks via REST or Chat UI and watch them run
Bytebot's agent stack is orchestrated with docker-compose
. It starts:
bytebot-desktop
– the Linux desktop and automation daemonbytebot-agent
– NestJS service processing tasks with Anthropic's Claudebytebot-ui
– Next.js chat interfacepostgres
– stores tasks and conversation history
Open http://localhost:9992
to give the agent a task and watch it work.
Dive deeper at docs.bytebot.ai.
- Docker ≥ 20.10
echo "ANTHROPIC_API_KEY=your_api_key_here" > infrastructure/docker/.env
docker-compose -f infrastructure/docker/docker-compose.yml \
--env-file infrastructure/docker/.env up -d # start desktop, agent & UI
Once running, open http://localhost:9992
to chat with the agent.
Stop:
docker-compose -f infrastructure/docker/docker-compose.yml \
--env-file infrastructure/docker/.env down
docker-compose -f infrastructure/docker/docker-compose.core.yml pull # pull latest remote image
docker-compose -f infrastructure/docker/docker-compose.core.yml up -d --no-build # start container
Build locally instead:
docker-compose -f infrastructure/docker/docker-compose.core.yml up -d --build # build image and start container
Stop:
docker-compose -f infrastructure/docker/docker-compose.core.yml down
More details in the Quickstart Guide.
Interface | URL / Port | Notes |
---|---|---|
💬 Chat UI | http://localhost:9992 |
Agent UI |
🤖 Agent API | http://localhost:9991 |
REST API |
🌐 noVNC | http://localhost:9990/vnc |
open in any browser |
🖥️ VNC Client | localhost:5900 |
password‑less by default |
Control Bytebot with a single endpoint. Read the REST reference. Supported actions:
🎮 Action | Description |
---|---|
move_mouse |
Move cursor to coordinates |
trace_mouse |
Draw a path |
click_mouse |
Click (left/right/middle) |
press_mouse |
Press / release button |
drag_mouse |
Drag along path |
scroll |
Scroll direction & amount |
type_keys |
Type sequence of keys |
press_keys |
Press / release keys |
type_text |
Type a string |
wait |
Wait milliseconds |
screenshot |
Capture screen |
cursor_position |
Return cursor position |
(See docs for parameter details.)
- 🍴 Fork & branch from
main
- 💡 Commit small, focused changes
- 📩 Open a PR with details
- 🔍 Address review feedback
- 🎉 Merge & celebrate!
Questions or ideas? Join us on Discord.
Powered by nutjs and inspired by Anthropic's computer‑use demo.
MIT © 2025 Tantl Labs, Inc.