Claude Computer Use Is GA: Browser, Files, Skills APIs

TL;DR
30 sec3 min coredeep dive optional

Claude computer use is now generally available: the new computer_toolset_20260801 toolset drops the beta header, adds batch actions and default zoom, and ships the same day as a browser-scoped sibling toolset plus GA releases of the Files and Skills APIs.

  • GA computer use runs through the computer_toolset_20260801 toolset with no beta header, batch actions in a single turn, and zoom on by default.
  • The browser_toolset_20260801 toolset drives a browser your app hosts, reading the page accessibility tree instead of relying on screenshots alone.
  • The Files API and the Skills API left beta on the same day, so the files-api-2025-04-14 and skills-2025-10-02 headers are no longer required.
  • Both toolsets run on Claude Opus 5, Claude Sonnet 5, Claude Opus 4.8, and the newest Fable and Mythos models.

Computer use lets a Claude model move a cursor, type, and click through the software a human would use. Until August 19 that capability carried a beta header, a single-action-per-turn workflow, and a migration path nobody could plan around. The general availability release changes that: computer use is now a supported, versioned toolset you can build a product on. The same release adds a browser use toolset scoped to a browser viewport, and moves the Files API and the Skills API out of beta, first announced in the Claude API release notes.

This tutorial explains what changed, then builds one small agent that uses all three pieces: it reads a file you upload, browses a page for facts, and loads a skill to format the result. Everything here runs against the public Claude API with no beta headers.

What changed on August 19

Three things went from beta to generally available at once. First, the computer use tool became the computer_toolset_20260801 toolset: requests no longer send the anthropic-beta header, the model can issue batch actions (several actions in one turn), zoom is enabled by default, and you can configure behavior per tool through the configs array. Second, a new browser_toolset_20260801 toolset launched for driving a browser that your application hosts. Third, the Files API and the Skills API shed their beta headers, which means any integration you write today targets the final, stable request shape.

For teams already running the beta, the practical reading is this: existing beta calls keep working, but the GA toolsets change the request shape and some tool handling, so plan the migration deliberately instead of flipping a flag. Anthropic published dedicated migration guides for computer use, the Files API, and the Skills API. New projects should start on the GA toolsets and never touch the beta headers.

CapabilityBeta behaviorGA behavior
Computer use accessanthropic-beta header requiredcomputer_toolset_20260801, no header
Actions per turnOne action at a timeBatch actions in a single turn
Screen inspectionScreenshot based, zoom opt-inZoom enabled by default
Browser controlNot availablebrowser_toolset_20260801, viewport scoped
File storagefiles-api-2025-04-14 header/v1/files stable, expiring files, pagination
Skillsskills-2025-10-02 header/v1/skills stable, loaded via container
How do batch actions change the economics of computer use agents?

In the beta, a computer use loop was strictly serial: the model requested one action, your client executed it, captured a screenshot, and sent everything back for the next decision. A task that needed twenty interactions cost twenty full round trips, and each round trip carried the full screenshot payload again. Batch actions collapse that pattern. The model can now emit several related actions in one turn, for example scroll, then click a known target, then type into the field that appeared, and your client executes them as a group before returning control.

The saving shows up in two places. Latency drops because the conversation advances multiple steps per model call instead of one, which matters most on slow desktop environments where a screenshot round trip can take seconds. Cost drops because the fixed parts of the prompt, including the tool definitions and the standing instructions, are amortized across more actions per turn. The effect is largest for predictable sequences and smallest for exploratory work where the model genuinely needs to look after every click.

One caution follows from the design. When actions run as a batch, a failed assumption in the middle of the batch can waste the rest of it: a click that lands on the wrong element makes the subsequent typing garbage. Production agents should keep a verification step at natural boundaries, for example after navigation or form submission, so a bad batch is caught by the next observation instead of compounding silently. The GA release keeps zoom on by default, which helps here, because the model can inspect a region before it commits a batch against it.

There is also a debugging dividend. A single action trace produces twenty nearly identical model turns for a twenty step task, and reading that transcript to find where the agent went wrong is tedious. A batch trace groups the work into a handful of intentional chunks, each with an observation before and after, which reads more like a test log than a video recording. Teams porting existing agents report that batch traces shorten incident reviews for exactly this reason: the unit of analysis becomes the intended subtask rather than the individual click.

The computer use toolset, action by action

The GA toolset keeps the mental model from the beta: the model sees a screenshot of a desktop or application window and drives it with mouse and keyboard actions. What changes is the packaging. You declare the toolset in the configs array, name it, and the API handles the rest without a beta header. Zoom is on by default, so the model can magnify a region before clicking small targets, which measurably reduces misclicks on dense interfaces. Per-tool configuration through configs also means you can run one agent that has computer use and another that does not, on the same API key, without header gymnastics.

Batch actions deserve special attention because they change how you write the action loop. Your client needs to iterate over the actions array in each response, execute each step, and decide whether to abort the remaining steps if an intermediate result invalidates them. A robust client checks the outcome of each action before starting the next one in the batch, and reports the final screenshot once the batch completes.

The browser use tool: viewport scoped automation

The browser_toolset_20260801 toolset is the bigger conceptual addition. Where computer use hands the model a whole desktop, the browser use tool works inside a browser viewport that your application hosts. The model reads the page itself, its accessibility tree, elements, forms, and tabs, rather than inferring the interface from pixels. On top of that structural view it adds element references, form input, tab management, download reporting, and opt-in file upload, alongside the familiar screenshot-and-click control.

The difference matters for reliability. A screenshot-only agent can misread a label or click a pixel one row off. An agent that reads the accessibility tree gets stable element references, so clicking a button means referencing the button, not aiming at its coordinates. It also sees form structure directly, which makes multi-field input more reliable, and tab management lets one session work across several pages without losing state. Downloads are reported back to the model, so an agent that triggers an export can confirm the file actually arrived.

Because the browser is hosted by your application, the model never touches infrastructure you do not control. That makes the browser use toolset the natural fit for SaaS features that automate tasks inside your own product, while full computer use remains the choice for spanning arbitrary desktop applications.

Files and Skills APIs reach general availability

The Files API ending its beta removes the files-api-2025-04-14 header and introduces the current response format: uploaded files can carry an expiry through expires_in_seconds, file objects report their expires_at timestamp, and listing files uses page based pagination with an ids[] filter. Requests that still send the old header keep working against the previous response format, so nothing breaks the day you upgrade, but new code should use the stable shape.

The Skills API follows the same pattern. The /v1/skills endpoints and Skills loaded through the container parameter in Messages requests no longer require the skills-2025-10-02 header. A skill is a packaged procedure the model loads on demand, which turns “our agent knows how to file an expense report” from a prompt engineering trick into a versioned artifact your team can review and update independently of the prompts that invoke it.

Should you migrate off the beta headers now or wait?

Older beta versions remain available, so nothing forces an immediate migration, which is exactly why a plan helps. The release notes state that upgrading an existing computer use integration changes the request shape and tool handling, so the work is real: tool declarations move into the configs array as typed entries, the action loop gains batch handling, and any code that parsed the old file listing responses needs to understand expiration fields and pagination.

Migrate now if the integration is small or still in development, because the GA shape is where docs, examples, and community answers will accumulate. Migrate on a schedule if you are in production with hard SLAs: pin the current behavior, add the GA toolset behind a feature flag, and compare batch action traces against single action traces on representative tasks before switching. The one thing to avoid is writing new code against the old headers, since that path now leads to a migration you have already delayed.

Build a small agent on all three pieces

The fastest way to internalize the release is a tiny agent that uploads a file, browses for a fact, and applies a skill. The request below is the whole integration surface: a configs array declaring the browser toolset, a container that carries the uploaded file and the skill, and one user turn that describes the job.

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-opus-5",
    "max_tokens": 4096,
    "container": {
      "skills": [{"skill_id": "report-formatter", "version": "latest"}],
      "files": ["file_01Ja2b3c4d"]
    },
    "tools": [{
      "name": "browser_toolset_20260801",
      "type": "browser_20260801",
      "allowed_domains": ["example.com"]
    }],
    "messages": [{
      "role": "user",
      "content": "Read brief.txt, check the pricing page, and format the summary with the report-formatter skill."
    }]
  }'
import anthropic

client = anthropic.Anthropic()
response = client.messages.create(
    model="claude-opus-5",
    max_tokens=4096,
    container={
        "skills": [{"skill_id": "report-formatter", "version": "latest"}],
        "files": ["file_01Ja2b3c4d"],
    },
    tools=[{
        "name": "browser_toolset_20260801",
        "type": "browser_20260801",
        "allowed_domains": ["example.com"],
    }],
    messages=[{
        "role": "user",
        "content": "Read brief.txt, check the pricing page, "
                   "and format the summary with the report-formatter skill.",
    }],
)
print(response.content)

Note what is absent: no anthropic-beta header anywhere. The file reference comes from a prior upload to /v1/files, and the skill reference points at something your team published through /v1/skills. The agent loop itself stays client side: execute tool calls, feed results back, repeat until the model returns text instead of tool use.





Once the checklist passes, harden the loop: cap batch length for risky interfaces, log every action with its screenshot, and set domain restrictions on web-facing tools so the agent can only reach the sites you intend.

What does the browser tool see that a screenshot only agent misses?

The accessibility tree is a structured description of the page maintained by the browser itself: every button, input, heading, and link appears as a node with a role, a name, and a position in the hierarchy. A screenshot only agent receives a picture and must infer that structure visually, which fails on dense layouts, low contrast text, or partially scrolled views. The browser use toolset hands the model both views, the tree and the screenshot, plus references that point at tree nodes.

In practice this changes three failure modes. Clicking becomes referential, so a button keeps working after a layout shift moves it. Form filling becomes structural, because the model sees which input is the email field rather than guessing from placeholder text. And multi tab work becomes stateful, since the toolset exposes tab management instead of forcing one page per session. Download reporting closes the loop on outcomes: when the agent clicks export, the toolset tells it a file arrived, rather than leaving the model to assume success.

How do you keep a computer use agent inside safe boundaries?

Computer use is powerful precisely because it acts where humans act, which is also why guardrails deserve design time. The first layer is scope. The browser toolset accepts domain restrictions, so an agent built for procurement only reaches the vendor sites you list, and a desktop computer use agent should run inside a dedicated VM or container profile with a clean set of installed applications, no saved credentials beyond what the task requires, and no access to your personal sessions.

The second layer is confirmation on irreversible actions. Anything that sends an email, pays an invoice, deletes a record, or posts publicly should route through a human approval step in your client, even when the model is confident. Batch actions make this easier to wire cleanly: treat the boundary between batches as the review point, and show the operator the actions that are about to run as a group.

The third layer is observation. Log every screenshot, every action, and every model turn, so a misfire can be replayed and diagnosed. The combination of zoom and the accessibility tree helps audits too, because an investigator can see what the model saw and which element it targeted. Teams that ship computer use agents seriously treat the action log as a first class artifact, the same way payment systems treat a ledger.

Finally, set expectations with the model itself. Standing instructions in the system prompt should state what the agent must never do, which sites are in scope, and that it should stop and ask when a page looks unexpected. Guardrails in the client remain the enforcement point, but clear instructions measurably reduce how often they fire.

Treat the three layers as one system rather than a checklist: scope decides what the agent can reach, confirmation decides what it may change, and observation decides what you can prove afterward. An agent with tight scope and full logging can be forgiven an occasional wrong click; an agent with broad scope and no log cannot be operated at all.