Create an account over on console.notte.cc, and create an api key.
Load your api key as an environment variable (or create a .env file, following the example in .env.example).
export NOTTE_API_KEY=<YOUR_API_KEY>
Set up a python virtual environment and install dependencies (pypi package coming soon).
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
Run the CLI to let BUA start a local browser window, using playwright. (Stop with CTRL+C)
python -m bua
Note
The first time you run this, if you haven't used Playwright before, you will be prompted to install dependencies. Execute the command suggested, which will depend on your OS.
Other included sample browser environments:
- Notte (remote browser, requires account)
- Browserbase (remote browser, requires account)
- ...or implement your own
Browser
!
BUA acts similarly to tha typical computer-use completion model. At a high level, BUA will look at a screenshot and the DOM elements of the browser interface and output an action, than can easily be executed from any browser driver.
This repository defines two lightweight abstractions to make interacting with BUA agents more ergonomic. Everything works without them, but they provide a convenient separation of concerns.
Abstraction | File | Description |
---|---|---|
Browser |
computers/computer.py |
Defines a Browser interface for various environments (local desktop, remote browser, etc.). An implementation of Browser is responsible for executing any browser_action sent by BUA (clicks, etc). Any CUA computer can also implement the browser interface if they which to be compatible. |
Agent |
agent/agent.py |
Simple, familiar agent loop – implements run_full_turn() , which just keeps calling the model until all browser actions and function calls are handled. |
The CLI (cli.py
) is the easiest way to get started with BUA. It accepts the following arguments:
--computer
: The browser environment to use. See the Browser Environments section below for options. By default, the CLI will use thelocal-playwright
environment.--model
: The computer using model to use. Currently compatible withbua
andcua
.
BUA can work with any Browser
environment that can handle BUA actions.
If your Browser
relied on playwright, they are even already implemented!
Not convinced? You can run a task using computer-use-preview instead, and compare with bua:
python -m bua --model cua
This sample app provides a set of implemented Browser
examples, but feel free to add your own!
Browser | Option | Type | Description | Requirements |
---|---|---|---|---|
LocalPlaywright |
local-playwright | browser |
Local browser window | Playwright SDK |
Notte |
notte | browser |
Remote browser environment | Notte API key in .env |
Browserbase |
browserbase | browser |
Remote browser environment | Browserbase API key in .env |
Using the CLI, you can run the sample app with different browser environments using the options listed above:
python -m bua --computer <browser-option>
For example, to run the sample app, and have your browser hosted by Notte
, you can run:
python -m bua --browser notte
We don't currently support function calling, but if it's something that you are looking forward to, feel free to let us know!