Installlibretto-browser-toolsand run a first agent browser loop.
libretto-browser-tools is an SDK that gives any agent framework tools to open a real browser (local or cloud), inspect pages via accessibility snapshots, and drive them with Playwright code. Pick a provider, wrap the tools with an adapter (or use the framework-agnostic factory), and call dispose() when the loop ends.1Install libretto-browser-tools with the Vercel AI SDK adapter and LocalBrowserProvider. Wire createAiSdkBrowserTools into a generateText (or ToolLoopAgent) loop, install Playwright Chromium for local sessions, run a short task that opens a page and answers a question about it, and always call dispose() when the loop ends.
12pnpm add libretto-browser-tools ai @ai-sdk/anthropic npx playwright install chromium
LocalBrowserProvider). Cloud providers attach over CDP and do not need a local browser download.ai is an optional peer dependency. Install it when you use the AI SDK adapter.123456import { createAiSdkBrowserTools } from "libretto-browser-tools/ai-sdk"; import { LocalBrowserProvider } from "libretto-browser-tools"; const { tools, dispose } = createAiSdkBrowserTools( new LocalBrowserProvider({ headless: true }), );
browser_open, browser_connect, browser_exec, browser_snapshot, browser_status, and browser_close.1234567891011121314import { anthropic } from "@ai-sdk/anthropic"; import { generateText, stepCountIs } from "ai"; try { const result = await generateText({ model: anthropic("claude-sonnet-4-5"), tools, stopWhen: stepCountIs(20), prompt: "Go to news.ycombinator.com and tell me the top story", }); console.log(result.text); } finally { await dispose(); // close any sessions the agent left open }
dispose() when the loop ends. Prefer a finally block so sessions close after failures too.LocalBrowserProvider for a cloud provider.