Use computer use tools to automate GUI tasks with Amazon Bedrock models
Computer use lets Anthropic Claude models automate graphical user interface
(GUI) tasks. The model returns tool_use actions such as taking a
screenshot, clicking, typing, and scrolling. Your application executes those actions
on a desktop or container and returns the resulting screenshot to Claude on the
next turn.
Amazon Bedrock offers computer use through two interfaces:
Client toolsets –
computer_toolset_20260801andbrowser_toolset_20260801. Generally available on the newer Claude models (see Supported models and tool types). No beta value is required.Anthropic-defined computer tools –
computer_20251124andcomputer_20250124. In beta on all models that support them, and the only computer use option on older models. Each request requires the matching beta value.
For the underlying tool protocol, the full list of actions, and prompt-engineering
guidance, see Computer
use
Note
The computer_20251124 and computer_20250124 computer
tools are made available to you as a "Beta Service" as defined in the AWS Service
Terms. They are subject to your Agreement with AWS, the AWS Service Terms, and
the applicable model EULA.
Computer use, through either interface, poses unique risks distinct from standard API features or chat interfaces. These risks are heightened when computer use interacts with the Internet. To minimize risks, consider taking precautions such as:
Operate computer use functionality in a dedicated Virtual Machine or container with minimal privileges to prevent direct system attacks or accidents.
To prevent information theft, avoid giving computer use access to sensitive accounts or data.
Limit computer use's internet access to required domains to reduce exposure to malicious content.
To ensure proper oversight, keep a human in the loop for sensitive tasks (such as making decisions that could have meaningful real-world consequences) and for anything requiring affirmative consent (such as accepting cookies, executing financial transactions, or agreeing to terms of service).
Any content that you enable Claude to see or access can potentially override instructions or cause Claude to make mistakes or perform unintended actions. Taking proper precautions, such as isolating Claude from sensitive surfaces, is essential — including to avoid risks related to prompt injection. Before enabling or requesting permissions necessary to enable computer use features in your own products, please inform end users of any relevant risks, and obtain their consent as appropriate.
Use computer use on Amazon Bedrock
Computer use is supported on both the bedrock-runtime and
bedrock-mantle endpoints. On bedrock-runtime, you can use
it with the InvokeModel and Converse APIs. You can enable computer use in one of two
ways, depending on the model:
Anthropic-defined computer tool – Include a tool entry whose
typeis a dated computer tool (for example,computer_20251124) and the matchinganthropic_betavalue (for example,computer-use-2025-11-24). The beta value is required. A request that omits it, or that pairs a tool type with the beta value for a different version, returns a400 invalid_request_error.Client toolset – Include a tool entry whose
typeiscomputer_toolset_20260801(orbrowser_toolset_20260801for browser automation). Noanthropic_betavalue is required. A toolset entry contains only thetypefield; don't include aname. The model calls each tool in the toolset by its own name, for examplescreenshotornavigate.
Where you put the beta value depends on the endpoint and API:
bedrock-runtime, InvokeModel – theanthropic_betafield in the request body.bedrock-runtime, Converse – theanthropic_betafield inadditionalModelRequestFields, alongside thetoolsarray that contains the computer tool.bedrock-mantle– theanthropic-betaHTTP header, or theanthropic_betafield in the request body.
The bash (bash_20250124), text editor
(text_editor_20250728), and memory (memory_20250818)
tools don't require a beta value. For all Anthropic-defined tools and their
fields, see Computer use.
Supported models and tool types
The following table shows the computer use tool types that each Claude model
accepts on the bedrock-runtime endpoint. Submitting a tool type that a
model doesn't accept returns a 400 invalid_request_error. The
computer_20241022 tool type isn't accepted by any model in this
table.
| Model | Computer tool type | Required beta value | Client toolsets (no beta value) |
|---|---|---|---|
| Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Sonnet 5.5, Claude Haiku 5.5, Claude Opus 5, Claude Sonnet 5, Claude Opus 4.8 | computer_20251124 |
computer-use-2025-11-24 |
computer_toolset_20260801, browser_toolset_20260801 |
| Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 4.6 | computer_20251124 |
computer-use-2025-11-24 |
Not supported |
| Claude Opus 4.5 | computer_20251124 or computer_20250124 |
computer-use-2025-11-24 (with computer_20251124) or computer-use-2025-01-24 (with computer_20250124) |
Not supported |
| Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.1 | computer_20250124 |
computer-use-2025-01-24 |
Not supported |
To find which endpoints each model is available on, see the model's Models at a glance.
Example requests
Each of the following examples asks the model to take a screenshot. The model
responds with stop_reason set to tool_use and a
tool_use block that describes the action. Your application runs the
action and returns the result in a tool_result block on the next
turn.
InvokeModel with the computer tool
The following Python example sends a request through the
bedrock-runtime endpoint with the computer_20251124 tool
and the required beta value.
import boto3 import json client = boto3.client("bedrock-runtime", region_name="us-east-1") response = client.invoke_model( modelId="us.anthropic.claude-opus-4-7", body=json.dumps({ "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": ["computer-use-2025-11-24"], "max_tokens": 2048, "messages": [ {"role": "user", "content": "Take a screenshot of the desktop."} ], "tools": [ { "type": "computer_20251124", "name": "computer", "display_width_px": 1024, "display_height_px": 768, } ], }), ) result = json.loads(response["body"].read()) print(result["stop_reason"]) # "tool_use" when the model issues a computer action print(result["content"]) # contains the tool_use block describing the action
The model requests the action through the computer tool:
{ "type": "tool_use", "name": "computer", "input": {"action": "screenshot"} }
InvokeModel with the computer toolset
The following example uses computer_toolset_20260801 instead. No
beta value is required, and the toolset entry has no name.
import boto3 import json client = boto3.client("bedrock-runtime", region_name="us-east-1") response = client.invoke_model( modelId="us.anthropic.claude-opus-5-5", body=json.dumps({ "anthropic_version": "bedrock-2023-05-31", "max_tokens": 2048, "messages": [ {"role": "user", "content": "Take a screenshot of the desktop."} ], "tools": [{"type": "computer_toolset_20260801"}], }), ) result = json.loads(response["body"].read()) print(result["content"])
The model calls the screenshot tool from the toolset directly. The toolset_name field identifies the toolset that the tool belongs to:
{ "type": "tool_use", "name": "screenshot", "input": {}, "toolset_name": "computer" }
Converse
With the Converse API, pass the computer tool and the beta value in
additionalModelRequestFields. The model's action is returned as a
toolUse content block.
import boto3 client = boto3.client("bedrock-runtime", region_name="us-east-1") response = client.converse( modelId="us.anthropic.claude-sonnet-4-6", messages=[ {"role": "user", "content": [{"text": "Take a screenshot of the desktop."}]} ], inferenceConfig={"maxTokens": 2048}, additionalModelRequestFields={ "anthropic_beta": ["computer-use-2025-11-24"], "tools": [ { "type": "computer_20251124", "name": "computer", "display_width_px": 1024, "display_height_px": 768, } ], }, ) print(response["stopReason"]) # "tool_use" for block in response["output"]["message"]["content"]: if "toolUse" in block: print(block["toolUse"]["name"], block["toolUse"]["input"])
To use a client toolset with Converse, pass
"tools": [{"type": "computer_toolset_20260801"}] in
additionalModelRequestFields and omit
anthropic_beta.
bedrock-mantle
On the bedrock-mantle endpoint
(https://bedrock-mantle.),
send the beta value in the region.api.aws/anthropic/v1/messagesanthropic-beta header:
POST /anthropic/v1/messages anthropic-version: 2023-06-01 anthropic-beta: computer-use-2025-11-24 content-type: application/json { "model": "anthropic.claude-opus-5-5", "max_tokens": 2048, "messages": [ {"role": "user", "content": "Take a screenshot of the desktop."} ], "tools": [ { "type": "computer_20251124", "name": "computer", "display_width_px": 1024, "display_height_px": 768 } ] }
You can instead include "anthropic_beta": ["computer-use-2025-11-24"]
in the request body. For authentication and the full bedrock-mantle
Messages API request shape, see Inference using Anthropic Messages API.