BuildBuilt-in toolsComputer and browser use

Computer and browser use

⚠️
Preview — this feature is being built; the design below is the spec.

Computer use lets the model operate a desktop or a web browser the way a person does: it looks at a screenshot, decides where to click or what to type, and asks your code to do it. Syntic publishes two standard tool definitions, syntic_computer and syntic_browser, with fixed action lists the model is trained to use well. Your code runs the actions in an environment you control and sends back a fresh screenshot.

⚠️

The model acts on whatever is on screen, including text written by others. Run it in an isolated virtual machine or browser profile with no access to accounts or data it does not need, and require human approval for purchases, messages and deletions.

When to use it

  • Automating tasks in apps that have no API.
  • Testing web applications end to end.
  • Filling forms across several sites.

Prefer an API or ordinary function tools whenever one exists: they are faster, cheaper and more reliable.

Endpoint and auth

POST https://app.syntic.ai/v1/chat/completions (and Messages), Authorization: Bearer sk_live_.... Requires a model with capabilities.vision and computer_use.

Tool definitions

These are client tools: the model returns calls, your code executes them, as with any function.

FieldTypeDetails
typestring"syntic_computer" or "syntic_browser"
display_width, display_heightintegerScreen size in pixels, as the model will see screenshots. Recommended 1280 × 800.
display_numberintegerOptional, for multi-display setups (syntic_computer only).

You do not write a schema: Syntic supplies it and keeps it stable across versions.

syntic_computer actions

actionArgumentsYour code should
screenshotnoneReturn a PNG of the screen.
clickx, y, button (left, right, middle), count (1-3)Move and click.
movex, yMove the pointer.
dragfrom_x, from_y, to_x, to_yPress, move, release.
scrollx, y, direction (up, down, left, right), amountScroll at a point.
typetextType the text.
keykeys, for example "ctrl+s" or "Return"Press keys or a combination.
waitseconds (up to 10)Pause, then take a screenshot.
zoomx, y, width, heightReturn a full-resolution crop of that region.

syntic_browser actions

All of the above, plus:

actionArgumentsYour code should
navigateurlOpen the address in the current tab.
back, forward, reloadnoneBrowser navigation.
new_tab, switch_tab, close_tabtab_id where neededManage tabs.
read_pagenoneReturn the page’s visible text and form fields (cheaper than a screenshot for text-heavy pages).

The loop

  1. Send the task with the tool definition.
  2. The reply contains a tool call such as {"action":"click","x":412,"y":288,"button":"left","count":1}.
  3. Run it, take a screenshot, and send a tool message whose content is an image part (and optional text).
  4. Repeat until finish_reason is stop.
{
  "role": "tool",
  "tool_call_id": "call_9c",
  "content": [
    { "type": "image_url", "image_url": { "url": "data:image/png;base64,iVBORw0..." } },
    { "type": "text", "text": "Clicked. Page title: Checkout" }
  ]
}

Examples

curl https://app.syntic.ai/v1/chat/completions \
  -H "Authorization: Bearer $SYNTIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Amara S1.2",
    "stream": false,
    "tools": [{ "type": "syntic_browser", "display_width": 1280, "display_height": 800 }],
    "messages": [{ "role": "user", "content": "Open https://intranet.example.com/leave and submit a leave request for 24 to 26 November. Stop before the final Submit and ask me." }]
  }'

Errors

Unified envelope.

StatuscodeCause
400computer_use_not_supportedThe model lacks vision or computer use.
400invalid_display_sizeWidth or height outside 320 to 2,560.
400tool_result_image_requiredA computer tool result has no image (except for read_page).
400too_many_imagesOver 100 screenshots in the conversation. Drop old ones or turn on context management.

Cost and tips

  • Each screenshot costs image input tokens (about 1,100 at 1280 × 800). Long runs add up; clear old screenshots with context_management.clear_tool_results.
  • Smaller displays mean cheaper and often more accurate clicks.
  • Tell the model when to stop and ask, as in the curl example.

Build notes for the platform team

  • Test model accuracy on screenshots before committing; this page ships only if click accuracy meets the agreed bar.
  • Syntic owns the action schemas; version them with the API version header.
  • A hosted browser option can come later as a server tool.
Was this page helpful?