Sai is Simular's computer-use agent, #1 on OSWorld 2.0 (73%). Give it a task in plain English and it does the work on a real Windows or macOS computer the way a person would, by seeing the screen, clicking and typing, so your agent can get things done where there is no API: web apps behind a login, admin consoles, desktop software, forms with no import. Run a workflow once and Sai can save it as code: later runs replay that code and ask the model only where the screen matters, so they are faster and cheaper, and the agent takes over when the UI changes. Coding agents (Claude Code, Codex, Cursor) use it through the
@simular-ai/sai-mcpMCP server. The free plan includes a cloud computer.
Use Sai when:
Write code yourself when:
Most computer-use agents re-plan every step on every run. Sai can turn a workflow it has done into a reusable skill: the steps that stay the same become code, and the model is asked only about what depends on the screen.
Save this as a replayable skill named invoice_export, with vendor and month as parameters.Run invoice_export for vendor Acme, month March. Sai replays the code, and when a step breaks because the UI changed, the agent takes over from there.Open our staging site in Chrome, sign up with the test Gmail account, click the verification email, and tell me where the flow breaks.Log in to the vendor portal (it has no API) and list last month's invoices with their totals.Enter each row of the uploaded CSV into the supplier form at https://example.com/suppliers/new, which has no import, and report the rows that failed validation.Follow the steps in this bug report in Chrome on Windows and describe exactly what happens at each step.In the admin console, export the user list and tell me which accounts haven't signed in for 90 days.sapi_ and are shown once.sapi_YOUR_KEY with the key. Node.js 22.12 or newer is required.Use Sai to open Notepad on my cloud computer, type "Hello from Sai", and tell me the window title.claude mcp add sai -e SAI_API_KEY=sapi_YOUR_KEY -- npx -y @simular-ai/sai-mcp
Optional: install the Sai skill, which teaches Claude Code the task loop.
npx -y @simular-ai/sai-mcp init-claude
codex mcp add sai --env SAI_API_KEY=sapi_YOUR_KEY -- npx -y @simular-ai/sai-mcp
Add this to ~/.cursor/mcp.json (or .cursor/mcp.json in a project), then restart Cursor. The same block works for any stdio MCP client.
{
"mcpServers": {
"sai": {
"command": "npx",
"args": [
"-y",
"@simular-ai/sai-mcp"
],
"env": {
"SAI_API_KEY": "sapi_YOUR_KEY"
}
}
}
}
SAI_API_KEY as shown above.sai_machines, sai_models, sai_task_start, sai_task_wait, sai_task_approve, sai_task_abort, sai_upload.sai_task_start returns a session_id. Call sai_task_wait with it, passing back the cursor, while status is running. idle means text holds Sai's answer.needs_approval, decide with sai_task_approve. When the approval is link-only (sign-ins, credentials, phone checks), give approval_url to the user and keep waiting.The raw request behind every task. It streams events until finish.
curl -N https://api.simular.ai/v1/agents/message \
-H "Authorization: Bearer $SAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"message": "Open Notepad, type Hello from the Sai API, and save it to the desktop as hello.txt"}'
POST /v1/agents/message, the request behind every task