Claude computer use and browser use: the GA toolsets
Claude's computer use tool left beta in August 2026 as computer_toolset_20260801, and a browser use tool, browser_toolset_20260801, arrived beside it. Which one to pick, how the agent loop and batch actions work, what moving off computer_20251124 takes, what a task costs and how to keep a page from steering the agent.
Tecyfy · Published · 10 min read

Claude can now drive a screen without a beta header. On 19 August 2026 Anthropic moved computer use out of beta as computer_toolset_20260801, which controls a whole desktop through screenshots, mouse and keyboard, and launched browser_toolset_20260801, which works inside a browser and reads the page itself. Both are client tools: Claude decides the next click, and your code performs it in a machine you run. Pick browser use when the job lives in web pages, computer use when it needs desktop apps, and neither when an API or a page fetch would do.
Three ways to get a job done on a website
Driving a screen is the slowest and most expensive way for an agent to reach information, so it comes last:
- An API or an MCP server. If the system has one, call it. A function call returns exact data without a screen.
- Web fetch. If Claude only needs to read a page you can point it to, the web fetch tool brings the text back without a browser.
- Browser use, then computer use. When the work means logging in, clicking through a form or reading a page that builds itself with JavaScript, give Claude a browser. When it means a desktop app, a remote desktop or files across applications, give it a computer.
Anthropic's own advice runs the same way: browser use for tasks that stay inside web pages, computer use when a task needs a whole desktop, web fetch for reading.
What each toolset gives Claude
One entry in tools declares a set of member tools. You do not name them; the toolset version fixes them.
| Computer use | Browser use | |
|---|---|---|
| Tools entry | {"type": "computer_toolset_20260801"} | {"type": "browser_toolset_20260801"} |
| Member tools | 17, all on by default | 27 on by default, 4 optional |
| How Claude sees | Screenshots of the desktop, zoom for small text | The accessibility tree (read_page, find), page text, screenshots |
| How Claude points | Pixel coordinates | An element reference such as ref_3, or viewport coordinates |
| Extras | Mouse down and up, hold key, wait | Form input, tabs, downloads; opt-in JavaScript, file upload, console and network logs |
| Added input tokens per request | About 4,500 | About 6,600 |
| Where it runs | Claude API and Google Cloud (Google managed); earlier beta versions on Bedrock, Claude Platform on AWS, Foundry | Claude API and Google Cloud (Google managed) |
The element references are the reason browser use is the better choice for web work. A coordinate breaks when a banner pushes the page down; a reference points at the button itself, from the accessibility tree your executor reads. Claude still falls back to screenshots and coordinates for canvases, video, virtualized lists and cross-origin frames that the tree does not describe. Anthropic also notes that a tree read of a typical page often costs fewer tokens than a screenshot.
Neither toolset is in Claude Managed Agents yet, and neither runs on Anthropic's side: you host the browser or the desktop.
The loop your code runs
Claude never touches the machine. Each response holds one or more tool_use blocks, each naming a member and carrying toolset_name; your code runs them and sends back one tool_result per block. Since August, Claude can return several actions in one turn, such as click, type, press Enter, which Anthropic calls a batch action. You run the blocks in order, stop at the first failure and answer every later block with a fixed error text:
import anthropic
client = anthropic.Anthropic()
tools = [{"type": "browser_toolset_20260801"}]
messages = [{"role": "user", "content": "Open status.example.com and list the services that are degraded."}]
while True:
response = client.messages.create(
model="claude-sonnet-5-5", max_tokens=4096, tools=tools, messages=messages
)
messages.append({"role": "assistant", "content": response.content})
if response.stop_reason != "tool_use":
break
results, failed = [], False
for block in response.content:
if block.type != "tool_use":
continue
result = {"type": "tool_result", "tool_use_id": block.id, "toolset_name": "browser"}
if failed: # an earlier action in this batch failed: do not run the rest
result |= {"is_error": True, "content": "Not executed: an earlier action in this turn failed."}
else:
try:
result["content"] = run_member(block.name, block.input) # your Playwright code
except Exception as error:
failed = True
result |= {"is_error": True, "content": str(error)}
results.append(result)
messages.append({"role": "user", "content": results})
print(response.content[-1].text)
Two rules trip people up. Every tool_use block needs an answer, or the next request is rejected, so a loop that reads only the first block breaks as soon as Claude batches. And if a person approves risky actions, the check has to run before each block, because one turn can complete a whole purchase. The computer toolset's halt text is slightly different: Not executed: an earlier computer action in this turn failed.
You may not need to write this loop. Since 7 October the Python and TypeScript SDKs have browser and computer toolset classes, in beta, that run it with the tool runner, apply your approval callback and, for the browser, a URL policy, and take a driver from a provider: Browser Use or Browserbase for the browser, Daytona for the computer, E2B for either. You still supply, or rent, the browser.
Moving off computer_20251124
Existing integrations keep working with their beta header on the models listed for them, including Claude Opus 5, Sonnet 5 and Opus 4.8. The forcing change is the Claude 5.5 models: on the Claude API and Google Cloud, Opus 5.5, Sonnet 5.5 and Haiku 5.5 reject the earlier versions with an error. If you switch models, you switch tools:
- Drop the
anthropic-beta: computer-use-2025-11-24header and call the standard client. - Replace the entry with
{"type": "computer_toolset_20260801"}; deletename,display_width_px,display_height_px,display_numberandenable_zoom, which the toolset now rejects. - Dispatch on
nameplustoolset_nameinstead ofinput.action, and handle every block in a turn. - Echo
"toolset_name": "computer"on every result. - Decide on zoom. It is now on by default; if your environment cannot crop, set
"configs": {"zoom": {"enabled": false}}. - Honour the new
repeatfield onkey, or "press Tab 4 times" becomes one press. - Resize screenshots yourself. The toolset takes no display size, does not downscale and rejects an image over the model's limit, 2,576 pixels on the long edge for the models that support it.
Amazon Bedrock is the exception: there the 5.5 models still accept computer_20251124, and the toolset is not available.
What a task costs
Neither tool has a fee of its own. You pay for tokens, and the screenshots are what add up: each one is billed as image input, about 1,200 tokens at 1280×720, and because every request resends the conversation, a screenshot taken on turn 3 is paid for again on turn 4, 5 and every turn after. Without prompt caching, the cost of a turn grows with its position, and the total grows with the square of the turns.
a turn is one request; it can carry several actions
Turn 1Bars: cost of each turn, not cached. Dashed line: the other way.Turn 30
$1.89 for the task, against $0.3059 with caching. Each screenshot is 1,196 tokens, and by the last turn the request carries 52K tokens of history, so that turn alone is 6% of the bill.
Assumes a 1,000-token prompt, 300 output tokens a turn (thinking included), a screenshot every turn and the full history kept, with a 5-minute cache breakpoint on the latest result. Claude API prices, October 2026.
On our assumptions, a 30-turn browser task on Claude Sonnet 5.5 costs about $1.89 with no cache and $0.31 with one; at 100 turns the gap is $17.13 against $1.53. Claude Haiku 5.5 is cheaper per token but charges higher rates on any request whose prompt passes 100,000 tokens, so a long run on Haiku jumps from about $0.33 at 60 turns to about $2.97 at 100. Anthropic's advice for the 5.5 models is to keep screenshots at 2,000 pixels or less a side and not to prune old ones on the client, because removing an earlier screenshot invalidates the thinking that followed it; use server-side tool result clearing instead. For whole-agent budgets, the agent cost simulator works on the same prices.
Keep the page from driving
A computer use agent reads whatever the screen shows, and anything on a page can be written to steer it. Anthropic's docs say plainly that Claude sometimes follows instructions found in content even when they conflict with yours. Anthropic runs classifiers over screenshots and page text that flag likely injections and make Claude check before acting, but it treats them as an extra layer, not the defence. (They don't currently run on browser toolset requests through Amazon Bedrock.) Our prompt injection examples show what such text looks like.
The precautions that do the work are in your environment:
- A fresh machine each session. A dedicated container or VM with minimal privileges and a browser profile that is signed in to nothing you would not hand to Claude.
- An allowlist at the network. The SDK's URL policy checks only the URLs Claude asks
navigateto open, and without one it checks none. A click or a redirect can still reachlocalhostor the cloud metadata address169.254.169.254. Egress rules on the container can block the metadata address and private ranges, but rules outside the container can't blocklocalhost, so check each request in the driver as well. Our piece on limiting what an agent can fetch covers that layer. - Only http and https. Refuse
file:, which reads the host's files, andjavascript:, which runs script even withjavascript_execoff. - Risky members off. Leave
javascript_execandfile_uploaddisabled unless the task needs them; the SDK refuses to enable either without an approval callback. - A person for consequences. Purchases, account changes, messages and accepting terms go to a human first; our human-in-the-loop guide covers how to pause a run for approval.
Where it still falls short
Anthropic lists the limits itself: it is slower than a person, so it suits background jobs and automated testing more than live help; it can misjudge coordinates or pick the wrong tool, more often in niche apps or several apps at once; scrolling and spreadsheets can take several tries; and it is limited at creating accounts or posting on social platforms. For anything that needs perfect precision or handles sensitive data, Anthropic's advice is a human watching. That makes the best first jobs for these tools the ones with no API and a forgiving outcome: checking a vendor portal, testing your own web app, filling an internal form, collecting a status from a dashboard. They are the tool use of last resort, not the first thing an agent reaches for.
Questions
- What is Claude computer use?
- Computer use is a Claude API tool that lets Claude operate a desktop through screenshots, mouse and keyboard. You add one entry, computer_toolset_20260801, to the tools array; Claude replies with calls such as screenshot, left_click, type and zoom, and your application runs them in a virtual machine or container you control and returns the results. It is generally available on the Claude API and on Claude Models on Google Cloud (Google managed).
- What is the Claude browser use tool?
- The browser use tool, browser_toolset_20260801, launched on 19 August 2026. It lets Claude work inside a browser your application runs: it reads the page's accessibility tree and text, clicks elements by reference or by coordinate, fills forms and manages tabs. It has 27 member tools by default and 4 optional ones (JavaScript, file upload, console and network reads), and it does not need a full desktop.
- Should I use computer use or browser use?
- Use browser use when the task stays inside web pages, because it reads the page structure and acts on elements, which survives layout changes. Use computer use when the task needs desktop applications or anything outside a browser. If the job is only reading pages, web fetch is lighter: the API runs it for you, with no browser to operate.
- How much does Claude computer use cost?
- There is no separate fee; you pay for tokens. The computer toolset adds about 4,500 input tokens to each request and the browser toolset about 6,600. Each screenshot is billed as image input, about 1,200 tokens at 1280 by 720, and every later turn resends it. A 30-turn task on Claude Sonnet 5.5 costs about $1.89 without prompt caching and about $0.31 with it, on our assumptions.
- Does computer_20251124 still work?
- Yes, with its beta header, on the models listed for it, such as Claude Opus 5, Sonnet 5 and Opus 4.8. On the Claude API and Google Cloud, Claude 5.5 models (Opus 5.5, Sonnet 5.5, Haiku 5.5) reject the earlier versions and accept only computer_toolset_20260801. Amazon Bedrock, Claude Platform on AWS and Microsoft Foundry still use the earlier beta versions.
- Is Claude computer use safe?
- Only with precautions. Pages and images can carry instructions that steer Claude, so Anthropic advises a dedicated VM or container with no credentials, a domain allowlist enforced at the network, refusing non-http URL schemes, leaving JavaScript and file upload off, and a human confirming purchases, account changes, messages and accepting terms. Anthropic also runs classifiers on screenshots and page text that flag likely prompt injections.
Sources