How to run browser-use with a self-hosted model on a cloud GPU

Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install browser-use the way the official README at tag 1.0.4 prints, install a local browser when the machine has none, serve a model on that machine, and pass ChatOpenAI with that OpenAI-compatible base URL to Agent. Copy final_result() and the files under agent.workspace/downloads before you destroy the instance, because destroying the instance deletes its disk.

An agent can rent the GPU and run this library on it. The agent pages are GPU compute for AI agents and the agent integration guide. Those pages are how an agent discovers a GPU and runs work on it. This page is the browser-use install. A vision-language server whose README posts an image chat completion is How to serve Qwen2.5-VL with vLLM on a cloud GPU. A vision model whose 4.7 doc names two MiniCPM-V ids is How to run MiniCPM-V on a cloud GPU. A general vLLM install is How to serve an OpenAI-compatible API with vLLM on a cloud GPU. Ollama’s install and port 11434 are How to run Ollama on a cloud GPU. CloudGPU’s hosted gateway is a different base URL: How do I use an OpenAI-compatible API for open models?. How published weight sizes are read: How much VRAM do I need to run an LLM?. The tunnel is How to use SSH port forwarding on a cloud GPU. If the process runs out of memory: How to fix CUDA out of memory on a cloud GPU. If the process raises no kernel image on an RTX 5090: How to fix CUDA no kernel image on an RTX 5090. A crew whose LLM class takes a base URL is How to run CrewAI with a self-hosted model on a cloud GPU. A graph whose vLLM chat page sets base_url to http://localhost:8000/v1 is How to run LangGraph agents with a self-hosted model on a cloud GPU. An AgentChat library whose Ollama example sets model to llama3.2 is How to run AutoGen agents with a self-hosted model on a cloud GPU. A typed agent whose Ollama page sets base_url to http://localhost:11434/v1 is How to run Pydantic AI agents with a self-hosted model on a cloud GPU. A framework whose README sets Ollama and HuggingFaceEmbedding is How to build LlamaIndex agents with a self-hosted model on a cloud GPU. A pipeline whose Ollama page sets url to http://localhost:11434, and whose vLLM page defaults api_base_url to http://localhost:8000/v1, is How to run Haystack agents with a self-hosted model on a cloud GPU. A program whose language-models page sets dspy.LM to ollama_chat/llama3.2:1b, and whose GPU-server example sets api_base to http://localhost:7501/v1, is How to run DSPy with a self-hosted model on a cloud GPU. An agent whose Ollama example sets id to llama3.1:8b, and whose VLLM class defaults base_url to http://localhost:8000/v1/, is How to run Agno agents with a self-hosted model on a cloud GPU.

The browser-use LICENSE file begins with “MIT License”, its copyright notice names 2024 Gregor Zunic, and the GitHub license field on 2026-11-14 was MIT.

The commands below are copied from the upstream files named in each step. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked. The README and the models page also name other providers and other model ids. This page does not list those names.

What the docs print about memory

The README, the quickstart, the models page, and the browsers page print no GPU GB figure. The models page says small models, a few billion parameters, reach the page but often fail to finish the task, and says to use the largest model your machine runs well. This page does not treat that sentence as vram_gb. This page does not mark a catalog row as enough.

GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, updated_at 2026-11-14T04:12:38.192Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-14T04:12:39.202Z) listed the same names and the same vram_gb values, plus Ascend 910B at 64, which is not in gpu-prices.json and is not listed here. The catalog response also includes an availability field. This page does not copy it. Every prices row has gpu_count 1. Every catalog row has min_gpu_count 1. Which listing you can start is on Deploy.

The catalog template list had no browser-use template. It did have Ollama templates (jupyterlab-ollama, ollama-qwen3, ollama). Those templates are a different install. This page does not treat them as browser-use.

Catalog name vram_gb
RTX 2080 8
RTX 3080 10
RTX 2080 Ti 11
RTX 3080 Ti 12
V100 16G 16
A30 24
RTX 3090 24
RTX 4090 24
RTX 4090D 24
RTX 4080 SUPER 32G 32
RTX 5090 32
RTX 5090D 32
V100 32G 32
A100 40G 40
A800 40G 40
A40 48
RTX 4090 48G 48
RTX 4090D 48G 48
RTX A6000 48
NVIDIA RTX PRO 5000 72G 72
RTX PRO 5000 72G 72
A100 80G 80
A800 80G 80
H800 80
RTX 6000D 83
H20 96G 96
RTX PRO 6000 96G 96
RTX PRO 6000 Max-Q 96
H20-3e 141G 141

Install

The README at tag 1.0.4 says Python 3.11 or newer. With pip, in a virtualenv, copied. The pin is the README’s pin:

python3 -m venv .venv && source .venv/bin/activate
pip install 'browser-use==1.0.4'

The README’s uv lines, copied:

uv init --python 3.12 my-agent && cd my-agent
uv add 'browser-use==1.0.4'

The README says to pin with ==, never >=. Tag 1.0.4 is commit 480d0bd508ce10dcf27a4716f2f87355a08e8372, committed 2026-11-13T20:49:58Z. The commit subject begins 1.0.4rc1. pyproject.toml at that commit says version = "1.0.4" and requires-python 3.11 or newer and below 4.0. PyPI info.version for browser-use on 2026-11-14 was 1.0.4, uploaded 2026-11-13T20:56:54.777359Z, with the same Python range. The quickstart fetched the same day prints browser-use==1.0.0 on both the uv line and the pip line. Those pins are not the same. This page follows the README at the tag. This page did not install either pin.

The default Agent(...) on the README uses the hosted gateway and a hosted browser. This page follows the local browser path below.

Browser install

The quickstart says Browser('chromium') uses the Chrome, Chromium, or Edge you have installed, and that with none installed you run browser-use install once to download Chromium. The browsers page says the same command downloads Playwright’s Chromium, and that headless left unset is headless only when there is no display. browser_use/cli.py at tag 1.0.4 prints usage: browser-use install and the sentence Install Playwright's Chromium (+ system dependencies on Linux) for Browser('chromium'). The function runs uvx playwright install chromium, and on Linux it appends --with-deps and then --no-shell. If uvx is missing, it prints pip install playwright && playwright install chromium. A print in that function states a download duration. This page does not copy it. This page did not run browser-use install.

Agent

The README’s minimal agent, copied. That snippet does not set llm or browser, so it uses the defaults named above:

from browser_use import Agent

result = Agent('Find the number of stars of the browser-use repo').run_sync()
print(result.final_result())

The README’s local-browser example constructs ChatOpenAI with a closed-model id. This page does not copy that id. The comment on that line says ChatOpenAI(model, base_url=...) for any compatible server. The models page is the block this page keeps.

A local OpenAI-compatible model

ChatOpenAI in browser_use/llm/__init__.py at the same tag says it is for an OpenAI-compatible server via base_url. The names in that docstring include vLLM and Ollama. The docstring also names other providers. This page does not list those names. The constructor arguments the models page prints are model, api_key, base_url, temperature, and reasoning_effort.

The models page Ollama example, copied. It says to pull a model that supports tool calling first:

ollama pull qwen2.5:7b
from browser_use import Agent, Browser, ChatOpenAI

llm = ChatOpenAI('qwen2.5:7b', base_url='http://localhost:11434/v1', api_key='ollama')
agent = Agent('What is the title of https://example.com?', llm=llm, browser=Browser('chromium'))
print(agent.run_sync().final_result())

The same page says that with base_url set to a server other than the official endpoint, ChatOpenAI uses chat completions. It says ChatOllama from 0.x is replaced by this, and that importing it raises an ImportError. It says the model must support tool calling. It does not print a GPU GB figure, a vLLM port, or a Hugging Face repository id. qwen2.5:7b is the Ollama tag that page prints. This page does not add hf download for an id the page does not print. The models page names vLLM as one OpenAI-compatible server and does not print a vLLM serve command. How to serve an OpenAI-compatible API with vLLM on a cloud GPU is that server install. How to run Ollama on a cloud GPU is the Ollama install.

The Qwen2.5-VL and MiniCPM-V guides linked above are different model cards. The models page’s Ollama example does not name those ids.

For http://localhost:11434/v1, the tunnel is How to use SSH port forwarding on a cloud GPU. This page does not add a vLLM port the models page does not print.

When it fails

CUDA out of memory. The browser-use files this page read print no GPU GB figure. If the process raises CUDA out of memory, use how to fix CUDA out of memory on a cloud GPU. This page does not pick a smaller model id for you.

“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. The README, pyproject.toml, and the models page do not name compute capability 12.0. The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and that PyTorch 2.7 and later, on a build for CUDA 12.8 or newer, is the line that announced support. This page did not install a torch wheel and did not re-test this library on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.

Missing browser. The quickstart says to run browser-use install once when no Chrome, Chromium, or Edge is installed. This page did not reproduce that case.

What to copy off, then destroy

run_sync() returns an object whose final_result() is the answer. The README says files the browser downloads land in agent.workspace/downloads, and result.downloads lists the run’s files. Copy the printed result and that directory before you destroy the instance. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.

The pricing page FAQ states the billing rule in these words:

Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.

Prices are not copied here.

Frequently asked questions

What memory figure do the browser-use docs print?

The README, the quickstart, the models page, and the browsers page print no GPU GB figure. The models page says small models, a few billion parameters, reach the page but often fail to finish the task. This page does not treat that sentence as vram_gb and does not mark a catalog row as enough. Which listing you can start is on https://cloudgpu.app/deploy.

Which install lines, including the browser install, do the docs print?

The README prints Python 3.11 or newer, uv add browser-use==1.0.4, and pip install browser-use==1.0.4 inside a virtualenv. pyproject.toml at tag 1.0.4 says version 1.0.4 and requires Python 3.11 or newer and below 4.0. PyPI info.version on 2026-11-14 was 1.0.4. The quickstart page fetched the same day prints browser-use==1.0.0. Those pins are not the same. The browsers page says to run browser-use install once when no Chrome, Chromium, or Edge is installed. cli.py at that tag prints usage: browser-use install, and on Linux appends --with-deps to uvx playwright install chromium. This page did not run it.

How do the docs point the agent at a local or OpenAI-compatible model?

The models page sets ChatOpenAI to model qwen2.5:7b, base_url http://localhost:11434/v1, and api_key ollama, with Browser chromium. It prints ollama pull qwen2.5:7b and says the model must support tool calling. The class docstring says an OpenAI-compatible server via base_url, and the names it lists include vLLM and Ollama. The models page does not print a vLLM port or a Hugging Face repository id. The README local example model id is not copied on this page. Importing ChatOllama from 0.x raises ImportError. This page did not run the agent.

What license does the file print?

The LICENSE file begins with MIT License, its copyright notice names 2024 Gregor Zunic, and the GitHub license field on 2026-11-14 was MIT.

Sources (read 2026-11-14, Asia/Shanghai)

  • browser-use/browser-use README (Python 3.11 or newer, uv add 'browser-use==1.0.4', pip install 'browser-use==1.0.4', Agent(...).run_sync(), final_result(), Browser('chromium'), local ChatOpenAI comment, downloads in agent.workspace/downloads): tag 1.0.4, commit 480d0bd508ce10dcf27a4716f2f87355a08e8372, committed 2026-11-13T20:49:58Z. The commit subject begins 1.0.4rc1. pyproject.toml version 1.0.4, requires-python 3.11 or newer and below 4.0. GitHub license field MIT. pushed_at 2026-11-13T20:56:59Z. LICENSE copyright notice names 2024 Gregor Zunic. The README’s local example model id is not copied. The README also names other providers. This page does not list them
  • PyPI browser-use info.version 1.0.4, uploaded 2026-11-13T20:56:54.777359Z, requires_python 3.11 or newer and below 4.0
  • browser_use/llm/__init__.py (ChatOpenAI docstring: OpenAI-compatible server via base_url; the names it lists include vLLM and Ollama; other names in that parenthetical are not copied; constructor takes base_url): same commit
  • browser_use/cli.py (usage: browser-use install, Playwright’s Chromium plus system dependencies on Linux, uvx playwright install chromium, Linux --with-deps, --no-shell, the uvx missing line pip install playwright && playwright install chromium): same commit. A duration sentence in that function is not copied
  • Open-source quickstart (Python 3.11 or newer, pin browser-use==1.0.0, browser-use install when no browser is installed): https://docs.browser-use.com/open-source/quickstart, fetched 2026-11-14. That pin is not the README’s 1.0.4
  • Models page (ollama pull qwen2.5:7b, ChatOpenAI('qwen2.5:7b', base_url='http://localhost:11434/v1', api_key='ollama'), Browser('chromium'), tool calling, a few billion parameters, no GPU GB figure, no Hugging Face id, vLLM named without a port, ChatOllama import raises ImportError): https://docs.browser-use.com/open-source/models, fetched 2026-11-14. Other provider classes and example model ids on that page are not copied
  • Browsers page (Browser('chromium'), browser-use install, headless when there is no display): https://docs.browser-use.com/open-source/browsers, fetched 2026-11-14
  • Public GPU memory: https://cloudgpu.app/gpu-prices.json (updated_at 2026-11-14T04:12:38.192Z) and https://cloudgpu.app/v1/public/gpu-catalog (generated_at 2026-11-14T04:12:39.202Z). GET /v1/public/compute-capabilities returned feature flags and no GPU list. The catalog had no browser-use template

Cards you can start are on the Deploy page. Prices are on https://cloudgpu.app/pricing and are not repeated here.

Last updated: 2026-11-14 (Asia/Shanghai).