POST /v1/computers/{id}/toolset and comes back as text and screenshots. The full endpoint list is in Computers API.
The hosted driver is switched on per project by Allternit. Until it is on for your project, every
/v1/computers route answers 404 with code hosted_driver_disabled. You can see the flag under Platform API → Computers in the console; you can’t switch it on yourself.1. Get a key with the computers scope
In platform.allternit.com, open API keys → Platform API, pick the project, and create a key with the computers scope. Store it:
@allternit/computer-driver (TypeScript, in sdk/computer-driver/) and allternit-computer-driver (Python, import allternit_computer_driver). Install with npm install @allternit/computer-driver or pip install allternit-computer-driver (the first PyPI release is waiting on publisher setup; until then pip install /path/to/allternit/sdk/computer-driver/python). The project needs a card on file first (Billing): without one, POST /v1/computers answers 402 payment_method_required. Each package has:
AllternitComputers, a plain client for the/v1/computersroutes.- Anthropic SDK toolset subclasses for the computer and browser toolsets (
BetaAbstractComputerToolset20260801,BetaAbstractBrowserToolset20260801). - An OpenAI computer-use adapter and a Gemini
computer_useadapter. - The contract-v2 structured members (
read_ui,act,run_batch,verify,request_human,use_credential,run_subtask,run_parallel,run_skill,skills) as typed client methods and as thecomputer_v2function tool in every adapter.
2. Create a computer
id: "cmp_…". It starts in provisioning; a toolset call that arrives while it is still starting answers 503 computer_starting, so retry after a short wait.
3. Drive it from the Anthropic SDK
The toolset classes subclass the Anthropic SDK’s abstract computer and browser toolsets, so the SDK’s tool runner calls them like any other toolset. Each member call is sent to the hosted computer.browser_toolset is on.
4. Or use the OpenAI or Gemini adapter
The adapters turn one model action into toolset calls and return what the model expects next (a screenshot for OpenAI’scomputer_call_output, a function response for Gemini).
- OpenAI computer use: for each
computer_callin the response, pass the call id and action to the adapter, then send its output back ascomputer_call_output. Setdisplayto thedisplay_width/display_heightyou declared on the tool. - Gemini
computer_use: for each function call, pass it to the adapter and send back the function response it returns.
5. Structured UI driving (contract v2)
The computer toolset contract has a second generation,allternit.computer.v2: the same 17 pixel members plus ten driver-backed structured members — read_ui, act, run_batch, verify, request_human, use_credential, run_subtask, run_parallel, run_skill, skills. The structured members read and drive the UI as an element tree (no screenshots), hand bounded step sequences to the fast decision loop (run_subtask), type vault credentials without the value ever reaching the model (use_credential), pause for a person (request_human), and run independent subtasks on separate computers in one call (run_parallel). They need the Allternit Driver on the computer (this-device today; see Allternit Driver).
Both driver packages expose them two ways: typed client methods on ComputerV2Driver (TypeScript) / ComputerV2Driver (Python), and — for model loops — as the computer_v2 function tool next to the pixel tool in every adapter, with the same steering guidance gizzi sends. A computer_v2 call is { "action": "<member>", …member fields }; it maps 1:1 onto a toolset member call.
openaiComputerV2Tool / runOpenAIV2Call and geminiComputerV2Declaration / runGeminiV2Call (Python: openai_computer_v2_tool / run_openai_v2_call, gemini_computer_v2_declaration / run_gemini_v2_call). Input and result types are generated from the contract (contracts/computer-toolset/allternit-computer-v2.json), so they track the server.
Subtask safety statuses
run_subtask, run_skill and run_parallel results end with a status:
done— the goal is met.escalated— handed back with areasonand the currentscreen; continue from there yourself.needs_confirmation— the next step (held_step) needs the person’s confirmation; run it yourself withact/run_batchand the server asks them.paused— the safety monitor paused the subtask; stop and callrequest_human.denied— the step isn’t allowed on this computer (app/domain lists or a credential binding); find another way.use_api— make the named API/MCP call yourself; the screen is untouched.failed— ran out of steps, budget, or a hard error. Skipped parallel subtasks (budget exhausted) come back asskipped.
Structured-member errors
Alongside the approval flow above, the driver packages raise typed errors the plain client maps from the server’s error codes:ComputerV2Error (a structured member answered is_error), ComputerBusyError (423 computer_busy / computer_controlled_elsewhere), SandboxRequiredError (409 sandbox_required) and ComputerConflictError (409 computer_conflict). toolsetWithApproval / toolset_with_approval answers a 409 approval_required hold for any member, pixel or structured.
6. Or connect over MCP
The@allternit/computers-server stdio MCP server accepts a project key. With ALLTERNIT_API_KEY=alt_live_… (or alt_test_…) it talks to https://api.allternit.com/v1 and adds four tools: computer_toolset, computer_toolset_schema, computer_events and computer_approve. Screenshots come back as MCP image content.
ALLTERNIT_PLATFORM_URL to point it at another base URL.
Approvals
Some actions need approval before they run. The toolset call then answers409 with code approval_required and an approval object:
- Get it approved. The project owner can approve in the console. If the project’s
approval_modeisapi_key, your key can callPOST /v1/computers/{id}/approvals/{approval_id}; otherwise that call answers403 approval_requires_owner. - Resend the same toolset call with
approval_grantset toapproval.id.
403 approval_denied.
Limits
- Project flag.
hosted_driver_enabledis set by Allternit. Off means404 hosted_driver_disabledon every/v1/computersroute. - Per-key concurrency. Each key can have a set number of running computers (
per_key_concurrencyin computer settings). Past it, creating or starting a computer answers429 concurrency_limit. - Computer size. Each computer is a Linux computer with 1 vCPU, 2 GB of memory and a 10 GB disk. It has no desktop session; the screen (1280×800) starts with the first
computertoolset call. Thebrowsertoolset runs headless Chrome. - Pool capacity. A fixed number of developer computers can be running at once across all projects. When they’re all in use, creating or starting a computer answers
503 computer_capacity. Nothing is created and nothing is billed; retry in a few minutes, or stop a computer you aren’t using. - Spend cap. When the project reaches its spend cap, calls answer
402 spend_cap_reached. See Billing and spend caps. - Control. A computer that someone else is controlling answers
423 computer_controlled_elsewhere. - Network egress. Computers created by outside developers reach the public internet only. Private address ranges, the cloud metadata address
169.254.169.254and the host they run on are blocked.
Usage and pricing
Two meters record usage:computer_minute (running minutes, recorded on toolset calls, stop and delete) and computer_action (one per executed toolset call). Both show in Usage and on the console’s Computers page.
Pricing for the hosted driver is to be announced.