Preserve signed-in browser state across agent sessions.
browser_open, sign in once, close cleanly, and later sessions with the same name start already logged in.12345678910# First run — agent opens a profiled session; human or agent completes login browser_open({ url: "https://portal.example.com", authProfile: "work" }) # → { ok: true, sessionId: "ses-1" } browser_close({ sessionId: "ses-1" }) # → profile "work" saved # Later run — same profile, already signed in browser_open({ url: "https://portal.example.com", authProfile: "work" }) # → { ok: true, sessionId: "ses-2" }
authProfile | Behavior |
| omitted | Uses default |
"work" (any non-empty name) | Loads or creates that named profile |
false | Opens without saved state (incognito) |
browser_status includes authProfile on sessions that have one.LocalBrowserProvider defaults to headed).browser_exec.browser_close or toolkit dispose() so the provider saves profile changes.| Provider | Named auth profiles |
| Local | Supported |
| Libretto Cloud | Supported |
| Kernel | Supported |
| Browser Use | Supported |
| Browserbase | Unsupported |
| Steel | Unsupported |
authProfile or pass false. Passing a profile name returns { ok: false, error } with a next step.~/.libretto/browser-tools/profiles/<name>/ by default. Pass authProfileDirectory to LocalBrowserProvider to change the root:123new LocalBrowserProvider({ authProfileDirectory: "/path/to/profiles", });
authProfile string.browser_open / MCP). For Libretto workflow authProfile, see Website authentication.