Browser bots handle the easy stuff.
Deck handles the rest.
Deck gives your app full Computer Use — agents that log in, navigate, and operate any software through real UIs. One API call to automate what no integration can.
src/migration/flow.tsxsrc/api/providers.ts@deck/apiFive lines to Computer Use
Spin up a VM, point it at any website, and get structured results back. That's it.
import Deck from "deck";
const deck = new Deck({ apiKey: process.env.DECK_API_KEY });
// Create a source, open a connection, run a task
const source = await deck.sources.create({
name: "Shopify", type: "website",
website: { url: "https://admin.shopify.com" }
});
const conn = await deck.connections.create({
source_id: source.id,
auth_method: "username_password",
auth_credentials: { username: email, password: pass }
});
const run = await deck.tasks.run(taskId, {
connection_id: conn.id,
input: { order_id: "#4018" }
});
console.log(run.output);
// { refund_id: "R-8821", amount: "$89.99", status: "processed" }
How to get started
Every run spins up an isolated VM. The agent combines vision, DOM extraction, and API calls — choosing the best approach for each step.
Built for production
Everything you need to ship Computer Use to your users.
Credential vault
Store and rotate credentials securely. Your users' passwords never touch your servers.
Session replay
Replay any agent session to see exactly what happened, click by click.
Webhooks & callbacks
Get notified on completion, failure, or when the agent needs human approval.
Parallel runs
Execute hundreds of tasks concurrently. Each gets its own isolated VM.
Structured output
Define schemas for what the agent should return. Get typed JSON, not screenshots.
{
"status": "completed",
"output": {
"contacts": [
{ "name": "Jane Doe", "email": "[email protected]" }
],
"plan": {
"type": "Business 500",
"renewal": "2026-04-01"
}
}
}
Policies & guardrails
Define rules for what agents can and can't do. Set approval gates and action boundaries.