Agent Zero runs as a Docker container, and you now have two friendly ways to get there:
- A0 Launcher is the desktop app. It can download Agent Zero, create and manage Instances, and help set up the local container runtime when needed.
- A0 Install is the terminal installer. It is best for SSH sessions, servers, scripted setup, recovery shells, or users who prefer commands.
If Docker is already installed and running, you can also start the container directly.
Use A0 Launcher when you want the guided desktop path. Download the app for your platform, open it, and let it check Docker or set up a runtime before it downloads Agent Zero.
| Architecture | macOS | Linux | Windows |
|---|---|---|---|
| x86 | Mac Intel | Linux x86 | Windows x86 |
| ARM64 | Mac Apple Silicon | Linux ARM64 | Windows ARM64 |
See the A0 Launcher v0.9 release for release notes and updater metadata. See the Launcher guide for the first-run walkthrough.
Use A0 Install when you want the command-line path. The installer creates a
Dockerized Agent Zero instance, mounts user data to /a0/usr, and tries to
reuse an existing Docker-compatible runtime before setting one up.
curl -fsSL https://bash.agent-zero.ai | bashirm https://ps.agent-zero.ai | iexFor servers and automation, Quick Start mode creates one instance and exits without opening menus:
curl -fsSL https://bash.agent-zero.ai | bash -s -- --quick-start --name agent-zero --port 5080& ([scriptblock]::Create((irm https://ps.agent-zero.ai))) -QuickStart -Name agent-zero -Port 5080Use --skip-runtime-setup / -SkipRuntimeSetup when Docker must already be
working and the installer should not try to set up a runtime. See the
A0 Install repository for all
installer flags.
docker run -p 80:80 -v a0_usr:/a0/usr agent0ai/agent-zeroOnce the install completes, open the URL shown in your terminal or Launcher to access the Web UI. Complete onboarding, add your model provider or API key, then continue to Step 3: Configure Agent Zero.
Tip
Need Agent Zero to reach host-machine files, shell, or a host browser? Install the optional A0 CLI Connector, then run a0 to connect your terminal to this Agent Zero instance.
Use the built-in updater in the Web UI:
- Open Settings UI -> Update tab
- Open Self Update
- Wait for the update checker to see if you have the latest version or if there's an available update.
You'll also be prompted through the UI when a new A0 version is released. Backups are automatically managed internally during this process.
For technical details of the updater, see Self Update.
Agent Zero v2.0 starts a new major release line. If your instance is on v1.20, the in-app Self Update can show the newer v2.x line, but it will not apply that jump inside the existing v1 Docker image. The safe path is:
- Create a backup zip from the old v1.20 instance.
- Pull the new
agent0ai/agent-zero:latestDocker image. For the v2.0 release,latestis the v2.0 image. - Start a new container from that image.
- Restore the backup zip into the new v2.0 instance.
Use this path if you manage Agent Zero directly from Docker Desktop or Docker CLI.
- Open your old v1.20 Web UI and create a backup from Settings -> Check for Updates -> Backup & Restore -> Create Backup. Keep the downloaded
.zipfile. - Pull the v2.0 image. In Docker Desktop, search for
agent0ai/agent-zero:latestand pull that image. In Docker CLI, run:docker pull agent0ai/agent-zero:latest
- Start a new v2.0 container on a different host port so the old instance stays available:
docker run -d -p 50081:80 --name agent-zero-v2 -v a0_v2_usr:/a0/usr agent0ai/agent-zero:latest
- Open the new v2.0 instance, complete any first-run prompts, then restore the downloaded
.zipfrom Settings -> Check for Updates -> Backup & Restore -> Restore Backup. - Verify chats, projects, memory, settings, and custom plugins before removing the old v1.20 container.
Launcher gives you the same backup/restore idea from the Instances page.
- Open Instances, choose the old v1.20 Instance, and use Backup
/a0/usr. - Open Installs, use the latest card, then Install or Run the image. For the v2.0 release, latest is the v2.0 image.
- Return to Instances, choose the new v2.0 Instance, and use Restore
/a0/usrwith the backup zip. - Open the new Instance and verify it before deleting or stopping the old v1.20 container.
Launcher keeps old and new Instances visible separately, which makes it easier to compare them before cleanup.
Caution
Do not try to solve the v1.20 -> v2.0 jump by bind-mounting the whole old
/a0 directory into a new container. Keep user data under /a0/usr, use the
backup/restore flow, and let the new image provide the v2.0 system files.
If you are upgrading from Agent Zero v0.9.8 or earlier to v1.1 or newer, use the migration path below. Older installs were laid out differently, so the in-app Self Update is not the right tool for that jump.
- Backup your existing
usr/directory (which contains your settings, projects, memory, and custom plugins). - Run the new install script to set up the current Docker-based install:
- macOS / Linux:
curl -fsSL https://bash.agent-zero.ai | bash - Windows (PowerShell):
irm https://ps.agent-zero.ai | iex
- macOS / Linux:
- Migrate your data: After the new installation completes, copy the contents of your backed-up
usr/directory into the new/a0/usr/directory created by the script. - Restart the container for the changes to take effect.
Use this only if Self Update is unavailable or you must manage containers yourself (for example, some custom Docker setups).
- Keep the current container running
docker pull agent0ai/agent-zero:latest- Start a new container on a different host port, for example:
docker run -d -p 50081:80 --name agent-zero-new agent0ai/agent-zero:latest - On the old instance: Settings -> Check for Updates -> Backup & Restore -> Create Backup
- On the new instance: restore the downloaded backup zip
- Verify chats and data, then remove the old container
Caution
Do not delete the old container until the new one has your data.
Tip
If the new instance fails to load settings, remove /a0/usr/settings.json and restart to regenerate default settings.
Users should use Quick Start (Recommended) above. The steps below are for custom Docker setups, air-gapped installs, or when you cannot use the install scripts.
Follow the steps below to install Docker and run the image by hand.
Docker Desktop provides the runtime environment for Agent Zero, ensuring consistent behavior and security across platforms. The entire framework runs within a Docker container, providing isolation and easy deployment.
Choose your operating system:
![]() Windows |
![]() macOS |
![]() Linux |
1.1. Download Docker Desktop
Go to the Docker Desktop download page and download the Windows version (Intel/AMD is the main download button).
1.2. Run the Installer
Run the installer with default settings.
1.3. Launch Docker Desktop
Once installed, launch Docker Desktop from your Start menu or desktop shortcut.
Docker is now installed.
Continue to Step 2: Run Agent Zero
1.1. Download Docker Desktop
Go to the Docker Desktop download page and download the macOS version (choose Apple Silicon or Intel based on your Mac).
1.2. Install Docker Desktop
Drag and drop the Docker application to your Applications folder.
1.3. Launch Docker Desktop
Open Docker Desktop from your Applications folder.
1.4. Configure Docker Socket
Note
Important macOS Configuration: In Docker Desktop's preferences (Docker menu) -> Settings -> Advanced, enable "Allow the default Docker socket to be used (requires password)."
Docker is now installed.
Continue to Step 2: Run Agent Zero
1.1. Choose Installation Method
You can install either Docker Desktop or docker-ce (Community Edition).
Option A: Docker Desktop (Recommended for beginners)
Follow the instructions for your specific Linux distribution here.
Option B: docker-ce (Lightweight alternative)
Follow the installation instructions here.
1.2. Post-Installation Steps (docker-ce only)
If you installed docker-ce, add your user to the docker group:
sudo usermod -aG docker $USERLog out and back in, then authenticate:
docker login1.3. Launch Docker
If you installed Docker Desktop, launch it from your applications menu.
Docker is now installed.
Tip
Deploying on a VPS/Server? For production deployments with reverse proxy, SSL, and domain configuration, see the VPS Deployment Guide.
Using Docker Desktop GUI:
- Search for
agent0ai/agent-zeroin Docker Desktop - Click the
Pullbutton - The image will be downloaded to your machine in a few minutes
Using Terminal:
docker pull agent0ai/agent-zeroChoose or create a folder on your computer where Agent Zero will save its data.
Setting up persistence is needed only if you want your data and files to remain available even after you delete the container.
You can pick any location you find convenient:
- Windows:
C:\agent-zero-data - macOS/Linux:
/home/user/agent-zero-data
You can map just the /a0/usr directory (recommended) or individual subfolders of /a0 to a local directory.
Caution
Do not map the entire /a0 directory: it contains the application code and can break upgrades.
Tip
Choose a location that's easy to access and backup. All your Agent Zero data will be directly accessible in this directory.
Using Docker Desktop GUI:
- In Docker Desktop, go to the "Images" tab
- Click the
Runbutton next to theagent0ai/agent-zeroimage - Open the "Optional settings" menu
- Ensure at least one host port is mapped to container port
80(set host port to0for automatic assignment) - Click the
Runbutton
The container will start and show in the "Containers" tab:
The framework will take a few seconds to initialize. Find the mapped port in Docker Desktop (shown as <PORT>:80) or click the port right under the container ID:
Open http://localhost:<PORT> in your browser. The Web UI will open - Agent Zero is ready for configuration!
Tip
You can also access the Web UI by clicking the port link directly under the container ID in Docker Desktop.
Note
After starting the container, you'll find all Agent Zero files in your chosen directory. You can access and edit these files directly on your machine, and the changes will be immediately reflected in the running container.
Running A0 using Terminal?
docker run -p 0:80 -v /path/to/your/work_dir:/a0/usr agent0ai/agent-zero- Replace
0with a fixed port if you prefer (e.g.,50080:80)
The UI opens on the welcome screen. If model setup is missing, send a message or use the setup shortcuts to choose Cloud, AI account, or Local access, then select your main and utility models. For the screenshot walkthrough, see the First-Run Onboarding guide.
Agent Zero provides a comprehensive settings interface to customize various aspects of its functionality. Access the settings by clicking the "Settings" button with a gear icon in the sidebar.
- Agent Profile: Select the default profile for new chats, such as
agent0,hacker, orresearcher. - Memory Subdirectory: Select the subdirectory for agent memory storage, allowing separation between different instances.
- Knowledge Subdirectory: Specify the location of custom knowledge files to enhance the agent's understanding.
See the Agent Profiles guide for the chat menu, profile switching, and guided profile creation.
Note
Since v0.9.7, custom prompts belong inside a specific agent profile rather
than a shared /prompts folder. Most users should create profiles from the
chat profile menu.
Note
The Hacker profile is included in the main image. After launch, choose the hacker agent profile in Settings to make it the default for new chats, or switch the selected chat from the composer profile selector. The "hacker" branch is deprecated.
- Provider: Select the chat model provider (e.g., Anthropic)
- Model Name: Choose the specific model (e.g., claude-sonnet-4-5)
- Context Length: Set the maximum token limit for context window
- Context Window Space: Configure how much of the context window is dedicated to chat history
Model naming is provider-specific.
Use claude-sonnet-4-5 for Anthropic, but use anthropic/claude-sonnet-4-5 for OpenRouter. If you see "Invalid model ID," verify the provider and naming format on the provider website, or search the web for " model naming".
Tip
Context window tuning: Set the total context window size first (for example, 100k), then adjust the chat history portion as a fraction of that total. A large fraction on a very large context window can still be enormous.
Tip
API URL: URL of the API endpoint for the chat model - only needed for some providers like Ollama, LM Studio, Azure, etc.
- Provider & Model: Select a model for utility tasks like memory organization and summarization
- Temperature: Adjust the determinism of utility responses
Note
Utility models need to be strong enough to extract and consolidate memory reliably. Very small models (e.g., 4B) often fail at this; 70B-class models or high-quality cloud "flash/mini" models work best.
- Provider: Choose the embedding model provider (e.g., OpenAI)
- Model Name: Select the specific embedding model (e.g., text-embedding-3-small)
Note
Agent Zero uses a local embedding model by default (runs on CPU), but you can switch to OpenAI embeddings like text-embedding-3-small or text-embedding-3-large if preferred.
- Agent Zero ships Whisper STT as the built-in
_whisper_sttplugin and Kokoro TTS as the built-in_kokoro_ttsplugin. - Docker/bootstrap remains responsible for installing the required speech dependencies such as
ffmpeg, Kokoro, Whisper, andsoundfile. - Both plugins can be enabled or disabled independently from the Agent Plugins section in the Web UI.
- Whisper model size, language, message handling, and silence behavior are configured from the plugin settings screen.
- If
_kokoro_ttsis disabled, spoken output falls back to the browser's native speech synthesis instead of the container runtime.
Configure API keys for various service providers directly within the Web UI. Click Save to confirm your settings.
Note
OpenAI API vs Plus subscription: A ChatGPT Plus subscription does not include API credits. You must provide a separate API key for OpenAI usage in Agent Zero.
Tip
For OpenAI-compatible providers (e.g., custom gateways or Z.AI/GLM), add the API key under External Services -> Other OpenAI-compatible API keys, then select OpenAI Compatible as the provider in model settings.
Caution
GitHub Copilot Provider: When using the GitHub Copilot provider, after selecting the model and entering your first prompt, the OAuth login procedure will begin. You'll find the authentication code and link in the output logs. Complete the authentication process by following the provided link and entering the code, then you may continue using Agent Zero.
- UI Login: Set username for web interface access
- UI Password: Configure password for web interface security
- Root Password: Manage Docker container root password for SSH access
- RFC Parameters (local instances only): Configure URLs and ports for remote function calls between instances
- RFC Password: Configure password for remote function calls
Learn more about Remote Function Calls in the Development Setup guide.
Important
Always keep your API keys and passwords secure.
Note
On Windows host installs (non-Docker), you must use RFC to run shell code on the host system. The Docker runtime handles this automatically.
The Settings page is the control center for selecting the Large Language Models (LLMs) that power Agent Zero. You can choose different LLMs for different roles:
| LLM Role | Description |
|---|---|
chat_llm |
This is the primary LLM used for conversations, agent reasoning, and tool use. Vision support controls image understanding. |
utility_llm |
This LLM handles internal tasks like summarizing messages, managing memory, and processing internal prompts. Using a smaller, less expensive model here can improve efficiency. |
embedding_llm |
The embedding model shipped with A0 runs on CPU and is responsible for generating embeddings used for memory retrieval and knowledge base lookups. Changing the embedding_llm will re-index all of A0's memory. |
How to Change:
- Open Settings page in the Web UI.
- Choose the provider for the LLM for each role (Main Model, Utility Model, Embedding Model) and write the model name.
- Click "Save" to apply the changes.
Note
The built-in Browser does not have a separate default model slot. The main agent decides when to call the direct browser tool. Browser settings can optionally choose a Browser LLM preset for Browser-owned helper operations.
Use the naming format required by your selected provider:
| Provider | Model Name Format | Example |
|---|---|---|
| OpenAI | Model name only | claude-sonnet-4-5 |
| OpenRouter | Provider prefix mostly required | anthropic/claude-sonnet-4-5 |
| Ollama | Model name only | gpt-oss:20b |
| oMLX | API-visible model name from /v1/models |
Qwen3-0.6B-4bit |
| llama.cpp | API-visible model name from /v1/models or --alias |
local-gguf |
| vLLM | Hugging Face model ID or served model alias | Qwen/Qwen2.5-1.5B-Instruct |
Tip
If you see "Invalid model ID," verify the provider and naming format on the provider website, or search the web for " model naming".
When Agent Zero runs in Docker, localhost and 127.0.0.1 inside an API base URL mean the Agent Zero container, not your host machine. For a model server running on the host, use http://host.docker.internal:<port> when available, or the Docker host gateway address such as http://172.17.0.1:<port> on the default Linux bridge.
If the model server only listens on host loopback, for example 127.0.0.1:<port>, the container still cannot reach it through the gateway. Configure the local server to listen on a Docker-reachable address such as 0.0.0.0, and keep that port limited to trusted clients.
- Set the total context window (e.g., 100k) first.
- Then tune the chat history portion as a fraction of that total.
- Extremely large totals can make even small fractions very large; adjust thoughtfully.
- Utility models handle summarization and memory extraction.
- Very small models (about 4B) usually fail at reliable context extraction.
- Aim for ~70B class models or strong cloud "flash/mini" models for better results.
- Reasoning can increase cost and latency. Some models perform better without reasoning.
- If a model supports it, disable reasoning via provider-specific parameters (e.g., Venice
disable_thinking=true).
oMLX is a local inference server for Apple Silicon Macs. It serves MLX models through an OpenAI-compatible API and supports chat, embeddings, and model listing endpoints.
Note
oMLX requires Apple Silicon and macOS 15+. On 16 GB machines, start with small quantized MLX models.
Using Homebrew:
brew tap jundot/omlx https://github.com/jundot/omlx
brew install omlx
omlx startUsing the macOS App:
Download the oMLX app from the official website and follow the welcome flow to choose a model directory, start the server, and download or discover models.
By default, oMLX serves its OpenAI-compatible API at http://localhost:8000/v1.
To run a foreground server with oMLX's paged SSD cache enabled:
omlx serve --model-dir ~/.omlx/models --paged-ssd-cache-dir ~/.omlx/cache- Start oMLX and make sure at least one model is available in the oMLX dashboard or model directory.
- In Agent Zero Settings, choose oMLX as the Chat model, Utility model, or Embedding model provider.
- Use the model name shown by oMLX's model list or dashboard.
- Agent Zero includes Docker-friendly defaults for oMLX on the host at
http://host.docker.internal:8000/v1. Override the API base URL only if your oMLX server runs somewhere else. - Click
Saveto confirm your settings.
Note
If Agent Zero runs in Docker and oMLX runs on the Mac host, ensure port 8000 is reachable from the container. The shipped Docker Compose file maps host.docker.internal to the host gateway for Linux Docker. Docker Desktop for macOS provides this hostname automatically.
llama.cpp provides llama-server, a lightweight OpenAI-compatible HTTP server for GGUF models. Agent Zero talks to it through the same /v1 API used by OpenAI-compatible clients.
Using Homebrew:
brew install llama.cppStart a server with a downloaded GGUF model:
llama-server -m ~/models/model.gguf --port 8080 --alias local-ggufBy default, Agent Zero expects llama.cpp at http://host.docker.internal:8080/v1. The model name can be the model path returned by /v1/models, but using --alias gives you a short stable name such as local-gguf.
- Start
llama-serverand confirmhttp://localhost:8080/v1/modelsreturns your model. - In Agent Zero Settings, choose llama.cpp as the Chat model, Utility model, or Embedding model provider.
- Use the model ID shown by
/v1/models, or the alias you passed with--alias. - Override the API base URL only if you started
llama-serveron another host or port. - Click
Saveto confirm your settings.
Note
If Agent Zero runs in Docker and cannot reach a host-side llama-server, start the server on an address Docker can reach, for example --host 0.0.0.0, and keep the port firewalled to trusted clients.
vLLM is a high-throughput local inference server with an OpenAI-compatible API. It is most common on Linux GPU hosts, and can also run on Apple Silicon through the vLLM Apple Silicon path or vLLM-Metal.
For Apple Silicon Macs, install and activate vLLM-Metal:
curl -fsSL https://raw.githubusercontent.com/vllm-project/vllm-metal/main/install.sh | bash
source ~/.venv-vllm-metal/bin/activateStart a basic OpenAI-compatible server:
vllm serve Qwen/Qwen2.5-1.5B-Instruct --host 0.0.0.0 --port 8000By default, Agent Zero expects vLLM at http://host.docker.internal:8000/v1, matching vLLM's default HTTP port. If another local provider already uses port 8000, start vLLM on another port and update Agent Zero's API base, for example http://host.docker.internal:8001/v1.
- Start vLLM and confirm
http://localhost:8000/v1/modelsreturns the served model. - In Agent Zero Settings, choose vLLM as the Chat model, Utility model, or Embedding model provider.
- Use the model ID returned by vLLM's model list endpoint.
- If you started vLLM with
--api-key, enter the same key in the advanced provider settings or environment. - Click
Saveto confirm your settings.
Note
vLLM serves one model at a time by default. Use a generation model for Chat and Utility slots, and a separate embedding-capable vLLM server if you want vLLM embeddings.
Ollama is a powerful tool that allows you to run various large language models locally.
Download and install Ollama from the official website:
Once installed, continue to Pulling Models.
Using Homebrew:
brew install ollamaUsing Installer:
Download from the official website.
Once installed, continue to Pulling Models.
Run the installation script:
curl -fsSL https://ollama.com/install.sh | shOnce installed, continue to Pulling Models.
Finding Model Names:
Visit the Ollama model library for a list of available models and their corresponding names. Ollama models are referenced by model name only (for example, llama3.2).
Pull a model:
ollama pull <model-name>Replace <model-name> with the name of the model you want to use. For example: ollama pull mistral-large
- Once you've downloaded your model(s), select it in the Settings page of the GUI.
- Within the Chat model, Utility model, or Embedding model section, choose Ollama as provider.
- Write your model code as expected by Ollama, in the format
llama3.2orqwen2.5:7b - Agent Zero includes Docker-friendly defaults for Ollama on the host at
http://host.docker.internal:11434. Override the API base URL only if your Ollama server runs somewhere else. - Click
Saveto confirm your settings.
Note
If Agent Zero runs in Docker and Ollama runs on the host, ensure port 11434 is reachable from the container. The shipped Docker Compose file maps host.docker.internal to the host gateway for Linux Docker. If both services are in the same Docker network, you can use http://<container_name>:11434 instead of host.docker.internal.
Listing downloaded models:
ollama listRemoving a model:
ollama rm <model-name>Tip
Experiment with different model combinations to find the balance of performance and cost that best suits your needs. E.g., faster and lower latency LLMs will help, and you can also use faiss_gpu instead of faiss_cpu for the memory.
Agent Zero can be accessed from mobile devices and other computers using the built-in Tunnel feature.
The Tunnel feature allows secure access to your Agent Zero instance from anywhere:
- Open Settings in the Web UI
- Navigate to the External Services tab
- Click on Flare Tunnel in the navigation menu
- Click Create Tunnel to generate a secure HTTPS URL
- Share this URL to access Agent Zero from any device
Important
Security: Always set a username and password in Settings -> Authentication before creating a tunnel to secure your instance on the internet.
For complete details on tunnel configuration and security considerations, see the Remote Access via Tunneling section in the Usage Guide.
If you prefer to keep access limited to your local network:
- Find the mapped port in Docker Desktop (format:
<PORT>:80, e.g.,32771:80) - Access from the same computer:
http://localhost:<PORT> - Access from other devices on the network:
http://<YOUR_COMPUTER_IP>:<PORT>
Tip
Find your computer's IP address with ipconfig (Windows) or ifconfig/ip addr (macOS/Linux). It's usually in the format 192.168.x.x or 10.0.x.x.
For developers or users who need to run Agent Zero directly on their system, see the In-Depth Guide for Full Binaries Installation.
Agent Zero settings can be automatically configured using environment variables with the A0_SET_ prefix in your .env file. This enables automated deployments without manual configuration.
Usage:
Add variables to your .env file in the format:
A0_SET_{setting_name}={value}Examples:
# Model configuration
A0_SET_chat_model_provider=anthropic
A0_SET_chat_model_name=claude-3-5-sonnet-20241022
A0_SET_chat_model_ctx_length=200000
# Memory settings
A0_SET_memory_recall_enabled=true
A0_SET_memory_recall_interval=5
# Agent configuration
A0_SET_agent_profile=custom
A0_SET_agent_memory_subdir=productionDocker usage:
When running Docker, you can pass these as environment variables:
docker run -p 50080:80 \
-e A0_SET_chat_model_provider=anthropic \
-e A0_SET_chat_model_name=claude-3-5-sonnet-20241022 \
agent0ai/agent-zeroNotes:
- These provide initial default values when settings.json doesn't exist or when new settings are added to the application. Once a value is saved in settings.json, it takes precedence over these environment variables.
- Sensitive settings (API keys, passwords) use their existing environment variables
- Container/process restart required for changes to take effect
If you are migrating from older, non-Docker setups, A0 handles the migration of legacy folders and files automatically at runtime. The right place to save your files and directories is a0/usr.
After following the instructions for your specific operating system, you should have Agent Zero successfully installed and running. You can now start exploring the framework's capabilities and experimenting with creating your own intelligent agents.
Next Steps:
- For production server deployments, see the VPS Deployment Guide
- For development setup and extensions, see the Development Setup Guide
- For remote access via tunnel, see Remote Access via Tunneling
If you encounter any issues during the installation process, please consult the Troubleshooting section of this documentation or refer to the Agent Zero Skool or Discord community for assistance.




















