PREVIEW_01
Hello, agent.
@e1
Run
An agent-friendly, programmable browser in the cloud.
Each call runs inside a remote Sandbox while browser state persists between steps.
pnpm add remote-agent-browser
import { AgentBrowser } from 'remote-agent-browser'
const browser = await AgentBrowser.create({
args: ['--color-scheme', 'dark'],
})
try {
await browser.exec('open', {
args: ['https://example.com'],
})
const page = await browser.exec<{ url: string }>('get', {
args: ['url'],
output: 'json',
})
console.log(page.data.url)
} finally {
await browser.close()
}
Authentication is provided by VERCEL_OIDC_TOKEN. On Vercel it is
available automatically; locally, pull it from a linked project.
AgentBrowser.create(options?)args
for launch settings shared by every command.
browser.run(commands)browser.exec(command)browser.exec<T>(command, { output: "json" })--json, validate its response, and return the typed data.browser.upload(selector, files)browser.download(selector, options?)browser.snapshot(url?)browser.screenshot(url?)result.filebrowser.close()import { readFile, writeFile } from 'node:fs/promises'
await browser.upload('#avatar', [{
name: 'avatar.png',
bytes: await readFile('avatar.png'),
}])
const { file } = await browser.download('@e4', {
filename: 'report.csv',
})
await writeFile('report.csv', file.bytes)
const trace = await browser.exec('trace', {
args: ['stop'],
})
console.log(trace.file?.contentType)
File-producing commands use temporary Sandbox paths and return the collected bytes without exposing the remote filesystem.